@ynput/ayon-frontend-shared 0.3.41 → 0.3.42

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 (643) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -27
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +224 -223
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +25 -16
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs6.js +1 -1
  11. package/dist/_virtual/index.cjs8.js +1 -1
  12. package/dist/_virtual/index.es6.js +2 -2
  13. package/dist/_virtual/index.es8.js +2 -2
  14. package/dist/api.cjs.js +1 -1
  15. package/dist/api.es.js +420 -419
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +15 -14
  18. package/dist/index.es.js.map +1 -1
  19. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  20. package/dist/node_modules/remove-accents/index.es.js +1 -1
  21. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  22. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  23. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  24. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  25. package/dist/shared/src/api/generated/graphql.cjs.js +41 -27
  26. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/graphql.es.js +259 -97
  28. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  29. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  30. package/dist/shared/src/api/generated/graphqlLinks.es.js +70 -19
  31. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/updateActivities.es.js +40 -43
  35. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  37. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  38. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +149 -55
  39. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +105 -51
  45. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entityLists/getLists.es.js +174 -124
  49. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  51. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +94 -40
  53. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  55. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  56. package/dist/shared/src/api/queries/folders/getFolders.es.js +109 -55
  57. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  58. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  59. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  60. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +117 -63
  61. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/links/getLinks.es.js +108 -54
  65. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/overview/getOverview.es.js +220 -167
  69. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +133 -80
  73. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/review/getReview.es.js +127 -75
  77. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +142 -90
  81. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
  83. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  85. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +537 -331
  89. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  90. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  91. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  92. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +124 -29
  93. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  94. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  95. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  96. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +140 -45
  97. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  98. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  99. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  100. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +8 -7
  101. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  102. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  103. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -4
  104. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  105. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  106. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -18
  107. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  108. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  109. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  110. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +108 -13
  111. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  112. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  113. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -3
  114. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  115. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  116. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +119 -24
  117. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  118. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  119. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  120. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +97 -2
  121. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  122. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  123. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  124. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +8 -7
  125. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  126. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  127. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  128. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +8 -7
  129. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  130. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  131. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -5
  132. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  133. package/dist/shared/src/components/LinksManager/LinksManager.es.js +9 -9
  134. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  135. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  136. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -7
  137. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  138. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  139. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -4
  140. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  141. package/dist/shared/src/components/Menu/Menu.es.js +7 -7
  142. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  143. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  144. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +22 -21
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  146. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  147. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +56 -55
  149. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  150. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  151. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  152. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +16 -14
  153. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  154. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  155. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  156. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +9 -8
  157. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  158. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  159. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  160. package/dist/shared/src/components/RenameForm/RenameForm.es.js +8 -7
  161. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  162. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  163. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  164. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -7
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +9 -8
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  170. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  171. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  172. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -7
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  174. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  175. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  176. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +8 -7
  177. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  178. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  179. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -1
  180. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  181. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  182. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +10 -9
  183. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  184. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  185. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  186. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -7
  187. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  188. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  189. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  190. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +122 -27
  191. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  192. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  193. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  194. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +117 -22
  195. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  196. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  197. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  198. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -7
  199. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  200. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  201. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  202. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +12 -11
  203. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  204. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  205. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -7
  207. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  208. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  209. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/Actions/Actions.es.js +42 -42
  211. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  212. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  213. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
  215. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  216. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
  217. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
  219. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  220. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  221. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -7
  223. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -7
  227. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  228. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -7
  231. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  232. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  233. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +8 -7
  235. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  236. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  237. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +30 -29
  239. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  240. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  241. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +12 -11
  243. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  244. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  245. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +115 -20
  247. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  248. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +8 -7
  251. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  252. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -21
  255. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  256. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -7
  259. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  261. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -7
  263. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  264. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  265. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +105 -10
  267. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  268. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  269. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -2
  270. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  271. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +30 -29
  273. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  274. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  275. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -7
  277. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  278. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  279. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -7
  281. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  282. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  283. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -7
  285. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  286. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  287. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +106 -11
  289. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  290. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  291. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  292. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +122 -27
  293. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  294. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  295. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -7
  297. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  298. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  299. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +90 -80
  301. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  302. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  303. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +8 -7
  305. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  306. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +119 -24
  309. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  310. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  311. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +28 -29
  313. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  314. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  315. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -7
  317. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  318. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +12 -11
  321. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  322. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  323. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +104 -9
  325. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  326. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  327. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +1 -1
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  329. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -7
  331. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  332. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
  333. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
  334. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
  335. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
  336. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  337. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +185 -87
  339. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  340. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  341. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +105 -10
  343. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  344. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  345. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +108 -13
  347. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  348. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  349. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ListTable/ListTable.es.js +21 -20
  351. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  352. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  353. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -7
  355. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  356. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  357. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +8 -7
  359. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +428 -424
  363. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +71 -70
  367. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -7
  371. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +8 -7
  375. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -7
  379. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -7
  383. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +22 -21
  387. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +8 -7
  391. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +178 -83
  395. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  396. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +30 -29
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +23 -22
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -7
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -7
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +25 -24
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -7
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +72 -72
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +25 -24
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +24 -23
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -7
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -7
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -8
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +23 -22
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +13 -16
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +47 -42
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +37 -36
  459. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +8 -7
  463. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +9 -8
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +8 -7
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +10 -9
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +4 -4
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +24 -23
  481. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -7
  485. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +4 -4
  488. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  489. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +175 -80
  491. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  493. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +107 -12
  495. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  496. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  497. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +41 -40
  499. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  500. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  501. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -7
  503. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  504. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  505. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  506. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
  507. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  508. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  509. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -7
  511. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  512. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  513. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  514. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +273 -124
  515. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  516. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
  517. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
  518. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
  519. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
  520. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  521. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  522. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  523. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  524. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
  525. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
  526. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +156 -0
  527. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
  528. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
  529. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
  530. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +187 -0
  531. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
  532. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
  533. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
  534. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +143 -0
  535. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
  536. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  537. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +47 -43
  539. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  540. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
  541. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +8 -13
  543. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  544. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +2 -0
  545. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +1 -0
  546. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +8 -0
  547. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +1 -0
  548. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  549. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +124 -29
  551. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  552. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  553. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +2 -2
  554. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  555. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +7 -6
  557. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  558. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  559. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +113 -18
  561. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  562. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  563. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +140 -45
  565. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  566. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  567. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +2 -2
  568. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  570. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  571. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  572. package/dist/shared/src/context/DetailsPanelContext.es.js +64 -63
  573. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  574. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  575. package/dist/shared/src/context/PowerpackContext.es.js +2 -2
  576. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  577. package/dist/shared/src/context/ProjectFoldersContext.es.js +2 -2
  578. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  579. package/dist/shared/src/context/SubtasksModulesContext.es.js +2 -2
  580. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  581. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  582. package/dist/shared/src/context/UriContext.es.js +1 -1
  583. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  584. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  585. package/dist/shared/src/context/WebsocketContext.es.js +17 -16
  586. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  587. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  588. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  589. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +2 -2
  590. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  591. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  592. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +115 -20
  593. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  594. package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
  595. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
  596. package/dist/shared/src/util/getBundleMode.es.js +118 -0
  597. package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
  598. package/dist/types/api/generated/graphql.d.ts +639 -853
  599. package/dist/types/api/generated/graphqlLinks.d.ts +190 -284
  600. package/dist/types/api/queries/activities/getActivities.d.ts +144 -137
  601. package/dist/types/api/queries/activities/updateActivities.d.ts +288 -274
  602. package/dist/types/api/queries/columnStats/columnStats.d.ts +3 -21
  603. package/dist/types/api/queries/entities/getEntity.d.ts +144 -137
  604. package/dist/types/api/queries/entities/getEntityPanel.d.ts +144 -137
  605. package/dist/types/api/queries/entities/updateEntity.d.ts +144 -137
  606. package/dist/types/api/queries/entityLists/getLists.d.ts +1388 -1381
  607. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  608. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +66 -66
  609. package/dist/types/api/queries/overview/getOverview.d.ts +630 -623
  610. package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
  611. package/dist/types/api/queries/project/getProject.d.ts +264 -257
  612. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +192 -185
  613. package/dist/types/api/queries/users/getUsers.d.ts +177 -170
  614. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +784 -770
  615. package/dist/types/api/queries/versions/updateVersions.d.ts +106 -143
  616. package/dist/types/containers/Actions/Actions.d.ts +3 -2
  617. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
  618. package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
  619. package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -2
  620. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
  621. package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
  622. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -19
  623. package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
  624. package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
  625. package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
  626. package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +20 -0
  627. package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
  628. package/dist/types/containers/Slicer/types.d.ts +7 -0
  629. package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +5 -3
  630. package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
  631. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  632. package/dist/types/context/DetailsPanelContext.d.ts +2 -1
  633. package/dist/types/util/getBundleMode.d.ts +4 -0
  634. package/dist/types/util/index.d.ts +1 -0
  635. package/dist/util.cjs.js +1 -1
  636. package/dist/util.es.js +33 -30
  637. package/dist/util.es.js.map +1 -1
  638. package/package.json +3 -3
  639. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
  640. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
  641. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
  642. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
  643. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnGroupBy.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useColumnGroupBy.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { isAttribGroupable } from './useGetGroupedFields'\n\n/**\n * Encapsulates mapping a table column to a groupBy id, determining if it is eligible\n * for grouping, and providing a helper to trigger grouping.\n */\nexport const useColumnGroupBy = (columnId: string) => {\n const { updateGroupBy } = useColumnSettingsContext()\n const { attribFields, scopes } = useProjectTableContext()\n\n const isAttribColumn = columnId.startsWith('attrib_')\n const attribName = isAttribColumn ? columnId.replace('attrib_', '') : undefined\n const attribField = useMemo(\n () => (isAttribColumn ? attribFields.find((f) => f.name === attribName) : undefined),\n [attribFields, isAttribColumn, attribName],\n )\n\n const targetGroupById = useMemo(() => {\n if (columnId.startsWith('attrib_')) return 'attrib.' + columnId.replace('attrib_', '')\n if (columnId === 'subType') {\n if (scopes.includes('task')) {\n return 'taskType'\n } else if (scopes.includes('version')) {\n return 'productType'\n }\n }\n if (['status', 'assignees', 'tags', 'taskType'].includes(columnId)) return columnId\n return undefined\n }, [columnId])\n\n const canGroupThisColumn = useMemo(() => {\n if (!targetGroupById) return false\n if (!isAttribColumn) return true\n return !!attribField && isAttribGroupable(attribField, 'task')\n }, [attribField, isAttribColumn, targetGroupById])\n\n const groupLabel = useMemo(() => {\n if (isAttribColumn)\n return attribField?.data.title || attribField?.name || attribName || 'Attribute'\n if (columnId === 'status') return 'Status'\n if (columnId === 'subType') return 'Type'\n if (columnId === 'assignees') return 'Assignees'\n if (columnId === 'tags') return 'Tags'\n return 'Column'\n }, [attribField, attribName, columnId, isAttribColumn])\n\n const groupBySelectedColumn = useCallback(() => {\n if (targetGroupById) updateGroupBy({ id: targetGroupById, desc: false })\n }, [targetGroupById, updateGroupBy])\n\n return {\n targetGroupById,\n canGroupThisColumn,\n groupLabel,\n groupBySelectedColumn,\n }\n}\n"],"names":["useColumnGroupBy","columnId","updateGroupBy","useColumnSettingsContext","attribFields","scopes","useProjectTableContext","isAttribColumn","attribName","attribField","useMemo","f","targetGroupById","canGroupThisColumn","isAttribGroupable","groupLabel","groupBySelectedColumn","useCallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAMA,KAAmB,CAACC,MAAqB;AACpD,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpB,EAAE,cAAAC,GAAc,QAAAC,EAAA,IAAWC,EAAA,GAE3BC,IAAiBN,EAAS,WAAW,SAAS,GAC9CO,IAAaD,IAAiBN,EAAS,QAAQ,WAAW,EAAE,IAAI,QAChEQ,IAAcC;AAAA,IAClB,MAAOH,IAAiBH,EAAa,KAAK,CAACO,MAAMA,EAAE,SAASH,CAAU,IAAI;AAAA,IAC1E,CAACJ,GAAcG,GAAgBC,CAAU;AAAA,EAAA,GAGrCI,IAAkBF,EAAQ,MAAM;AACpC,QAAIT,EAAS,WAAW,SAAS,UAAU,YAAYA,EAAS,QAAQ,WAAW,EAAE;AACrF,QAAIA,MAAa,WAAW;AAC1B,UAAII,EAAO,SAAS,MAAM;AACxB,eAAO;AACT,UAAWA,EAAO,SAAS,SAAS;AAClC,eAAO;AAAA,IAEX;AACA,QAAI,CAAC,UAAU,aAAa,QAAQ,UAAU,EAAE,SAASJ,CAAQ,EAAG,QAAOA;AAAA,EAE7E,GAAG,CAACA,CAAQ,CAAC,GAEPY,IAAqBH,EAAQ,MAC5BE,IACAL,IACE,CAAC,CAACE,KAAeK,EAAkBL,GAAa,MAAM,IADjC,KADC,IAG5B,CAACA,GAAaF,GAAgBK,CAAe,CAAC,GAE3CG,IAAaL,EAAQ,MACrBH,IACKE,GAAa,KAAK,SAASA,GAAa,QAAQD,KAAc,cACnEP,MAAa,WAAiB,WAC9BA,MAAa,YAAkB,SAC/BA,MAAa,cAAoB,cACjCA,MAAa,SAAe,SACzB,UACN,CAACQ,GAAaD,GAAYP,GAAUM,CAAc,CAAC,GAEhDS,IAAwBC,EAAY,MAAM;AAC9C,IAAIL,KAAiBV,EAAc,EAAE,IAAIU,GAAiB,MAAM,IAAO;AAAA,EACzE,GAAG,CAACA,GAAiBV,CAAa,CAAC;AAEnC,SAAO;AAAA,IACL,iBAAAU;AAAA,IACA,oBAAAC;AAAA,IACA,YAAAE;AAAA,IACA,uBAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useColumnGroupBy.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useColumnGroupBy.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { isAttribGroupable } from './useGetGroupedFields'\n\n/**\n * Encapsulates mapping a table column to a groupBy id, determining if it is eligible\n * for grouping, and providing a helper to trigger grouping.\n */\nexport const useColumnGroupBy = (columnId: string) => {\n const { updateGroupBy } = useColumnSettingsContext()\n const { attribFields, scopes } = useProjectTableContext()\n\n const isAttribColumn = columnId.startsWith('attrib_')\n const attribName = isAttribColumn ? columnId.replace('attrib_', '') : undefined\n const attribField = useMemo(\n () => (isAttribColumn ? attribFields.find((f) => f.name === attribName) : undefined),\n [attribFields, isAttribColumn, attribName],\n )\n\n const targetGroupById = useMemo(() => {\n if (columnId.startsWith('attrib_')) return 'attrib.' + columnId.replace('attrib_', '')\n if (columnId === 'subType') {\n if (scopes.includes('task')) {\n return 'taskType'\n } else if (scopes.includes('version')) {\n return 'productType'\n }\n }\n if (['status', 'assignees', 'tags', 'taskType'].includes(columnId)) return columnId\n return undefined\n }, [columnId])\n\n const canGroupThisColumn = useMemo(() => {\n if (!targetGroupById) return false\n if (!isAttribColumn) return true\n return !!attribField && isAttribGroupable(attribField, 'task')\n }, [attribField, isAttribColumn, targetGroupById])\n\n const groupLabel = useMemo(() => {\n if (isAttribColumn)\n return attribField?.data.title || attribField?.name || attribName || 'Attribute'\n if (columnId === 'status') return 'Status'\n if (columnId === 'subType') return 'Type'\n if (columnId === 'assignees') return 'Assignees'\n if (columnId === 'tags') return 'Tags'\n return 'Column'\n }, [attribField, attribName, columnId, isAttribColumn])\n\n const groupBySelectedColumn = useCallback(() => {\n if (targetGroupById) updateGroupBy({ id: targetGroupById, desc: false })\n }, [targetGroupById, updateGroupBy])\n\n return {\n targetGroupById,\n canGroupThisColumn,\n groupLabel,\n groupBySelectedColumn,\n }\n}\n"],"names":["useColumnGroupBy","columnId","updateGroupBy","useColumnSettingsContext","attribFields","scopes","useProjectTableContext","isAttribColumn","attribName","attribField","useMemo","f","targetGroupById","canGroupThisColumn","isAttribGroupable","groupLabel","groupBySelectedColumn","useCallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAMA,KAAmB,CAACC,MAAqB;AACpD,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpB,EAAE,cAAAC,GAAc,QAAAC,EAAA,IAAWC,EAAA,GAE3BC,IAAiBN,EAAS,WAAW,SAAS,GAC9CO,IAAaD,IAAiBN,EAAS,QAAQ,WAAW,EAAE,IAAI,QAChEQ,IAAcC;AAAA,IAClB,MAAOH,IAAiBH,EAAa,KAAK,CAACO,MAAMA,EAAE,SAASH,CAAU,IAAI;AAAA,IAC1E,CAACJ,GAAcG,GAAgBC,CAAU;AAAA,EAAA,GAGrCI,IAAkBF,EAAQ,MAAM;AACpC,QAAIT,EAAS,WAAW,SAAS,UAAU,YAAYA,EAAS,QAAQ,WAAW,EAAE;AACrF,QAAIA,MAAa,WAAW;AAC1B,UAAII,EAAO,SAAS,MAAM;AACxB,eAAO;AACT,UAAWA,EAAO,SAAS,SAAS;AAClC,eAAO;AAAA,IAEX;AACA,QAAI,CAAC,UAAU,aAAa,QAAQ,UAAU,EAAE,SAASJ,CAAQ,EAAG,QAAOA;AAAA,EAE7E,GAAG,CAACA,CAAQ,CAAC,GAEPY,IAAqBH,EAAQ,MAC5BE,IACAL,IACE,CAAC,CAACE,KAAeK,EAAkBL,GAAa,MAAM,IADjC,KADC,IAG5B,CAACA,GAAaF,GAAgBK,CAAe,CAAC,GAE3CG,IAAaL,EAAQ,MACrBH,IACKE,GAAa,KAAK,SAASA,GAAa,QAAQD,KAAc,cACnEP,MAAa,WAAiB,WAC9BA,MAAa,YAAkB,SAC/BA,MAAa,cAAoB,cACjCA,MAAa,SAAe,SACzB,UACN,CAACQ,GAAaD,GAAYP,GAAUM,CAAc,CAAC,GAEhDS,IAAwBC,EAAY,MAAM;AAC9C,IAAIL,KAAiBV,EAAc,EAAE,IAAIU,GAAiB,MAAM,IAAO;AAAA,EACzE,GAAG,CAACA,GAAiBV,CAAa,CAAC;AAEnC,SAAO;AAAA,IACL,iBAAAU;AAAA,IACA,oBAAAC;AAAA,IACA,YAAAE;AAAA,IACA,uBAAAC;AAAA,EAAA;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";const T=require("../../../../../_virtual/jsx-runtime.cjs.js"),b=require("react");require("../../ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");const g=require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");const D=require("react-toastify");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");const k=require("../../../util/confirmDelete.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const w=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");const j=require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");const x=require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");const s=require("../components/DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");const I=(o,c)=>{if(o.length===0)return[];const a=new Map(c.map(i=>[i.id,i])),d=o.length>1,n=[];for(const i of o){const r=a.get(i.id),l=d?`"${i.label||i.name}" contains `:"Contains ";if(r&&(r.totalFolderCount>0||r.totalTaskCount>0||r.totalProductCount>0||r.totalVersionCount>0)){const t=[];r.totalFolderCount>0&&t.push(s.pluralize(r.totalFolderCount,"child folder")),r.totalTaskCount>0&&t.push(s.pluralize(r.totalTaskCount,"task")),r.totalProductCount>0&&t.push(s.pluralize(r.totalProductCount,"product")),r.totalVersionCount>0&&t.push(s.pluralize(r.totalVersionCount,"version")),n.push(`${l}${t.join(", ")}`)}else"hasChildren"in i&&i.hasChildren&&n.push(`${l}child folders`),"taskNames"in i&&i.taskNames&&i.taskNames.length>0&&n.push(`${l}${s.pluralize(i.taskNames.length,"task")}`)}return n},F=({onSuccess:o})=>{const{updateEntities:c}=x.useProjectTableQueriesContext(),{projectName:a}=w.useProjectContext(),{getEntityById:d}=j.useProjectTableContext(),[n]=g.useLazyGetFolderDeleteInfoQuery();return b.useCallback(async i=>{if(!i||i.length===0){D.toast.error("No entities selected");return}const r=[],l=new Set;for(const e of i){const q=d(e);q&&!l.has(q.id)&&(r.push(q),l.add(q.id))}if(r.length===0){D.toast.error("No entities found");return}const C=new Set(r.map(e=>e.id)),t=r.filter(e=>e.entityType==="folder"&&"parentId"in e&&e.parentId?!C.has(e.parentId):"folderId"in e&&e.folderId?!C.has(e.folderId):!0),m=async(e=!1)=>{const q=[];for(const u of r)u&&q.push({entityType:"folderId"in u?"task":"folder",type:"delete",entityId:u.id,rowId:u.rowId,force:e});try{await c?.({operations:q}),o&&o()}catch(u){const E=u?.error||"Failed to delete entities";throw console.error("Failed to delete entities:",u),{message:E,...u}}},f={};for(const e of t)f[e.entityType]=(f[e.entityType]||0)+1;let p;if(t.length===1){const e=t[0];p=`"${e.label||e.name}"`}else p=["folder","task","product","version"].filter(u=>f[u]>0).map(u=>s.pluralize(f[u],u)).join(", ");const h=t.filter(e=>e.entityType==="folder");let y=[];if(h.length>0&&a)try{const e=await n({projectName:a,folderIds:h.map(q=>q.id)}).unwrap();y=I(h,e)}catch(e){console.warn("Failed to fetch folder delete info, falling back to local data",e),y=I(h,[])}k.confirmDelete({label:"folders and tasks",message:T.jsxRuntimeExports.jsx(s.DeleteConfirmContent,{entityLabel:p,childrenDetails:y}),accept:m,onError:e=>{e?.errorCodes?.includes("delete-folder-with-children")&&(window.confirm(`Are you really sure you want to delete ${p} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`)?m(!0):console.log("User cancelled forced delete"))},deleteLabel:"Delete forever"})},[d,c,o,a,n])};module.exports=F;
