@ynput/ayon-frontend-shared 0.2.20 → 0.2.22

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 (529) hide show
  1. package/dist/DetailsPanel.cjs.js +10 -8
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +10 -8
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +2 -2
  6. package/dist/ProjectTreeTable.es.js +2 -2
  7. package/dist/Views.cjs.js +41 -0
  8. package/dist/Views.cjs.js.map +1 -0
  9. package/dist/Views.es.js +41 -0
  10. package/dist/Views.es.js.map +1 -0
  11. package/dist/_virtual/index.cjs4.js +4 -4
  12. package/dist/_virtual/index.cjs5.js +5 -3
  13. package/dist/_virtual/index.cjs5.js.map +1 -1
  14. package/dist/_virtual/index.cjs6.js +3 -5
  15. package/dist/_virtual/index.cjs6.js.map +1 -1
  16. package/dist/_virtual/index.cjs7.js +2 -2
  17. package/dist/_virtual/index.es4.js +4 -4
  18. package/dist/_virtual/index.es5.js +5 -2
  19. package/dist/_virtual/index.es5.js.map +1 -1
  20. package/dist/_virtual/index.es6.js +2 -5
  21. package/dist/_virtual/index.es6.js.map +1 -1
  22. package/dist/_virtual/index.es7.js +2 -2
  23. package/dist/api.cjs.js +28 -20
  24. package/dist/api.cjs.js.map +1 -1
  25. package/dist/api.es.js +16 -8
  26. package/dist/api.es.js.map +1 -1
  27. package/dist/components.cjs.js +0 -17
  28. package/dist/components.cjs.js.map +1 -1
  29. package/dist/components.es.js +1 -18
  30. package/dist/components.es.js.map +1 -1
  31. package/dist/index.cjs.js +10 -8
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.es.js +10 -8
  34. package/dist/index.es.js.map +1 -1
  35. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  36. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  37. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  38. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  39. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  40. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  41. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  42. package/dist/node_modules/remove-accents/index.es.js +1 -1
  43. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +3 -1
  44. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -1
  45. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +3 -1
  46. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -1
  47. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
  48. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
  49. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
  50. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
  51. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
  52. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
  53. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
  54. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
  55. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +41 -58
  56. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
  57. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +41 -57
  58. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
  59. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +1 -5
  60. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -1
  61. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +1 -5
  62. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -1
  63. package/dist/shared/src/api/base/client.cjs.js +20 -19
  64. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  65. package/dist/shared/src/api/base/client.es.js +20 -19
  66. package/dist/shared/src/api/base/client.es.js.map +1 -1
  67. package/dist/shared/src/api/generated/access.cjs.js +8 -0
  68. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  69. package/dist/shared/src/api/generated/access.es.js +8 -0
  70. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  71. package/dist/shared/src/api/generated/views.cjs.js +30 -2
  72. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  73. package/dist/shared/src/api/generated/views.es.js +30 -2
  74. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  75. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +6 -5
  76. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +6 -5
  78. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +6 -5
  80. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/entities/updateEntity.es.js +6 -5
  82. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +6 -5
  84. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/overview/updateOverview.es.js +6 -5
  86. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/share/share.cjs.js +66 -0
  88. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -0
  89. package/dist/shared/src/api/queries/share/share.es.js +66 -0
  90. package/dist/shared/src/api/queries/share/share.es.js.map +1 -0
  91. package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -5
  92. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/users/getUsers.es.js +6 -5
  94. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  95. package/dist/shared/src/api/queries/views/getViews.cjs.js +33 -5
  96. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  97. package/dist/shared/src/api/queries/views/getViews.es.js +33 -5
  98. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  99. package/dist/shared/src/api/queries/views/updateViews.cjs.js +167 -9
  100. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/views/updateViews.es.js +168 -10
  102. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  103. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +6 -5
  104. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  105. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +6 -5
  106. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  107. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -5
  108. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  109. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -5
  110. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  111. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +10 -8
  112. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  113. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +10 -8
  114. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  115. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +7 -5
  116. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  117. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +7 -5
  118. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  119. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +10 -8
  120. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  121. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +10 -8
  122. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  123. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +6 -5
  124. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
  126. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  127. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +10 -8
  128. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +10 -8
  130. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  131. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +6 -5
  132. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +6 -5
  134. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +10 -8
  136. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +10 -8
  138. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  139. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +10 -8
  140. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  141. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -8
  142. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  143. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +10 -8
  144. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  145. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +10 -8
  146. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  147. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +6 -5
  148. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  149. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +6 -5
  150. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  151. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +6 -5
  152. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  153. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +6 -5
  154. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  155. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +10 -8
  156. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  157. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +10 -8
  158. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  159. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +10 -8
  160. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  161. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +10 -8
  162. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  163. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +6 -5
  164. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  165. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -5
  166. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  167. package/dist/shared/src/components/Watchers/Watchers.cjs.js +6 -5
  168. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  169. package/dist/shared/src/components/Watchers/Watchers.es.js +6 -5
  170. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  171. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +10 -8
  172. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +10 -8
  174. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  175. package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -5
  176. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/Actions/Actions.es.js +6 -5
  178. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  179. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +10 -8
  180. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +10 -8
  182. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +10 -8
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +10 -8
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +10 -8
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +10 -8
  190. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +10 -8
  192. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +10 -8
  194. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +10 -8
  196. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +10 -8
  198. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +6 -5
  200. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +6 -5
  202. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  203. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -5
  204. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -5
  206. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +6 -5
  208. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  210. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  212. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +6 -5
  214. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +6 -5
  216. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +16 -11
  218. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +16 -11
  220. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +10 -8
  222. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +10 -8
  224. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +48 -25
  228. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +48 -25
  230. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +6 -5
  232. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -5
  234. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +0 -5
  238. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +0 -5
  240. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +6 -5
  242. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -5
  244. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +6 -5
  246. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +6 -5
  248. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +6 -5
  250. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -5
  252. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +9 -10
  254. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +9 -10
  256. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +6 -5
  258. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -5
  260. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +6 -5
  262. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +6 -5
  264. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +15 -9
  266. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +15 -9
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +24 -15
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -15
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +6 -5
  274. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +6 -5
  276. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +106 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -0
  279. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +106 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -0
  281. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +10 -8
  282. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +10 -8
  284. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  285. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +65 -0
  286. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -0
  287. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +65 -0
  288. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -0
  289. package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.cjs.js +26 -12
  290. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
  291. package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.es.js +26 -12
  292. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
  293. package/dist/shared/src/{components → containers}/Views/Views.cjs.js +6 -10
  294. package/dist/shared/src/containers/Views/Views.cjs.js.map +1 -0
  295. package/dist/shared/src/{components → containers}/Views/Views.es.js +7 -11
  296. package/dist/shared/src/containers/Views/Views.es.js.map +1 -0
  297. package/dist/shared/src/{components → containers}/Views/Views.styled.cjs.js +4 -3
  298. package/dist/shared/src/containers/Views/Views.styled.cjs.js.map +1 -0
  299. package/dist/shared/src/{components → containers}/Views/Views.styled.es.js +4 -3
  300. package/dist/shared/src/containers/Views/Views.styled.es.js.map +1 -0
  301. package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.cjs.js +11 -2
  302. package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
  303. package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.es.js +11 -2
  304. package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.es.js.map +1 -0
  305. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js +4 -0
  306. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -0
  307. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js +5 -0
  308. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -0
  309. package/dist/shared/src/{components/Views/context/ViewsContext.cjs.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js} +76 -62
  310. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -0
  311. package/dist/shared/src/{components/Views/context/ViewsContext.es.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js} +75 -61
  312. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -0
  313. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.cjs.js +1 -0
  314. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
  315. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.es.js +1 -0
  316. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
  317. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
  318. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
  319. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +105 -0
  320. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
  321. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +105 -0
  322. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
  323. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +238 -0
  324. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -0
  325. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +238 -0
  326. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -0
  327. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +52 -0
  328. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -0
  329. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +52 -0
  330. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -0
  331. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +95 -0
  332. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -0
  333. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +95 -0
  334. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -0
  335. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +44 -0
  336. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -0
  337. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +44 -0
  338. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -0
  339. package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.cjs.js +70 -38
  340. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
  341. package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.es.js +71 -39
  342. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
  343. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +33 -0
  344. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -0
  345. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +33 -0
  346. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -0
  347. package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.cjs.js → containers/Views/hooks/useSelectedView.cjs.js} +39 -119
  348. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -0
  349. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +109 -0
  350. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -0
  351. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js +19 -0
  352. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -0
  353. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js +19 -0
  354. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -0
  355. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +182 -0
  356. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -0
  357. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +182 -0
  358. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -0
  359. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +30 -0
  360. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -0
  361. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +30 -0
  362. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -0
  363. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +13 -0
  364. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -0
  365. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +13 -0
  366. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -0
  367. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
  368. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -0
  369. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js +1 -1
  370. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js.map +1 -1
  371. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js +1 -1
  372. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js.map +1 -1
  373. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +126 -0
  374. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -0
  375. package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.es.js → containers/Views/utils/viewUpdateHelper.es.js} +54 -117
  376. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -0
  377. package/dist/shared/src/context/AddonProjectContext.cjs.js +6 -5
  378. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  379. package/dist/shared/src/context/AddonProjectContext.es.js +6 -5
  380. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  381. package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -5
  382. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  383. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -5
  384. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  385. package/dist/shared/src/context/PowerpackContext.cjs.js +15 -8
  386. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  387. package/dist/shared/src/context/PowerpackContext.es.js +15 -8
  388. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  389. package/dist/shared/src/context/RemoteModulesContext.cjs.js +6 -5
  390. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -5
  392. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  393. package/dist/shared/src/hooks/useActionTriggers.cjs.js +6 -5
  394. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  395. package/dist/shared/src/hooks/useActionTriggers.es.js +6 -5
  396. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  397. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +6 -5
  398. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  399. package/dist/shared/src/hooks/useEntityUpdate.es.js +6 -5
  400. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  401. package/dist/shared/src/hooks/useLoadModule.cjs.js +1 -1
  402. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  403. package/dist/shared/src/hooks/useLoadModule.es.js +1 -1
  404. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  405. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -5
  406. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  407. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -5
  408. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  409. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +6 -5
  410. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  411. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -5
  412. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  413. package/dist/shared/src/util/columnConfigConverter.cjs.js +116 -0
  414. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -0
  415. package/dist/shared/src/util/columnConfigConverter.es.js +116 -0
  416. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -0
  417. package/dist/types/Views.d.ts +2 -0
  418. package/dist/types/api/generated/access.d.ts +15 -0
  419. package/dist/types/api/generated/views.d.ts +130 -22
  420. package/dist/types/api/queries/index.d.ts +6 -5
  421. package/dist/types/api/queries/share/index.d.ts +1 -0
  422. package/dist/types/api/queries/share/share.d.ts +150 -0
  423. package/dist/types/api/queries/views/getViews.d.ts +161 -22
  424. package/dist/types/api/queries/views/updateViews.d.ts +500 -13
  425. package/dist/types/components/index.d.ts +0 -1
  426. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -5
  427. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsProvider.d.ts +1 -1
  428. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
  429. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -4
  430. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +0 -1
  431. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +3 -5
  432. package/dist/types/containers/ProjectTreeTable/hooks/useProjectTableModules.d.ts +2 -5
  433. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +5 -3
  434. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  435. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +5 -6
  436. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  437. package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +24 -0
  438. package/dist/types/{components → containers}/Views/ViewItem/ViewItem.d.ts +4 -1
  439. package/dist/types/{components → containers}/Views/ViewItem/ViewItem.styled.d.ts +1 -1
  440. package/dist/types/containers/Views/Views.d.ts +2 -0
  441. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +25 -0
  442. package/dist/types/containers/Views/ViewsDialogContainer/ViewsDialogContainer.d.ts +6 -0
  443. package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.d.ts +1 -2
  444. package/dist/types/{components → containers}/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +1 -1
  445. package/dist/types/containers/Views/context/ViewsContext.d.ts +48 -0
  446. package/dist/types/containers/Views/hooks/index.d.ts +5 -0
  447. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +9 -0
  448. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +12 -0
  449. package/dist/types/containers/Views/hooks/pages/useTaskProgressViewSettings.d.ts +10 -0
  450. package/dist/types/containers/Views/hooks/pages/viewUpdateHelper.d.ts +0 -0
  451. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +23 -0
  452. package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +12 -0
  453. package/dist/types/containers/Views/hooks/useSelectedView.d.ts +12 -0
  454. package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +6 -0
  455. package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +20 -0
  456. package/dist/types/containers/Views/hooks/useViewsShortcuts.d.ts +13 -0
  457. package/dist/types/containers/Views/index.d.ts +19 -0
  458. package/dist/types/containers/Views/utils/generateWorkingView.d.ts +3 -0
  459. package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +13 -0
  460. package/dist/types/{components → containers}/Views/utils/portalUtils.d.ts +1 -1
  461. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +17 -0
  462. package/dist/types/containers/index.d.ts +1 -0
  463. package/dist/types/context/PowerpackContext.d.ts +4 -1
  464. package/dist/types/util/columnConfigConverter.d.ts +15 -0
  465. package/dist/types/util/index.d.ts +1 -0
  466. package/dist/util.cjs.js +3 -0
  467. package/dist/util.cjs.js.map +1 -1
  468. package/dist/util.es.js +3 -0
  469. package/dist/util.es.js.map +1 -1
  470. package/package.json +6 -1
  471. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +0 -164
  472. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +0 -1
  473. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +0 -164
  474. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +0 -1
  475. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +0 -71
  476. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +0 -1
  477. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +0 -71
  478. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +0 -1
  479. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +0 -1
  480. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +0 -1
  481. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +0 -36
  482. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +0 -1
  483. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +0 -36
  484. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +0 -1
  485. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +0 -1
  486. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +0 -1
  487. package/dist/shared/src/components/Views/Views.cjs.js.map +0 -1
  488. package/dist/shared/src/components/Views/Views.es.js.map +0 -1
  489. package/dist/shared/src/components/Views/Views.styled.cjs.js.map +0 -1
  490. package/dist/shared/src/components/Views/Views.styled.es.js.map +0 -1
  491. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +0 -1
  492. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +0 -1
  493. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +0 -1
  494. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +0 -1
  495. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +0 -132
  496. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +0 -1
  497. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +0 -132
  498. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +0 -1
  499. package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +0 -1
  500. package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +0 -1
  501. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +0 -1
  502. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +0 -1
  503. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +0 -13
  504. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +0 -1
  505. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +0 -13
  506. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +0 -1
  507. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +0 -1
  508. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +0 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js +0 -24
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js.map +0 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js +0 -24
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js.map +0 -1
  513. package/dist/types/components/Views/ViewForm/ViewForm.d.ts +0 -14
  514. package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +0 -9
  515. package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +0 -15
  516. package/dist/types/components/Views/Views.d.ts +0 -8
  517. package/dist/types/components/Views/context/ViewsContext.d.ts +0 -31
  518. package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +0 -14
  519. package/dist/types/components/Views/index.d.ts +0 -11
  520. package/dist/types/components/Views/utils/generatePersonalView.d.ts +0 -3
  521. package/dist/types/components/Views/utils/getCustomViewsFallback.d.ts +0 -12
  522. package/dist/types/containers/ProjectTreeTable/hooks/useColumnSorting.d.ts +0 -12
  523. /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js +0 -0
  524. /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js +0 -0
  525. /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.cjs.js +0 -0
  526. /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.es.js +0 -0
  527. /package/dist/types/{components → containers}/Views/Views.styled.d.ts +0 -0
  528. /package/dist/types/{components → containers}/Views/ViewsButton/ViewsButton.d.ts +0 -0
  529. /package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useAttributesList.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const { enabled: attribWriteEnabled, attributes: attribWriteAttributes } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,qBAAqB,CAAC,EAAE,kBAA2C;AACjE,QAAA,EAAE,MAAM,MAAM,WAAW,eAAe,oBAAoB,EAAE,MAAM,MAAM;AAChF,QAAM,EAAE,aAAa,GAAG,IAAI,QAAQ,CAAC;AAE/B,QAAA,EAAE,MAAM,mBAAA,IAAuB;AAAA,IACnC,EAAE,YAAY;AAAA,IACd,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AACA,QAAM,EAAE,aAAa,aAAa,IAAI,sBAAsB,CAAC;AAC7D,QAAM,EAAE,SAAS,mBAAmB,YAAY,qBAAqB,IAAI,eAAe,CAAC;AACzF,QAAM,EAAE,SAAS,oBAAoB,YAAY,sBAAsB,IAAI,gBAAgB,CAAC;AAG5F,QAAM,eAAwC,WAC3C,OAAO,CAAC,MAAM,CAAC,sBAAqB,6DAAsB,SAAS,EAAE,MAAK,EAC1E,IAAI,CAAC,OAAO;AAAA,IACX,GAAG;AAAA,IACH,UAAU,qBAAqB,EAAC,+DAAuB,SAAS,EAAE,SAAQ;AAAA,EAAA,EAC1E;AAEG,SAAA,EAAE,cAAc,WAAW,WAAW;AAC/C;"}
1
+ {"version":3,"file":"useAttributesList.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const { enabled: attribWriteEnabled, attributes: attribWriteAttributes } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,qBAAqB,CAAC,EAAE,kBAA2C;AACjE,QAAA,EAAE,MAAM,MAAM,WAAW,eAAe,oBAAoB,EAAE,MAAM,MAAM;AAChF,QAAM,EAAE,aAAa,GAAG,IAAI,QAAQ,CAAC;AAE/B,QAAA,EAAE,MAAM,mBAAA,IAAuB;AAAA,IACnC,EAAE,YAAY;AAAA,IACd,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AACA,QAAM,EAAE,aAAa,aAAa,IAAI,sBAAsB,CAAC;AAC7D,QAAM,EAAE,SAAS,mBAAmB,YAAY,qBAAqB,IAAI,eAAe,CAAC;AACzF,QAAM,EAAE,SAAS,oBAAoB,YAAY,sBAAsB,IAAI,gBAAgB,CAAC;AAG5F,QAAM,eAAwC,WAC3C,OAAO,CAAC,MAAM,CAAC,sBAAqB,6DAAsB,SAAS,EAAE,MAAK,EAC1E,IAAI,CAAC,OAAO;AAAA,IACX,GAAG;AAAA,IACH,UAAU,qBAAqB,EAAC,+DAAuB,SAAS,EAAE,SAAQ;AAAA,EAAA,EAC1E;AAEG,SAAA,EAAE,cAAc,WAAW,WAAW;AAC/C;"}
@@ -66,6 +66,7 @@ require("../../../api/queries/addons/updateAddons.cjs.js");
66
66
  require("../../../api/queries/attributes/getAttributes.cjs.js");