1
+ "use strict";const T=require("../../../../../_virtual/jsx-runtime.cjs.js"),b=require("react");require("../../ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");const g=require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");const D=require("react-toastify");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");const k=require("../../../util/confirmDelete.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const w=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");const j=require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");const x=require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");const s=require("../components/DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");const I=(o,c)=>{if(o.length===0)return[];const a=new Map(c.map(i=>[i.id,i])),d=o.length>1,n=[];for(const i of o){const r=a.get(i.id),l=d?`"${i.label||i.name}" contains `:"Contains ";if(r&&(r.totalFolderCount>0||r.totalTaskCount>0||r.totalProductCount>0||r.totalVersionCount>0)){const t=[];r.totalFolderCount>0&&t.push(s.pluralize(r.totalFolderCount,"child folder")),r.totalTaskCount>0&&t.push(s.pluralize(r.totalTaskCount,"task")),r.totalProductCount>0&&t.push(s.pluralize(r.totalProductCount,"product")),r.totalVersionCount>0&&t.push(s.pluralize(r.totalVersionCount,"version")),n.push(`${l}${t.join(", ")}`)}else"hasChildren"in i&&i.hasChildren&&n.push(`${l}child folders`),"taskNames"in i&&i.taskNames&&i.taskNames.length>0&&n.push(`${l}${s.pluralize(i.taskNames.length,"task")}`)}return n},F=({onSuccess:o})=>{const{updateEntities:c}=x.useProjectTableQueriesContext(),{projectName:a}=w.useProjectContext(),{getEntityById:d}=j.useProjectTableContext(),[n]=g.useLazyGetFolderDeleteInfoQuery();return b.useCallback(async i=>{if(!i||i.length===0){D.toast.error("No entities selected");return}const r=[],l=new Set;for(const e of i){const q=d(e);q&&!l.has(q.id)&&(r.push(q),l.add(q.id))}if(r.length===0){D.toast.error("No entities found");return}const C=new Set(r.map(e=>e.id)),t=r.filter(e=>e.entityType==="folder"&&"parentId"in e&&e.parentId?!C.has(e.parentId):"folderId"in e&&e.folderId?!C.has(e.folderId):!0),m=async(e=!1)=>{const q=[];for(const u of r)u&&q.push({entityType:"folderId"in u?"task":"folder",type:"delete",entityId:u.id,rowId:u.rowId,force:e});try{await c?.({operations:q}),o&&o()}catch(u){const E=u?.error||"Failed to delete entities";throw console.error("Failed to delete entities:",u),{message:E,...u}}},f={};for(const e of t)f[e.entityType]=(f[e.entityType]||0)+1;let p;if(t.length===1){const e=t[0];p=`"${e.label||e.name}"`}else p=["folder","task","product","version"].filter(u=>f[u]>0).map(u=>s.pluralize(f[u],u)).join(", ");const h=t.filter(e=>e.entityType==="folder");let y=[];if(h.length>0&&a)try{const e=await n({projectName:a,folderIds:h.map(q=>q.id)}).unwrap();y=I(h,e)}catch(e){console.warn("Failed to fetch folder delete info, falling back to local data",e),y=I(h,[])}k.confirmDelete({label:"folders and tasks",message:T.jsxRuntimeExports.jsx(s.DeleteConfirmContent,{entityLabel:p,childrenDetails:y}),accept:m,onError:e=>{e?.errorCodes?.includes("delete-folder-with-children")&&(window.confirm(`Are you really sure you want to delete ${p} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`)?m(!0):console.log("User cancelled forced delete"))},deleteLabel:"Delete forever"})},[d,c,o,a,n])};module.exports=F;
2
2
  //# sourceMappingURL=useDeleteEntities.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeleteEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","topLevelEntities","deleteEntities","force","operations","e","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