67
67
  require("../../../api/queries/attributes/updateAttributes.cjs.js");
68
68
  require("../../../api/queries/authentication/getAuthentication.cjs.js");
69
+ require("../../../api/queries/cloud/cloud.cjs.js");
69
70
  require("../../../api/queries/entities/getEntity.cjs.js");
70
71
  require("../../../api/queries/entities/getEntityPanel.cjs.js");
71
72
  require("../../../api/queries/entities/updateEntity.cjs.js");
@@ -74,24 +75,24 @@ require("../../../api/queries/entityLists/updateLists.cjs.js");
74
75
  require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
75
76
  require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
76
77
  require("../../../api/queries/folders/getFolders.cjs.js");
78
+ require("../../../api/queries/grouping/getGrouping.cjs.js");
77
79
  require("../../../api/queries/overview/getOverview.cjs.js");
78
80
  require("../../../api/queries/overview/updateOverview.cjs.js");
81
+ require("../../../api/queries/permissions/getPermissions.cjs.js");
82
+ require("../../../api/queries/products/createProduct.cjs.js");
79
83
  require("../../../api/queries/project/getProject.cjs.js");
80
84
  require("../../../api/queries/project/updateProject.cjs.js");
81
85
  require("../../../api/queries/review/getReview.cjs.js");