1
+ {"version":3,"file":"useDeleteEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","topLevelEntities","deleteEntities","force","operations","e","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
@@ -201,7 +201,12 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
201
201
  import "../../../components/SizeSlider/SizeSlider.es.js";
202
202
  import "react-router-dom";
203
203
  import "../../Slicer/components/Slicer.es.js";
204
- import "../../Slicer/context/SlicerContext.es.js";
204
+ import "../../Views/ViewsMenu/ViewsMenu.es.js";
205
+ import "../../Views/context/ViewsContextInstance.es.js";
206
+ import "../../Views/Views.styled.es.js";
207
+ import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
208
+ import "../../Slicer/context/SlicerContextInstance.es.js";
209
+ import "../../Slicer/components/SlicerDropdownFallback.es.js";
205
210
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
206
211
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
207
212
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
@@ -284,10 +289,6 @@ import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.
284
289
  import "../../Actions/Actions.styled.es.js";
285
290
  import "../../Actions/ActionsDropdown/ActionsDropdown.es.js";
286
291
  import "../../Actions/ActionIcon.es.js";
287
- import "../../Views/ViewsMenu/ViewsMenu.es.js";
288
- import "../../Views/context/ViewsContextInstance.es.js";
289
- import "../../Views/Views.styled.es.js";
290
- import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
291
292
  import "../../ListTable/ListTableRow.es.js";
292
293
  import "../../ListTable/ListTable.styled.es.js";
293
294
  const E = (e, d) => {
@@ -302,7 +303,7 @@ const E = (e, d) => {
302
303
  "hasChildren" in r && r.hasChildren && n.push(`${s}child folders`), "taskNames" in r && r.taskNames && r.taskNames.length > 0 && n.push(`${s}${l(r.taskNames.length, "task")}`);
303
304
  }
304
305
  return n;
305
- }, Zp = ({ onSuccess: e }) => {
306
+ }, tm = ({ onSuccess: e }) => {
306
307
  const { updateEntities: d } = j(), { projectName: a } = F(), { getEntityById: c } = N(), [n] = T();
307
308
  return w(
308
309
  async (r) => {
@@ -372,6 +373,6 @@ const E = (e, d) => {
372
373
  );
373
374
  };
374
375
  export {
375
- Zp as default
376
+ tm as default
376
377
  };
377
378
  //# sourceMappingURL=useDeleteEntities.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","e","topLevelEntities","deleteEntities","force","operations","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
1
+ {"version":3,"file":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","e","topLevelEntities","deleteEntities","force","operations","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");const C=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const re=require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const u=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const be=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const ie=require("../../../hooks/useQueryArgumentChangeLoading.cjs.js"),Be=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");require("uuid");const Ce=require("../../../util/getGroupByDataType.cjs.js");require("../../../util/pubsub.cjs.js");const Fe=require("../utils/loadingUtils.cjs.js"),R=require("./useBuildGroupByTableData.cjs.js"),Ae=({projectName:c,selectedFolders:d,excludeSelectedFolders:k=!1,taskIds:f,taskFilters:o,folderFilters:g,sorting:_,groupBy:q,taskGroups:P=[],taskGroupsCount:se,expanded:I,showHierarchy:T,isFlatFolderView:h=!1,attribFields:te,modules:ne,skipLinks:L,showComments:F=!1})=>{const{getGroupQueries:W,isLoading:Y}=ne,{folders:l,isLoading:ae,isUninitialized:ue,refetch:oe}=be.useProjectFoldersContext(),m=Object.entries(I).filter(([,e])=>e).filter(([e])=>!R.isGroupId(e)).map(([e])=>e),J=k?Array.from(new Set([...m,...d])):m,{data:v=[],isFetching:K,refetch:de,isUninitialized:ce}=C.useGetOverviewTasksByFoldersQuery({projectName:c,parentIds:J,filter:o.filterString,folderFilter:g.filterString,search:o.search,showComments:F},{skip:!J.length||!T&&!h}),X=!o.filterString&&!g.filterString&&!o.search&&!g.search||!l.length||!T&&!h,{data:S,isUninitialized:Z,isLoading:fe,isUninitialized:qe,refetch:le}=C.useGetSearchFoldersQuery({projectName:c,folderSearchRequest:{taskFilter:o.filter?.conditions?.length?o.filter:void 0,folderFilter:g.filter?.conditions?.length?g.filter:void 0,search:o.search}},{skip:X}),G=u.useMemo(()=>{const e=new Set;return l.forEach(t=>{if(!t.parentId){e.add(t.id);return}const r=t.parentId,i=k?d.includes(r):d.includes(t.id);(I[r]===!0||i)&&e.add(t.id)}),e},[l,S,X,I,d,k]),{data:z=[],refetch:ge,isUninitialized:he,isFetching:U}=re.useGetEntityLinksQuery({projectName:c,entityIds:Array.from(G),entityType:"folder"},{skip:L});ie.useQueryArgumentChangeLoading({isLoading:U,dependencies:[G,c]},U);const p=u.useMemo(()=>{const e=new Map,t=r=>({...r,entityId:r.id,entityType:"folder",links:z?.find(s=>s.id===r.id)?.links||[]});if(!Z&&S&&l.length){const r=new Set;for(const n of S)r.add(n);const i=new Map;for(const n of l)i.set(n.id,n);const s=n=>{const a=i.get(n);a&&a.parentId&&(r.add(a.parentId),s(a.parentId))};if(!h){const n=[...r];for(const a of n)s(a)}for(const n of l)r.has(n.id)&&e.set(n.id,t(n))}else for(const r of l)e.set(r.id,t(r));if(d.length){const r=d.map(s=>e.get(s)?.path).filter(Boolean),i=new Map;return e.forEach((s,n)=>{const a=s.path,B=r.includes(a);(r.some(xe=>a.startsWith(xe+"/"))||B&&!k)&&i.set(n,t(s))}),i}return e},[l,S,Z,d,k,z,h]),pe=u.useMemo(()=>K?Fe.determineLoadingTaskFolders({expandedFoldersTasks:v,expandedParentIds:m,foldersMap:p}):{},[K,v,m,p]),[$,ke]=u.useState("");u.useEffect(()=>{$&&ke("")},[_,$]);const y={..._[0]},D=y?.id==="name"&&!T?"path":y?.id==="subType"?"taskType":y?.id,N=d.length?Array.from(new Set([...p.keys(),...k?d:[]])):void 0,{data:A,isLoading:Te,isFetching:we,fetchNextPage:ye,hasNextPage:Ie,isFetchingNextPage:Le,isUninitialized:Me,refetch:Pe}=C.useGetTasksListInfiniteInfiniteQuery({projectName:c,filter:o.filterString,folderFilter:g.filterString,search:o.search,folderIds:f?.length?void 0:N,taskIds:f?.length?f:void 0,sortBy:D?D.replace("_","."):void 0,desc:!!y?.desc,showComments:F},{skip:(T||h)&&!f?.length,initialPageParam:{cursor:"",desc:!!y?.desc}}),O=u.useMemo(()=>A?.pages?A.pages.flatMap(e=>e.tasks||[]):[],[A?.pages]),{pageCounts:w,incrementPageCount:me}=Be.useGroupedPagination({groups:P}),ve=Ce.getGroupByDataType(q,te),j=u.useMemo(()=>Object.entries(I).filter(([,e])=>e).filter(([e])=>R.isGroupId(e)).map(([e])=>e.slice(R.GROUP_BY_ID.length)),[I]),H=u.useMemo(()=>q?(W?.({groups:P,taskGroups:P,filters:o.filter,groupBy:q,groupPageCounts:w})??[]).filter(t=>j.includes(t.value)):[],[q,P,w,ve,o.filter,W,j]),{data:{tasks:V=[]}={},isUninitialized:Se,refetch:Ge}=C.useGetGroupedTasksListQuery({projectName:c,groups:H,sortBy:D?D.replace("_","."):void 0,desc:!!y?.desc,search:o.search,folderFilter:g.filterString,folderIds:N,groupCount:se,showComments:F},{skip:!q||!H.length||Y}),E=u.useMemo(()=>f?.length?O:T||h?v:q?V:O,[f,T,h,q,O,v,V]),M=u.useMemo(()=>new Set(E.map(e=>e.id)),[E]),{data:Q=[],refetch:ze,isUninitialized:Ue,isFetching:x}=re.useGetEntityLinksQuery({projectName:c,entityIds:Array.from(M),entityType:"task"},{skip:M.size===0||L});ie.useQueryArgumentChangeLoading({isLoading:x,dependencies:[M,c]},x);const De=u.useMemo(()=>{const e=new Set;if(U&&!L){const t=new Set(z.map(r=>r.id));for(const r of G)t.has(r)||e.add(r)}if(x&&!L){const t=new Set(Q.map(r=>r.id));for(const r of M)t.has(r)||e.add(r)}return e},[U,x,z,Q,G,M,L]),Ee=e=>{q?e&&e in w&&me(e):Ie&&ye()},{tasksMap:Qe,tasksByFolderMap:b}=u.useMemo(()=>{const e=new Map,t=new Map,r=i=>({...i,entityId:i.id,entityType:"task",links:Q?.find(s=>s.id===i.id)?.links||[]});for(const i of E){const s=i.id,n=i.folderId;if(e.has(s)){const a=e.get(s),B=r(i),ee={...a,...B,groups:[...a.groups||[],...B.groups||[]]};e.set(s,ee)}else e.set(s,r(i));if(t.has(n)){const a=t.get(n);a.includes(s)||a.push(s)}else t.set(n,[s])}return{tasksMap:e,tasksByFolderMap:t}},[E,Q]);return{foldersMap:u.useMemo(()=>{if(!f?.length||!b.size)return p;const e=new Set;for(const i of b.keys())e.add(i);const t=i=>{const s=p.get(i);if(s&&s.parentId){const n=s.parentId;e.has(n)||(e.add(n),t(n))}};for(const i of e)t(i);const r=new Map;for(const[i,s]of p)e.has(i)&&r.set(i,s);return r},[p,b,f]),tasksMap:Qe,tasksByFolderMap:b,isLoadingAll:ae||Te||fe||Y,isLoadingMore:Le,loadingTasks:pe,loadingLinksEntityIds:De,fetchNextPage:Ee,reloadTableData:()=>{ue||oe(),ce||de(),qe||le(),Me||Pe(),Se||Ge(),he||ge(),Ue||ze()}}};exports.useFetchOverviewData=Ae;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");const C=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const re=require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const u=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("uuid");const be=require("../../../util/getGroupByDataType.cjs.js");require("../../../util/pubsub.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const Be=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const ie=require("../../../hooks/useQueryArgumentChangeLoading.cjs.js"),Ce=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");const Fe=require("../utils/loadingUtils.cjs.js"),R=require("./useBuildGroupByTableData.cjs.js"),Ae=({projectName:f,selectedFolders:d,excludeSelectedFolders:k=!1,taskIds:q,taskFilters:o,folderFilters:g,sorting:_,groupBy:l,taskGroups:P=[],taskGroupsCount:se,expanded:I,showHierarchy:T,isFlatFolderView:h=!1,attribFields:te,modules:ne,skipLinks:L,showComments:F=!1})=>{const{getGroupQueries:W,isLoading:Y}=ne,{folders:c,isLoading:ae,isUninitialized:ue,refetch:oe}=Be.useProjectFoldersContext(),m=Object.entries(I).filter(([,e])=>e).filter(([e])=>!R.isGroupId(e)).map(([e])=>e),J=k?Array.from(new Set([...m,...d])):m,{data:v=[],isFetching:K,refetch:de,isUninitialized:ce}=C.useGetOverviewTasksByFoldersQuery({projectName:f,parentIds:J,filter:o.filterString,folderFilter:g.filterString,search:o.search,showComments:F},{skip:!J.length||!T&&!h}),X=!o.filterString&&!g.filterString&&!o.search&&!g.search||!c.length||!T&&!h,{data:S,isUninitialized:Z,isLoading:fe,isUninitialized:qe,refetch:le}=C.useGetSearchFoldersQuery({projectName:f,folderSearchRequest:{taskFilter:o.filter?.conditions?.length?o.filter:void 0,folderFilter:g.filter?.conditions?.length?g.filter:void 0,search:o.search}},{skip:X}),G=u.useMemo(()=>{const e=new Set;return c.forEach(n=>{if(!n.parentId){e.add(n.id);return}const r=n.parentId,i=k?d.includes(r):d.includes(n.id);(I[r]===!0||i)&&e.add(n.id)}),e},[c,S,X,I,d,k]),{data:z=[],refetch:ge,isUninitialized:he,isFetching:U}=re.useGetEntityLinksQuery({projectName:f,entityIds:Array.from(G),entityType:"folder"},{skip:L});ie.useQueryArgumentChangeLoading({isLoading:U,dependencies:[G,f]},U);const p=u.useMemo(()=>{const e=new Map,n=r=>({...r,entityId:r.id,entityType:"folder",links:z?.find(s=>s.id===r.id)?.links||[]});if(!Z&&S&&c.length){const r=new Set;for(const t of S)r.add(t);const i=new Map;for(const t of c)i.set(t.id,t);const s=t=>{const a=i.get(t);a&&a.parentId&&(r.add(a.parentId),s(a.parentId))};if(!h){const t=[...r];for(const a of t)s(a)}for(const t of c)r.has(t.id)&&e.set(t.id,n(t))}else for(const r of c)e.set(r.id,n(r));if(d.length){const r=d.map(s=>c.find(t=>t.id===s)?.path).filter(Boolean),i=new Map;return e.forEach((s,t)=>{const a=s.path,B=r.includes(a);(r.some(xe=>a.startsWith(xe+"/"))||B&&!k)&&i.set(t,n(s))}),i}return e},[c,S,Z,d,k,z,h]),pe=u.useMemo(()=>K?Fe.determineLoadingTaskFolders({expandedFoldersTasks:v,expandedParentIds:m,foldersMap:p}):{},[K,v,m,p]),[$,ke]=u.useState("");u.useEffect(()=>{$&&ke("")},[_,$]);const y={..._[0]},D=y?.id==="name"&&!T?"path":y?.id==="subType"?"taskType":y?.id,N=d.length?Array.from(new Set([...p.keys(),...k?d:[]])):void 0,{data:A,isLoading:Te,isFetching:we,fetchNextPage:ye,hasNextPage:Ie,isFetchingNextPage:Le,isUninitialized:Me,refetch:Pe}=C.useGetTasksListInfiniteInfiniteQuery({projectName:f,filter:o.filterString,folderFilter:g.filterString,search:o.search,folderIds:q?.length?void 0:N,taskIds:q?.length?q:void 0,sortBy:D?D.replace("_","."):void 0,desc:!!y?.desc,showComments:F},{skip:(T||h)&&!q?.length,initialPageParam:{cursor:"",desc:!!y?.desc}}),O=u.useMemo(()=>A?.pages?A.pages.flatMap(e=>e.tasks||[]):[],[A?.pages]),{pageCounts:w,incrementPageCount:me}=Ce.useGroupedPagination({groups:P}),ve=be.getGroupByDataType(l,te),j=u.useMemo(()=>Object.entries(I).filter(([,e])=>e).filter(([e])=>R.isGroupId(e)).map(([e])=>e.slice(R.GROUP_BY_ID.length)),[I]),H=u.useMemo(()=>l?(W?.({groups:P,taskGroups:P,filters:o.filter,groupBy:l,groupPageCounts:w})??[]).filter(n=>j.includes(n.value)):[],[l,P,w,ve,o.filter,W,j]),{data:{tasks:V=[]}={},isUninitialized:Se,refetch:Ge}=C.useGetGroupedTasksListQuery({projectName:f,groups:H,sortBy:D?D.replace("_","."):void 0,desc:!!y?.desc,search:o.search,folderFilter:g.filterString,folderIds:N,groupCount:se,showComments:F},{skip:!l||!H.length||Y}),E=u.useMemo(()=>q?.length?O:T||h?v:l?V:O,[q,T,h,l,O,v,V]),M=u.useMemo(()=>new Set(E.map(e=>e.id)),[E]),{data:Q=[],refetch:ze,isUninitialized:Ue,isFetching:x}=re.useGetEntityLinksQuery({projectName:f,entityIds:Array.from(M),entityType:"task"},{skip:M.size===0||L});ie.useQueryArgumentChangeLoading({isLoading:x,dependencies:[M,f]},x);const De=u.useMemo(()=>{const e=new Set;if(U&&!L){const n=new Set(z.map(r=>r.id));for(const r of G)n.has(r)||e.add(r)}if(x&&!L){const n=new Set(Q.map(r=>r.id));for(const r of M)n.has(r)||e.add(r)}return e},[U,x,z,Q,G,M,L]),Ee=e=>{l?e&&e in w&&me(e):Ie&&ye()},{tasksMap:Qe,tasksByFolderMap:b}=u.useMemo(()=>{const e=new Map,n=new Map,r=i=>({...i,entityId:i.id,entityType:"task",links:Q?.find(s=>s.id===i.id)?.links||[]});for(const i of E){const s=i.id,t=i.folderId;if(e.has(s)){const a=e.get(s),B=r(i),ee={...a,...B,groups:[...a.groups||[],...B.groups||[]]};e.set(s,ee)}else e.set(s,r(i));if(n.has(t)){const a=n.get(t);a.includes(s)||a.push(s)}else n.set(t,[s])}return{tasksMap:e,tasksByFolderMap:n}},[E,Q]);return{foldersMap:u.useMemo(()=>{if(!q?.length||!b.size)return p;const e=new Set;for(const i of b.keys())e.add(i);const n=i=>{const s=p.get(i);if(s&&s.parentId){const t=s.parentId;e.has(t)||(e.add(t),n(t))}};for(const i of e)n(i);const r=new Map;for(const[i,s]of p)e.has(i)&&r.set(i,s);return r},[p,b,q]),tasksMap:Qe,tasksByFolderMap:b,isLoadingAll:ae||Te||fe||Y,isLoadingMore:Le,loadingTasks:pe,loadingLinksEntityIds:De,fetchNextPage:Ee,reloadTableData:()=>{ue||oe(),ce||de(),qe||le(),Me||Pe(),Se||Ge(),he||ge(),Ue||ze()}}};exports.useFetchOverviewData=Ae;
2
2
  //# sourceMappingURL=useFetchOverviewData.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type { FolderListItem, GetGroupedTasksListArgs, EntityGroup, QueryFilter } from '@shared/api'\nimport { useGroupedPagination, useQueryArgumentChangeLoading } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\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, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\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 loadingLinksEntityIds: Set<string> // entity IDs whose links are currently being fetched (not yet cached)\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 excludeSelectedFolders?: boolean\n taskIds?: string[] // specific task IDs to filter by (from entity list slicer)\n taskFilters: QueryFilterParams // filters for tasks\n folderFilters: QueryFilterParams // filters for folders\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n taskGroupsCount?: number // override for number of items per group\n expanded: ExpandedState\n showHierarchy: boolean\n isFlatFolderView?: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n skipLinks?: boolean\n showComments?: boolean // only fetch latestComments when the comments column is visible\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n excludeSelectedFolders = false,\n taskIds, // specific task IDs from entity list slicer\n taskFilters,\n folderFilters,\n sorting,\n groupBy,\n taskGroups = [],\n taskGroupsCount,\n expanded,\n showHierarchy,\n isFlatFolderView = false,\n attribFields,\n modules,\n skipLinks,\n showComments = false,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\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 taskParentIds = excludeSelectedFolders\n ? Array.from(new Set([...expandedParentIds, ...selectedFolders]))\n : expandedParentIds\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n showComments,\n },\n { skip: !taskParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isRootFromSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [\n folders,\n foldersByTaskFilter,\n skipFoldersByTaskFilter,\n expanded,\n selectedFolders,\n excludeSelectedFolders,\n ])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n isFetching: isFetchingFoldersLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n },\n { skip: skipLinks },\n )\n\n const isLoadingFolderLinks = useQueryArgumentChangeLoading(\n {\n isLoading: isFetchingFoldersLinks,\n dependencies: [visibleFolders, projectName],\n },\n isFetchingFoldersLinks,\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 links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\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 // In flat folder view folders are shown as top-level rows — ancestors are\n // not needed and would bring in unrelated subtrees (e.g. showing the root\n // \"assets\" node which then exposes all its children).\n // In hierarchy mode ancestors ARE needed so the tree path is navigable.\n if (!isFlatFolderView) {\n const matchedIds = [...relevantFolderIds]\n for (const folderId of matchedIds) {\n addParents(folderId)\n }\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 const isSelected = selectedPaths.includes(folderPath)\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 (isChild || (isSelected && !excludeSelectedFolders)) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n excludeSelectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\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\n ? Array.from(\n new Set([...foldersMap.keys(), ...(excludeSelectedFolders ? selectedFolders : [])]),\n )\n : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n showComments,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\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 { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\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 const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\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: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n showComments,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n isFetching: isFetchingTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const isLoadingTaskLinks = useQueryArgumentChangeLoading(\n {\n isLoading: isFetchingTasksLinks,\n dependencies: [visibleTasks, projectName],\n },\n isFetchingTasksLinks,\n )\n\n // Compute entity IDs whose links are currently loading (in query but not yet in the cache result)\n const loadingLinksEntityIds = useMemo(() => {\n const ids = new Set<string>()\n\n if (isFetchingFoldersLinks && !skipLinks) {\n const cachedIds = new Set(foldersLinks.map((l) => l.id))\n for (const id of visibleFolders) {\n if (!cachedIds.has(id)) ids.add(id)\n }\n }\n\n if (isFetchingTasksLinks && !skipLinks) {\n const cachedIds = new Set(tasksLinks.map((l) => l.id))\n for (const id of visibleTasks) {\n if (!cachedIds.has(id)) ids.add(id)\n }\n }\n\n return ids\n }, [\n isFetchingFoldersLinks,\n isFetchingTasksLinks,\n foldersLinks,\n tasksLinks,\n visibleFolders,\n visibleTasks,\n skipLinks,\n ])\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\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 links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\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 // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\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 if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n loadingLinksEntityIds,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","showComments","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","taskParentIds","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","isFetchingFoldersLinks","useGetEntityLinksQuery","useQueryArgumentChangeLoading","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","isFetchingTasksLinks","loadingLinksEntityIds","ids","cachedIds","l","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"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"}
1
+ {"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type { FolderListItem, GetGroupedTasksListArgs, EntityGroup, QueryFilter } from '@shared/api'\nimport { useGroupedPagination, useQueryArgumentChangeLoading } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\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, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\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 loadingLinksEntityIds: Set<string> // entity IDs whose links are currently being fetched (not yet cached)\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 excludeSelectedFolders?: boolean\n taskIds?: string[] // specific task IDs to filter by (from entity list slicer)\n taskFilters: QueryFilterParams // filters for tasks\n folderFilters: QueryFilterParams // filters for folders\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n taskGroupsCount?: number // override for number of items per group\n expanded: ExpandedState\n showHierarchy: boolean\n isFlatFolderView?: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n skipLinks?: boolean\n showComments?: boolean // only fetch latestComments when the comments column is visible\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n excludeSelectedFolders = false,\n taskIds, // specific task IDs from entity list slicer\n taskFilters,\n folderFilters,\n sorting,\n groupBy,\n taskGroups = [],\n taskGroupsCount,\n expanded,\n showHierarchy,\n isFlatFolderView = false,\n attribFields,\n modules,\n skipLinks,\n showComments = false,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\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 taskParentIds = excludeSelectedFolders\n ? Array.from(new Set([...expandedParentIds, ...selectedFolders]))\n : expandedParentIds\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n showComments,\n },\n { skip: !taskParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isRootFromSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [\n folders,\n foldersByTaskFilter,\n skipFoldersByTaskFilter,\n expanded,\n selectedFolders,\n excludeSelectedFolders,\n ])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n isFetching: isFetchingFoldersLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleFolders),\n entityType: 'folder',\n },\n { skip: skipLinks },\n )\n\n const isLoadingFolderLinks = useQueryArgumentChangeLoading(\n {\n isLoading: isFetchingFoldersLinks,\n dependencies: [visibleFolders, projectName],\n },\n isFetchingFoldersLinks,\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 links: foldersLinks?.find((link) => link.id === folder.id)?.links || [],\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 // In flat folder view folders are shown as top-level rows — ancestors are\n // not needed and would bring in unrelated subtrees (e.g. showing the root\n // \"assets\" node which then exposes all its children).\n // In hierarchy mode ancestors ARE needed so the tree path is navigable.\n if (!isFlatFolderView) {\n const matchedIds = [...relevantFolderIds]\n for (const folderId of matchedIds) {\n addParents(folderId)\n }\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) => folders.find((folder) => folder.id === 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 const isSelected = selectedPaths.includes(folderPath)\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 (isChild || (isSelected && !excludeSelectedFolders)) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n excludeSelectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\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\n ? Array.from(\n new Set([...foldersMap.keys(), ...(excludeSelectedFolders ? selectedFolders : [])]),\n )\n : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n showComments,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\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 { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\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 const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\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: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n showComments,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n isFetching: isFetchingTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const isLoadingTaskLinks = useQueryArgumentChangeLoading(\n {\n isLoading: isFetchingTasksLinks,\n dependencies: [visibleTasks, projectName],\n },\n isFetchingTasksLinks,\n )\n\n // Compute entity IDs whose links are currently loading (in query but not yet in the cache result)\n const loadingLinksEntityIds = useMemo(() => {\n const ids = new Set<string>()\n\n if (isFetchingFoldersLinks && !skipLinks) {\n const cachedIds = new Set(foldersLinks.map((l) => l.id))\n for (const id of visibleFolders) {\n if (!cachedIds.has(id)) ids.add(id)\n }\n }\n\n if (isFetchingTasksLinks && !skipLinks) {\n const cachedIds = new Set(tasksLinks.map((l) => l.id))\n for (const id of visibleTasks) {\n if (!cachedIds.has(id)) ids.add(id)\n }\n }\n\n return ids\n }, [\n isFetchingFoldersLinks,\n isFetchingTasksLinks,\n foldersLinks,\n tasksLinks,\n visibleFolders,\n visibleTasks,\n skipLinks,\n ])\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\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 links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\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 // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\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 if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n loadingLinksEntityIds,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","showComments","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","taskParentIds","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","isFetchingFoldersLinks","useGetEntityLinksQuery","useQueryArgumentChangeLoading","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","isFetchingTasksLinks","loadingLinksEntityIds","ids","cachedIds","l","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"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"}