82
86
  require("../../../api/queries/review/updateReview.cjs.js");
87
+ require("../../../api/queries/share/share.cjs.js");
83
88
  require("../../../api/queries/system/getSystem.cjs.js");
84
89
  require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
85
90
  require("../../../api/queries/users/getUsers.cjs.js");
86
91
  require("../../../api/queries/users/updateUsers.cjs.js");
87
- require("../../../api/queries/watchers/getWatchers.cjs.js");
88
- require("../../../api/queries/permissions/getPermissions.cjs.js");
89
- require("../../../api/queries/grouping/getGrouping.cjs.js");
90
92
  require("../../../api/queries/versions/updateVersions.cjs.js");
91
- require("../../../api/queries/products/createProduct.cjs.js");
92
- require("../../../api/queries/cloud/cloud.cjs.js");
93
93
  require("../../../api/queries/views/getViews.cjs.js");
94
94
  require("../../../api/queries/views/updateViews.cjs.js");
95
+ require("../../../api/queries/watchers/getWatchers.cjs.js");
95
96
  require("../../../context/RemoteModulesContext.cjs.js");
96
97
  require("../../../../../_virtual/runtime.cjs.js");
97
98
  require("../../../../../_virtual/semver.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckSelectedCellsVisible.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById } = useProjectTableContext()\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId])\n}\n"],"names":["useProjectTableContext","useEffect","parseCellId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;AACpC,QAAA,EAAE,cAAc,IAAIA,2CAAuB;AAIjDC,QAAAA,UAAU,MAAM;;AACR,UAAA,mCAAmB,IAAY;AACrC,eAAW,UAAU,eAAe;AAE9B,UAAA,CAAC,gBAAcC,2BAAY,UAAU,EAAE,MAAxBA,mBAA2B,UAAS,EAAE,GAAG;AAC1D,qBAAa,IAAI,MAAM;AAAA,MAAA;AAAA,IACzB;AAGE,QAAA,aAAa,OAAO,GAAG;AAEnB,YAAA,eAAe,IAAI,IAAY,aAAa;AAClD,iBAAW,UAAU,cAAc;AACjC,qBAAa,OAAO,MAAM;AAAA,MAAA;AAG5B,uBAAiB,YAAY;AAG7B,UAAI,aAAa,IAAI,iBAAiB,EAAE,GAAG;AACzC,yBAAiB,IAAI;AAAA,MAAA;AAAA,IACvB;AAAA,EACF,GACC,CAAC,eAAe,eAAe,eAAe,kBAAkB,gBAAgB,CAAC;AACtF;;"}
1
+ {"version":3,"file":"useCheckSelectedCellsVisible.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById } = useProjectTableContext()\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId])\n}\n"],"names":["useProjectTableContext","useEffect","parseCellId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;AACpC,QAAA,EAAE,cAAc,IAAIA,2CAAuB;AAIjDC,QAAAA,UAAU,MAAM;;AACR,UAAA,mCAAmB,IAAY;AACrC,eAAW,UAAU,eAAe;AAE9B,UAAA,CAAC,gBAAcC,2BAAY,UAAU,EAAE,MAAxBA,mBAA2B,UAAS,EAAE,GAAG;AAC1D,qBAAa,IAAI,MAAM;AAAA,MAAA;AAAA,IACzB;AAGE,QAAA,aAAa,OAAO,GAAG;AAEnB,YAAA,eAAe,IAAI,IAAY,aAAa;AAClD,iBAAW,UAAU,cAAc;AACjC,qBAAa,OAAO,MAAM;AAAA,MAAA;AAG5B,uBAAiB,YAAY;AAG7B,UAAI,aAAa,IAAI,iBAAiB,EAAE,GAAG;AACzC,yBAAiB,IAAI;AAAA,MAAA;AAAA,IACvB;AAAA,EACF,GACC,CAAC,eAAe,eAAe,eAAe,kBAAkB,gBAAgB,CAAC;AACtF;;"}
@@ -64,6 +64,7 @@ import "../../../api/queries/addons/updateAddons.es.js";
64
64
  import "../../../api/queries/attributes/getAttributes.es.js";
65
65
  import "../../../api/queries/attributes/updateAttributes.es.js";
66
66
  import "../../../api/queries/authentication/getAuthentication.es.js";
67
+ import "../../../api/queries/cloud/cloud.es.js";
67
68
  import "../../../api/queries/entities/getEntity.es.js";
68
69
  import "../../../api/queries/entities/getEntityPanel.es.js";
69
70
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -72,24 +73,24 @@ import "../../../api/queries/entityLists/updateLists.es.js";
72
73
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
73
74
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
74
75
  import "../../../api/queries/folders/getFolders.es.js";
76
+ import "../../../api/queries/grouping/getGrouping.es.js";
75
77
  import "../../../api/queries/overview/getOverview.es.js";
76
78
  import "../../../api/queries/overview/updateOverview.es.js";
79
+ import "../../../api/queries/permissions/getPermissions.es.js";
80
+ import "../../../api/queries/products/createProduct.es.js";
77
81
  import "../../../api/queries/project/getProject.es.js";
78
82
  import "../../../api/queries/project/updateProject.es.js";
79
83
  import "../../../api/queries/review/getReview.es.js";
80
84
  import "../../../api/queries/review/updateReview.es.js";
85
+ import "../../../api/queries/share/share.es.js";
81
86
  import "../../../api/queries/system/getSystem.es.js";
82
87
  import "../../../api/queries/userDashboard/getUserDashboard.es.js";
83
88
  import "../../../api/queries/users/getUsers.es.js";
84
89
  import "../../../api/queries/users/updateUsers.es.js";
85
- import "../../../api/queries/watchers/getWatchers.es.js";
86
- import "../../../api/queries/permissions/getPermissions.es.js";
87
- import "../../../api/queries/grouping/getGrouping.es.js";
88
90
  import "../../../api/queries/versions/updateVersions.es.js";
89
- import "../../../api/queries/products/createProduct.es.js";
90
- import "../../../api/queries/cloud/cloud.es.js";
91
91
  import "../../../api/queries/views/getViews.es.js";
92
92
  import "../../../api/queries/views/updateViews.es.js";
93
+ import "../../../api/queries/watchers/getWatchers.es.js";
93
94
  import "../../../context/RemoteModulesContext.es.js";
94
95
  import "../../../../../_virtual/runtime.es.js";
95
96
  import "../../../../../_virtual/semver.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckSelectedCellsVisible.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById } = useProjectTableContext()\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId])\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;AACpC,QAAA,EAAE,cAAc,IAAI,uBAAuB;AAIjD,YAAU,MAAM;;AACR,UAAA,mCAAmB,IAAY;AACrC,eAAW,UAAU,eAAe;AAE9B,UAAA,CAAC,gBAAc,iBAAY,UAAU,EAAE,MAAxB,mBAA2B,UAAS,EAAE,GAAG;AAC1D,qBAAa,IAAI,MAAM;AAAA,MAAA;AAAA,IACzB;AAGE,QAAA,aAAa,OAAO,GAAG;AAEnB,YAAA,eAAe,IAAI,IAAY,aAAa;AAClD,iBAAW,UAAU,cAAc;AACjC,qBAAa,OAAO,MAAM;AAAA,MAAA;AAG5B,uBAAiB,YAAY;AAG7B,UAAI,aAAa,IAAI,iBAAiB,EAAE,GAAG;AACzC,yBAAiB,IAAI;AAAA,MAAA;AAAA,IACvB;AAAA,EACF,GACC,CAAC,eAAe,eAAe,eAAe,kBAAkB,gBAAgB,CAAC;AACtF;"}
1
+ {"version":3,"file":"useCheckSelectedCellsVisible.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById } = useProjectTableContext()\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId])\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;AACpC,QAAA,EAAE,cAAc,IAAI,uBAAuB;AAIjD,YAAU,MAAM;;AACR,UAAA,mCAAmB,IAAY;AACrC,eAAW,UAAU,eAAe;AAE9B,UAAA,CAAC,gBAAc,iBAAY,UAAU,EAAE,MAAxB,mBAA2B,UAAS,EAAE,GAAG;AAC1D,qBAAa,IAAI,MAAM;AAAA,MAAA;AAAA,IACzB;AAGE,QAAA,aAAa,OAAO,GAAG;AAEnB,YAAA,eAAe,IAAI,IAAY,aAAa;AAClD,iBAAW,UAAU,cAAc;AACjC,qBAAa,OAAO,MAAM;AAAA,MAAA;AAG5B,uBAAiB,YAAY;AAG7B,UAAI,aAAa,IAAI,iBAAiB,EAAE,GAAG;AACzC,yBAAiB,IAAI;AAAA,MAAA;AAAA,IACvB;AAAA,EACF,GACC,CAAC,eAAe,eAAe,eAAe,kBAAkB,gBAAgB,CAAC;AACtF;"}
@@ -47,6 +47,7 @@ require("../../../api/queries/addons/updateAddons.cjs.js");
47
47
  require("../../../api/queries/attributes/getAttributes.cjs.js");
48
48
  require("../../../api/queries/attributes/updateAttributes.cjs.js");
49
49
  require("../../../api/queries/authentication/getAuthentication.cjs.js");
50
+ require("../../../api/queries/cloud/cloud.cjs.js");
50
51
  require("../../../api/queries/entities/getEntity.cjs.js");
51
52
  require("../../../api/queries/entities/getEntityPanel.cjs.js");
52
53
  require("../../../api/queries/entities/updateEntity.cjs.js");
@@ -55,24 +56,24 @@ require("../../../api/queries/entityLists/updateLists.cjs.js");
55
56
  require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
56
57
  require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
57
58
  const getFolders = require("../../../api/queries/folders/getFolders.cjs.js");
59
+ require("../../../api/queries/grouping/getGrouping.cjs.js");
58
60
  const getOverview = require("../../../api/queries/overview/getOverview.cjs.js");
59
61
  require("../../../api/queries/overview/updateOverview.cjs.js");
62
+ require("../../../api/queries/permissions/getPermissions.cjs.js");
63
+ require("../../../api/queries/products/createProduct.cjs.js");
60
64
  require("../../../api/queries/project/getProject.cjs.js");
61
65
  require("../../../api/queries/project/updateProject.cjs.js");
62
66
  require("../../../api/queries/review/getReview.cjs.js");
63
67
  require("../../../api/queries/review/updateReview.cjs.js");
68
+ require("../../../api/queries/share/share.cjs.js");
64
69
  require("../../../api/queries/system/getSystem.cjs.js");
65
70
  require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
66
71
  require("../../../api/queries/users/getUsers.cjs.js");
67
72
  require("../../../api/queries/users/updateUsers.cjs.js");
68
- require("../../../api/queries/watchers/getWatchers.cjs.js");
69
- require("../../../api/queries/permissions/getPermissions.cjs.js");
70
- require("../../../api/queries/grouping/getGrouping.cjs.js");
71
73
  require("../../../api/queries/versions/updateVersions.cjs.js");
72
- require("../../../api/queries/products/createProduct.cjs.js");
73
- require("../../../api/queries/cloud/cloud.cjs.js");
74
74
  require("../../../api/queries/views/getViews.cjs.js");
75
75
  require("../../../api/queries/views/updateViews.cjs.js");
76
+ require("../../../api/queries/watchers/getWatchers.cjs.js");
76
77
  const React = require("react");
77
78
  const loadingUtils = require("../utils/loadingUtils.cjs.js");
78
79
  const useBuildGroupByTableData = require("./useBuildGroupByTableData.cjs.js");
@@ -80,7 +81,6 @@ const useFetchOverviewData = ({
80
81
  projectName,
81
82
  selectedFolders,
82
83
  // comes from the slicer
83
- filters,
84
84
  queryFilters,
85
85
  sorting,
86
86
  groupBy,
@@ -275,12 +275,11 @@ const useFetchOverviewData = ({
275
275
  const groupQueries = React.useMemo(() => {
276
276
  return groupBy ? (getGroupQueries == null ? void 0 : getGroupQueries({
277
277
  taskGroups,
278
- filters,
278
+ filters: queryFilters.filter,
279
279
  groupBy,
280
- groupPageCounts,
281
- dataType: groupByDataType
280
+ groupPageCounts
282
281
  })) ?? [] : [];
283
- }, [groupBy, taskGroups, filters, groupPageCounts, groupByDataType, getGroupQueries]);
282
+ }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries]);
284
283
  const {
285
284
  data: { tasks: groupTasks = [] } = {},
286
285
  isFetching: isFetchingGroups,
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { Filter } from '@ynput/ayon-react-components'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n filters: Filter[] // RAW filters (including slicer filters)\n queryFilters: {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n filters,\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\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 }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters,\n groupBy,\n groupPageCounts,\n dataType: groupByDataType,\n }) ?? []\n : []\n }, [groupBy, taskGroups, filters, groupPageCounts, groupByDataType, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useGetFolderListQuery","isGroupId","useGetOverviewTasksByFoldersQuery","useGetQueryTasksFoldersQuery","useMemo","determineLoadingTaskFolders","useState","useEffect","useGetTasksListInfiniteInfiniteQuery","useGetGroupedTasksListQuery","tasksMap","tasksByFolderMap"],"mappings":"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"}
1
+ {"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\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 }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useGetFolderListQuery","isGroupId","useGetOverviewTasksByFoldersQuery","useGetQueryTasksFoldersQuery","useMemo","determineLoadingTaskFolders","useState","useEffect","useGetTasksListInfiniteInfiniteQuery","useGetGroupedTasksListQuery","tasksMap","tasksByFolderMap"],"mappings":"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"}
@@ -45,6 +45,7 @@ import "../../../api/queries/addons/updateAddons.es.js";
45
45
  import "../../../api/queries/attributes/getAttributes.es.js";
46
46
  import "../../../api/queries/attributes/updateAttributes.es.js";
47
47
  import "../../../api/queries/authentication/getAuthentication.es.js";
48
+ import "../../../api/queries/cloud/cloud.es.js";
48
49
  import "../../../api/queries/entities/getEntity.es.js";
49
50
  import "../../../api/queries/entities/getEntityPanel.es.js";
50
51
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -53,24 +54,24 @@ import "../../../api/queries/entityLists/updateLists.es.js";
53
54
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
54
55
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
55
56
  import { useGetFolderListQuery } from "../../../api/queries/folders/getFolders.es.js";
57
+ import "../../../api/queries/grouping/getGrouping.es.js";
56
58
  import { useGetOverviewTasksByFoldersQuery, useGetQueryTasksFoldersQuery, useGetTasksListInfiniteInfiniteQuery, useGetGroupedTasksListQuery } from "../../../api/queries/overview/getOverview.es.js";
57
59
  import "../../../api/queries/overview/updateOverview.es.js";
60
+ import "../../../api/queries/permissions/getPermissions.es.js";
61
+ import "../../../api/queries/products/createProduct.es.js";
58
62
  import "../../../api/queries/project/getProject.es.js";
59
63
  import "../../../api/queries/project/updateProject.es.js";
60
64
  import "../../../api/queries/review/getReview.es.js";
61
65
  import "../../../api/queries/review/updateReview.es.js";
66
+ import "../../../api/queries/share/share.es.js";
62
67
  import "../../../api/queries/system/getSystem.es.js";
63
68
  import "../../../api/queries/userDashboard/getUserDashboard.es.js";
64
69
  import "../../../api/queries/users/getUsers.es.js";
65
70
  import "../../../api/queries/users/updateUsers.es.js";
66
- import "../../../api/queries/watchers/getWatchers.es.js";
67
- import "../../../api/queries/permissions/getPermissions.es.js";
68
- import "../../../api/queries/grouping/getGrouping.es.js";
69
71
  import "../../../api/queries/versions/updateVersions.es.js";
70
- import "../../../api/queries/products/createProduct.es.js";
71
- import "../../../api/queries/cloud/cloud.es.js";
72
72
  import "../../../api/queries/views/getViews.es.js";
73
73
  import "../../../api/queries/views/updateViews.es.js";
74
+ import "../../../api/queries/watchers/getWatchers.es.js";
74
75
  import { useMemo, useState, useEffect } from "react";
75
76
  import { determineLoadingTaskFolders } from "../utils/loadingUtils.es.js";
76
77
  import { isGroupId } from "./useBuildGroupByTableData.es.js";
@@ -78,7 +79,6 @@ const useFetchOverviewData = ({
78
79
  projectName,
79
80
  selectedFolders,
80
81
  // comes from the slicer
81
- filters,
82
82
  queryFilters,
83
83
  sorting,
84
84
  groupBy,
@@ -273,12 +273,11 @@ const useFetchOverviewData = ({
273
273
  const groupQueries = useMemo(() => {
274
274
  return groupBy ? (getGroupQueries == null ? void 0 : getGroupQueries({
275
275
  taskGroups,
276
- filters,
276
+ filters: queryFilters.filter,
277
277
  groupBy,
278
- groupPageCounts,
279
- dataType: groupByDataType
278
+ groupPageCounts
280
279
  })) ?? [] : [];
281
- }, [groupBy, taskGroups, filters, groupPageCounts, groupByDataType, getGroupQueries]);
280
+ }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries]);
282
281
  const {
283
282
  data: { tasks: groupTasks = [] } = {},
284
283
  isFetching: isFetchingGroups,
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { Filter } from '@ynput/ayon-react-components'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n filters: Filter[] // RAW filters (including slicer filters)\n queryFilters: {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n filters,\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\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 }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters,\n groupBy,\n groupPageCounts,\n dataType: groupByDataType,\n }) ?? []\n : []\n }, [groupBy, taskGroups, filters, groupPageCounts, groupByDataType, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["tasksMap","tasksByFolderMap"],"mappings":"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"}
1
+ {"version":3,"file":"useFetchOverviewData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetFolderListQuery,\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type {\n FolderListItem,\n GetGroupedTasksListArgs,\n EntityGroup,\n QueryTasksFoldersApiArg,\n QueryFilter,\n} from '@shared/api'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from './useProjectTableModules'\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n } // filters from the filters bar or slicer (not hierarchy)\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n expanded: ExpandedState\n showHierarchy: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n queryFilters,\n sorting,\n groupBy,\n taskGroups = [],\n expanded,\n showHierarchy,\n attribFields,\n modules,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n data: { folders = [] } = {},\n isLoading,\n isFetching: isFetchingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useGetFolderListQuery(\n { projectName: projectName || '', attrib: true },\n { skip: !projectName },\n )\n\n // console.log('Folder count:', folders.length)\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: expandedParentIds,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n },\n { skip: !expandedParentIds.length || !showHierarchy },\n )\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isFetching: isFetchingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetQueryTasksFoldersQuery(\n {\n projectName,\n tasksFoldersQuery: { filter: queryFilters.filter, search: queryFilters.search },\n },\n {\n skip: !queryFilters.filterString || !folders.length || !showHierarchy,\n },\n )\n\n // create a map of folders by id for efficient lookups\n const foldersMap: FolderNodeMap = useMemo(() => {\n const map = new Map()\n\n const addExtraDataToFolder = (folder: FolderListItem) => {\n // add any extra data to folder\n const folderWithExtraData: MatchingFolder = {\n ...folder,\n entityId: folder.id,\n entityType: 'folder',\n }\n return folderWithExtraData\n }\n\n // If we have task filters and folders to filter\n if (!isUninitialized && foldersByTaskFilter && folders.length) {\n // Create a set for efficient lookups of filtered folder IDs\n const relevantFolderIds = new Set<string>()\n\n // First pass: Add all folders from the task filter\n for (const folderId of foldersByTaskFilter) {\n relevantFolderIds.add(folderId)\n }\n\n // Create a map of folders by ID for parentId lookups\n const foldersByIdMap = new Map<string, (typeof folders)[0]>()\n for (const folder of folders) {\n foldersByIdMap.set(folder.id as string, folder)\n }\n\n // Second pass: Add all parent folders of filtered folders\n const addParents = (folderId: string) => {\n const folder = foldersByIdMap.get(folderId)\n if (folder && folder.parentId) {\n relevantFolderIds.add(folder.parentId as string)\n addParents(folder.parentId as string)\n }\n }\n\n // Process each filtered folder to add its parents\n for (const folderId of foldersByTaskFilter) {\n addParents(folderId)\n }\n\n // Third pass: Build the final map using only relevant folders\n for (const folder of folders) {\n if (relevantFolderIds.has(folder.id as string)) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n } else {\n // No filtering, include all folders\n for (const folder of folders) {\n map.set(folder.id as string, addExtraDataToFolder(folder))\n }\n }\n\n // Filter by selected folders if needed\n if (selectedFolders.length) {\n const selectedPaths = selectedFolders\n .map((id) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n // Include if it's a parent or the folder itself\n const folderPathParts = folderPath.split('/')\n let isParentOrSelf = false\n\n for (let i = 0; i < folderPathParts.length; i++) {\n const partialPath = folderPathParts.slice(0, i + 1).join('/')\n if (selectedPaths.some((p) => p === partialPath)) {\n isParentOrSelf = true\n break\n }\n }\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isParentOrSelf || isChild) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [folders, foldersByTaskFilter, isUninitialized, selectedFolders])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length ? Array.from(foldersMap.keys()) : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: queryFilters.filterString,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n skip: showHierarchy,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const initGroupPageCounts = useMemo(() => {\n return taskGroups.reduce((acc, group) => {\n acc[group.value] = 1 // initialize each group with 1 count\n return acc\n }, {} as Record<string, number>)\n }, [taskGroups])\n const [groupPageCounts, setGroupPageCounts] = useState<Record<string, number>>({})\n\n // when initGroupPageCounts changes, set it to groupPageCounts\n useEffect(() => {\n const hasInitData = Object.keys(initGroupPageCounts).length > 0\n const hasCurrentData = Object.keys(groupPageCounts).length > 0\n\n if (hasInitData && !hasCurrentData) {\n setGroupPageCounts(initGroupPageCounts)\n }\n }, [initGroupPageCounts])\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n\n // get the data type for the groupBy\n const groupByDataType = useMemo(() => {\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 }, [groupBy?.id, attribFields])\n\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n return groupBy\n ? getGroupQueries?.({\n taskGroups,\n filters: queryFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n : []\n }, [groupBy, taskGroups, groupPageCounts, groupByDataType, queryFilters.filter, getGroupQueries])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isFetching: isFetchingGroups,\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: queryFilters.search,\n folderIds: tasksFolderIdsParams,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n console.log('fetching next page for group:', group)\n // fetch next page for a specific group by increasing the count in groupPageCounts\n setGroupPageCounts((prevCounts) => {\n const newCounts = { ...prevCounts }\n newCounts[group] = (newCounts[group] || 1) + 1 // increment the count for this group\n return newCounts\n })\n }\n } else if (hasNextPage) {\n console.log('fetching next page')\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n })\n\n // either show the hierarchy or the flat list of tasks\n const allTasks = showHierarchy ? expandedFoldersTasks : groupBy ? groupTasks : tasksList\n for (const task of allTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n tasksByFolderMap.get(folderId)!.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [expandedFoldersTasks, showHierarchy, tasksList, groupTasks])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n }\n\n return {\n foldersMap: foldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoading ||\n isFetchingFolders ||\n (isFetchingTasksList && !isFetchingNextPageTasksList) ||\n isFetchingTasksFolders ||\n isFetchingGroups ||\n isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["tasksMap","tasksByFolderMap"],"mappings":"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"}
@@ -66,6 +66,7 @@ require("../../../api/queries/addons/updateAddons.cjs.js");
66
66
  require("../../../api/queries/attributes/getAttributes.cjs.js");
67
67
  require("../../../api/queries/attributes/updateAttributes.cjs.js");
68
68
  require("../../../api/queries/authentication/getAuthentication.cjs.js");
69
+ require("../../../api/queries/cloud/cloud.cjs.js");
69
70
  require("../../../api/queries/entities/getEntity.cjs.js");
70
71
  require("../../../api/queries/entities/getEntityPanel.cjs.js");
71
72
  require("../../../api/queries/entities/updateEntity.cjs.js");
@@ -74,24 +75,24 @@ require("../../../api/queries/entityLists/updateLists.cjs.js");
74
75
  require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
75
76
  require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
76
77
  require("../../../api/queries/folders/getFolders.cjs.js");
78
+ require("../../../api/queries/grouping/getGrouping.cjs.js");
77
79
  require("../../../api/queries/overview/getOverview.cjs.js");
78
80
  require("../../../api/queries/overview/updateOverview.cjs.js");
81
+ require("../../../api/queries/permissions/getPermissions.cjs.js");
82
+ require("../../../api/queries/products/createProduct.cjs.js");
79
83
  require("../../../api/queries/project/getProject.cjs.js");
80
84
  require("../../../api/queries/project/updateProject.cjs.js");
81
85
  require("../../../api/queries/review/getReview.cjs.js");
82
86
  require("../../../api/queries/review/updateReview.cjs.js");
87
+ require("../../../api/queries/share/share.cjs.js");
83
88
  require("../../../api/queries/system/getSystem.cjs.js");
84
89
  require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
85
90
  require("../../../api/queries/users/getUsers.cjs.js");
86
91
  require("../../../api/queries/users/updateUsers.cjs.js");
87
- require("../../../api/queries/watchers/getWatchers.cjs.js");
88
- require("../../../api/queries/permissions/getPermissions.cjs.js");
89
- require("../../../api/queries/grouping/getGrouping.cjs.js");
90
92
  require("../../../api/queries/versions/updateVersions.cjs.js");
91
- require("../../../api/queries/products/createProduct.cjs.js");
92
- require("../../../api/queries/cloud/cloud.cjs.js");
93
93
  require("../../../api/queries/views/getViews.cjs.js");
94
94
  require("../../../api/queries/views/updateViews.cjs.js");
95
+ require("../../../api/queries/watchers/getWatchers.cjs.js");
95
96
  require("../../../context/RemoteModulesContext.cjs.js");
96
97
  require("../../../../../_virtual/runtime.cjs.js");
97
98
  require("../../../../../_virtual/semver.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":["useColumnSettingsContext","useProjectTableContext","useMemo","getAttributeIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAIA,+CAAyB;AAC3C,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEzC,SAAAC,MAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAMA,iBAAAA,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;;;;"}
1
+ {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":["useColumnSettingsContext","useProjectTableContext","useMemo","getAttributeIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAIA,+CAAyB;AAC3C,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEzC,SAAAC,MAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAMA,iBAAAA,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;;;;"}
@@ -64,6 +64,7 @@ import "../../../api/queries/addons/updateAddons.es.js";
64
64
  import "../../../api/queries/attributes/getAttributes.es.js";
65
65
  import "../../../api/queries/attributes/updateAttributes.es.js";
66
66
  import "../../../api/queries/authentication/getAuthentication.es.js";
67
+ import "../../../api/queries/cloud/cloud.es.js";
67
68
  import "../../../api/queries/entities/getEntity.es.js";
68
69
  import "../../../api/queries/entities/getEntityPanel.es.js";
69
70
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -72,24 +73,24 @@ import "../../../api/queries/entityLists/updateLists.es.js";
72
73
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
73
74
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
74
75
  import "../../../api/queries/folders/getFolders.es.js";
76
+ import "../../../api/queries/grouping/getGrouping.es.js";
75
77
  import "../../../api/queries/overview/getOverview.es.js";
76
78
  import "../../../api/queries/overview/updateOverview.es.js";
79
+ import "../../../api/queries/permissions/getPermissions.es.js";
80
+ import "../../../api/queries/products/createProduct.es.js";
77
81
  import "../../../api/queries/project/getProject.es.js";
78
82
  import "../../../api/queries/project/updateProject.es.js";
79
83
  import "../../../api/queries/review/getReview.es.js";
80
84
  import "../../../api/queries/review/updateReview.es.js";
85
+ import "../../../api/queries/share/share.es.js";
81
86
  import "../../../api/queries/system/getSystem.es.js";
82
87
  import "../../../api/queries/userDashboard/getUserDashboard.es.js";
83
88
  import "../../../api/queries/users/getUsers.es.js";
84
89
  import "../../../api/queries/users/updateUsers.es.js";
85
- import "../../../api/queries/watchers/getWatchers.es.js";
86
- import "../../../api/queries/permissions/getPermissions.es.js";
87
- import "../../../api/queries/grouping/getGrouping.es.js";
88
90
  import "../../../api/queries/versions/updateVersions.es.js";
89
- import "../../../api/queries/products/createProduct.es.js";
90
- import "../../../api/queries/cloud/cloud.es.js";
91
91
  import "../../../api/queries/views/getViews.es.js";
92
92
  import "../../../api/queries/views/updateViews.es.js";
93
+ import "../../../api/queries/watchers/getWatchers.es.js";
93
94
  import "../../../context/RemoteModulesContext.es.js";
94
95
  import "../../../../../_virtual/runtime.es.js";
95
96
  import "../../../../../_virtual/semver.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAI,yBAAyB;AAC3C,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAEzC,SAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAM,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;"}
1
+ {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAI,yBAAyB;AAC3C,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAEzC,SAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAM,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;"}