@ynput/ayon-frontend-shared 0.3.44 → 0.3.45

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 (238) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +4 -4
  3. package/dist/ProjectTreeTable.cjs.js +1 -1
  4. package/dist/ProjectTreeTable.es.js +4 -4
  5. package/dist/_virtual/index.cjs15.js +1 -1
  6. package/dist/_virtual/index.cjs19.js +1 -1
  7. package/dist/_virtual/index.cjs22.js +1 -1
  8. package/dist/_virtual/index.cjs23.js +1 -1
  9. package/dist/_virtual/index.cjs24.js +1 -1
  10. package/dist/_virtual/index.cjs4.js +1 -1
  11. package/dist/_virtual/index.cjs5.js +1 -1
  12. package/dist/_virtual/index.cjs8.js +1 -1
  13. package/dist/_virtual/index.cjs9.js +1 -1
  14. package/dist/_virtual/index.es15.js +2 -2
  15. package/dist/_virtual/index.es16.js +2 -2
  16. package/dist/_virtual/index.es17.js +2 -2
  17. package/dist/_virtual/index.es18.js +2 -2
  18. package/dist/_virtual/index.es19.js +2 -2
  19. package/dist/_virtual/index.es22.js +3 -3
  20. package/dist/_virtual/index.es23.js +5 -5
  21. package/dist/_virtual/index.es24.js +5 -5
  22. package/dist/_virtual/index.es4.js +2 -5
  23. package/dist/_virtual/index.es4.js.map +1 -1
  24. package/dist/_virtual/index.es5.js +5 -2
  25. package/dist/_virtual/index.es5.js.map +1 -1
  26. package/dist/_virtual/index.es8.js +5 -2
  27. package/dist/_virtual/index.es8.js.map +1 -1
  28. package/dist/_virtual/index.es9.js +2 -5
  29. package/dist/_virtual/index.es9.js.map +1 -1
  30. package/dist/index.cjs.js +1 -1
  31. package/dist/index.es.js +4 -4
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  35. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  36. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  37. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  38. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  40. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  41. package/dist/node_modules/remove-accents/index.es.js +1 -1
  42. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  43. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  44. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  45. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  52. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  54. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  55. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  56. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  57. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  58. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  59. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  60. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  61. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -4
  62. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  63. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -4
  64. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  65. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +4 -4
  66. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
  67. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
  68. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +20 -20
  69. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
  70. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  71. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -4
  72. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  73. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +4 -4
  74. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  75. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +4 -4
  76. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  77. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -5
  78. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  79. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -4
  80. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  81. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -4
  82. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  83. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -4
  84. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  85. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -4
  86. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  87. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  88. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +84 -69
  89. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  90. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  91. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +4 -4
  92. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  93. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +4 -4
  94. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  95. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -4
  96. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  97. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -4
  98. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  99. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -4
  100. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  101. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -4
  102. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  103. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -4
  104. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  105. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -4
  106. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  107. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -4
  108. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  109. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -4
  110. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  111. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -4
  112. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  113. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +4 -4
  114. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  115. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +4 -4
  116. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  117. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +4 -4
  118. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  119. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -4
  120. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  121. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -4
  122. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  123. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  124. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +15 -15
  125. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  126. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  127. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -4
  128. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  129. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -4
  130. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  131. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -4
  132. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  133. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -4
  134. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  135. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -4
  136. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  137. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -4
  138. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  139. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +4 -4
  140. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  141. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -4
  142. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  143. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +4 -4
  144. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  145. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -4
  146. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  147. package/dist/shared/src/containers/ListTable/ListTable.es.js +4 -4
  148. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  149. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +4 -4
  150. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  151. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +4 -4
  152. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  153. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -4
  154. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  155. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -4
  156. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  157. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +4 -4
  158. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  159. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -4
  160. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  161. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -4
  162. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -4
  164. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  165. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +4 -4
  166. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  167. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -4
  168. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  169. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +4 -4
  170. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -4
  172. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  173. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -4
  174. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  175. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -4
  176. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  177. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -4
  178. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +4 -4
  180. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  181. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  182. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +31 -23
  183. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  184. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  185. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -4
  186. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -4
  188. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  189. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -4
  190. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  191. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -4
  192. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  193. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -5
  194. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -4
  196. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  197. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -4
  198. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +4 -4
  200. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js +1 -1
  201. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js +23 -13
  203. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  204. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +4 -4
  206. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  207. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -4
  208. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +4 -4
  210. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  211. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +4 -4
  212. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -4
  214. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  215. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -4
  216. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  217. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -4
  218. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  219. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  220. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +169 -169
  221. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  222. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js +1 -1
  223. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js.map +1 -1
  224. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js +13 -13
  225. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js.map +1 -1
  226. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  227. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -4
  228. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  229. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +55 -54
  231. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  232. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  233. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -3
  234. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  235. package/dist/shared/src/context/WebsocketContext.es.js +4 -4
  236. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +8 -1
  237. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +6 -1
  238. package/package.json +2 -2
@@ -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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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 B=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const oe=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 n=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");const Ke=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 Xe=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 Ze=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const $e=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");const Ve=require("../utils/loadingUtils.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("clsx");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("../../../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("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");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("../../../components/InfoMessage/InfoMessage.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");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/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.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");require("../../../components/LinksManager/LinksManager.styled.cjs.js");const Y=require("./useBuildGroupByTableData.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableContextInstance.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.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("../context/ProjectTableQueriesContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContextInstance.cjs.js");require("../context/CellEditingContext.cjs.js");const He=require("../utils/getGroupQueries.cjs.js");require("../components/TableFooterRow.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");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("../../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");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/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("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.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/VersionUploadContextInstance.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");const er=require("../utils/getFolderIdsToQueryFromExpanded.cjs.js"),rr=300,ir=({projectName:I,selectedFolders:o,excludeSelectedFolders:l=!1,taskIds:g,taskFilters:a,folderFilters:h,sorting:j,groupBy:p,taskGroups:x=[],taskGroupsCount:ae,expanded:T,showHierarchy:c,isFlatFolderView:d=!1,attribFields:de,modules:ce,skipLinks:L,showComments:O=!1,onCollapseAll:C,visibleEntityIds:_=[]})=>{const{isLoading:w}=ce,{folders:f,isLoading:fe,isUninitialized:le,refetch:ge,getFolderById:J}=Ze.useProjectFoldersContext(),E=Object.entries(T).filter(([,e])=>e).filter(([e])=>!Y.isGroupId(e)).map(([e])=>e),F=n.useMemo(()=>er.getFolderIdsToQueryFromExpanded(T,E,o,l,J),[T,E,o,l,J]),[K,pe]=n.useState(_),R=n.useMemo(()=>Ke.debounce(e=>pe(e),rr),[]);n.useEffect(()=>(R(_),()=>R.cancel()),[_,R]);const X=n.useMemo(()=>{if(!c||d)return F;const e=new Set(K);return F.filter(t=>e.has(t))},[F,c,d,K]),{data:y=[],isFetching:Z,error:A,refetch:he,isUninitialized:Te}=B.useGetOverviewTasksByFoldersQuery({projectName:I,parentIds:X,filter:a.filterString,folderFilter:h.filterString,search:a.search,showComments:O},{skip:!X.length||!c&&!d}),$=!a.filterString&&!h.filterString&&!a.search&&!h.search||!f.length||!c&&!d,{data:v,isUninitialized:V,isLoading:ke,isUninitialized:Ie,error:ye,refetch:Me}=B.useGetSearchFoldersQuery({projectName:I,folderSearchRequest:{taskFilter:a.filter?.conditions?.length?a.filter:void 0,folderFilter:h.filter?.conditions?.length?h.filter:void 0,search:a.search}},{skip:$}),W=n.useMemo(()=>{const e=new Set;return f.forEach(t=>{if(!t.parentId){e.add(t.id);return}const r=t.parentId,i=l?o.includes(r):o.includes(t.id);(T[r]===!0||i)&&e.add(t.id)}),e},[f,v,$,T,o,l]),{data:P=[],refetch:Le,isUninitialized:me,isFetching:H}=oe.useGetEntityLinksQuery({projectName:I,entityIds:Array.from(W),entityType:"folder"},{skip:L}),k=n.useMemo(()=>{const e=new Map,t=r=>({...r,entityId:r.id,entityType:"folder",links:P?.find(u=>u.id===r.id)?.links||[]});if(!V&&v&&f.length){const r=new Set;for(const s of v)r.add(s);const i=new Map;for(const s of f)i.set(s.id,s);const u=s=>{const q=i.get(s);q&&q.parentId&&(r.add(q.parentId),u(q.parentId))};if(!d){const s=[...r];for(const q of s)u(q)}for(const s of f)r.has(s.id)&&e.set(s.id,t(s))}else for(const r of f)e.set(r.id,t(r));if(o.length){const r=o.map(u=>f.find(s=>s.id===u)?.path).filter(Boolean),i=new Map;return e.forEach((u,s)=>{const q=u.path,Q=r.includes(q);(r.some(Je=>q.startsWith(Je+"/"))||Q&&(!l||d))&&i.set(s,t(u))}),i}return e},[f,v,V,o,l,P,d]),Ee=n.useMemo(()=>Z?Ve.determineLoadingTaskFolders({expandedFoldersTasks:y,expandedParentIds:E,foldersMap:k}):{},[Z,y,E,k]),[ee,ve]=n.useState("");n.useEffect(()=>{ee&&ve("")},[j,ee]);const M={...j[0]},S=M?.id==="name"&&!c?"path":M?.id==="subType"?"taskType":M?.id,Pe=o.length?Array.from(new Set([...k.keys(),...l?o:[]])):void 0,m=c&&l&&o.length?o:void 0,{data:N,isLoading:Se,error:Ge,fetchNextPage:be,hasNextPage:Ue,isFetchingNextPage:ze,isUninitialized:De,refetch:Qe}=B.useGetTasksListInfiniteInfiniteQuery({projectName:I,filter:a.filterString,folderFilter:h.filterString,search:a.search,folderIds:g?.length?void 0:m??(o?.length?o:void 0),taskIds:g?.length?g:void 0,sortBy:S?S.replace("_","."):void 0,desc:!!M?.desc,showComments:O,includeFolderChildren:!m},{skip:(c&&!m||d)&&!g?.length,initialPageParam:{cursor:"",desc:!!M?.desc}}),G=n.useMemo(()=>N?.pages?N.pages.flatMap(e=>e.tasks||[]):[],[N?.pages]),{pageCounts:re,incrementPageCount:Be}=$e.useGroupedPagination({groups:x}),ie=Xe.getGroupByDataType(p,de),ue=n.useMemo(()=>Object.entries(T).filter(([,e])=>e).filter(([e])=>Y.isGroupId(e)).map(([e])=>e.slice(Y.GROUP_BY_ID.length)),[T]),te=n.useMemo(()=>p?He.getGroupQueries({groups:x,filters:a.filter,groupBy:p,groupPageCounts:re,dataType:ie}).filter(t=>ue.includes(t.value)):[],[p,x,re,ie,a.filter,ue]),{data:{tasks:se=[]}={},isUninitialized:xe,error:Oe,refetch:Ce}=B.useGetGroupedTasksListQuery({projectName:I,groups:te,sortBy:S?S.replace("_","."):void 0,desc:!!M?.desc,search:a.search,folderFilter:h.filterString,folderIds:Pe,groupCount:ae,showComments:O},{skip:!p||!te.length||w}),b=n.useMemo(()=>g?.length?G:d?y:c?m?[...y,...G]:y:p?se:G,[g,c,m,d,p,G,y,se]),U=n.useMemo(()=>new Set(b.map(e=>e.id)),[b]),{data:z=[],refetch:_e,isUninitialized:Fe,isFetching:ne}=oe.useGetEntityLinksQuery({projectName:I,entityIds:Array.from(U),entityType:"task"},{skip:U.size===0||L}),Re=n.useMemo(()=>{const e=new Set;if(H&&!L){const t=new Set(P.map(r=>r.id));for(const r of W)t.has(r)||e.add(r)}if(ne&&!L){const t=new Set(z.map(r=>r.id));for(const r of U)t.has(r)||e.add(r)}return e},[H,ne,P,z,W,U,L]),Ae=e=>{p?e&&Be(e):Ue&&be()},{tasksMap:We,tasksByFolderMap:D}=n.useMemo(()=>{const e=new Map,t=new Map,r=i=>({...i,entityId:i.id,entityType:"task",links:z?.find(u=>u.id===i.id)?.links||[]});for(const i of b){const u=i.id,s=i.folderId;if(e.has(u)){const q=e.get(u),Q=r(i),qe={...q,...Q,groups:[...q.groups||[],...Q.groups||[]]};e.set(u,qe)}else e.set(u,r(i));if(t.has(s)){const q=t.get(s);q.includes(u)||q.push(u)}else t.set(s,[u])}return{tasksMap:e,tasksByFolderMap:t}},[b,z]),Ne=n.useMemo(()=>{if(!g?.length||!D.size)return k;const e=new Set;for(const i of D.keys())e.add(i);const t=i=>{const u=k.get(i);if(u&&u.parentId){const s=u.parentId;e.has(s)||(e.add(s),t(s))}};for(const i of e)t(i);const r=new Map;for(const[i,u]of k)e.has(i)&&r.set(i,u);return r},[k,D,g]),Ye=()=>{le||ge(),Te||he(),Ie||Me(),De||Qe(),xe||Ce(),me||Le(),Fe||_e()},je=Ge||ye||Oe,we=n.useMemo(()=>{if(A&&C)return{label:"Collapse all folders",icon:"restart_alt",callback:C}},[A,C]);return{foldersMap:Ne,tasksMap:We,tasksByFolderMap:D,error:je,softError:A?.error,softErrorAction:we,isLoadingAll:fe||Se||ke||w,isLoadingMore:ze,loadingTasks:Ee,loadingLinksEntityIds:Re,fetchNextPage:Ae,reloadTableData:Ye}};exports.useFetchOverviewData=ir;
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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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 B=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const oe=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 n=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");const Xe=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 Ze=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 $e=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const we=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");const Ve=require("../utils/loadingUtils.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("clsx");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("../../../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("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");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("../../../components/InfoMessage/InfoMessage.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");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/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.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");require("../../../components/LinksManager/LinksManager.styled.cjs.js");const Y=require("./useBuildGroupByTableData.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableContextInstance.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.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("../context/ProjectTableQueriesContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectDataContextInstance.cjs.js");require("../context/CellEditingContext.cjs.js");const He=require("../utils/getGroupQueries.cjs.js");require("../components/TableFooterRow.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.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");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/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("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.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/VersionUploadContextInstance.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");const er=require("../utils/getFolderIdsToQueryFromExpanded.cjs.js"),rr=300,ir=({projectName:I,selectedFolders:o,excludeSelectedFolders:l=!1,taskIds:g,taskFilters:a,folderFilters:h,sorting:j,groupBy:p,taskGroups:x=[],taskGroupsCount:ae,expanded:T,showHierarchy:d,isFlatFolderView:c=!1,attribFields:de,modules:ce,skipLinks:L,showComments:O=!1,onCollapseAll:C,visibleEntityIds:_=[]})=>{const{isLoading:J}=ce,{folders:f,isLoading:fe,isUninitialized:le,refetch:ge,getFolderById:K}=$e.useProjectFoldersContext(),E=Object.entries(T).filter(([,e])=>e).filter(([e])=>!Y.isGroupId(e)).map(([e])=>e),F=n.useMemo(()=>er.getFolderIdsToQueryFromExpanded({expanded:T,expandedParentIds:E,selectedFolders:o,excludeSelectedFolders:l,getFolderById:K,showHierarchy:d}),[T,E,o,l,K,d]),[X,pe]=n.useState(_),R=n.useMemo(()=>Xe.debounce(e=>pe(e),rr),[]);n.useEffect(()=>(R(_),()=>R.cancel()),[_,R]);const Z=n.useMemo(()=>{if(!d||c)return F;const e=new Set(X);return F.filter(t=>e.has(t))},[F,d,c,X]),{data:y=[],isFetching:$,error:A,refetch:he,isUninitialized:Te}=B.useGetOverviewTasksByFoldersQuery({projectName:I,parentIds:Z,filter:a.filterString,folderFilter:h.filterString,search:a.search,showComments:O},{skip:!Z.length||!d&&!c}),w=!a.filterString&&!h.filterString&&!a.search&&!h.search||!f.length||!d&&!c,{data:v,isUninitialized:V,isLoading:ke,isUninitialized:Ie,error:ye,refetch:Me}=B.useGetSearchFoldersQuery({projectName:I,folderSearchRequest:{taskFilter:a.filter?.conditions?.length?a.filter:void 0,folderFilter:h.filter?.conditions?.length?h.filter:void 0,search:a.search}},{skip:w}),W=n.useMemo(()=>{const e=new Set;return f.forEach(t=>{if(!t.parentId){e.add(t.id);return}const r=t.parentId,i=l?o.includes(r):o.includes(t.id);(T[r]===!0||i)&&e.add(t.id)}),e},[f,v,w,T,o,l]),{data:P=[],refetch:Le,isUninitialized:me,isFetching:H}=oe.useGetEntityLinksQuery({projectName:I,entityIds:Array.from(W),entityType:"folder"},{skip:L}),k=n.useMemo(()=>{const e=new Map,t=r=>({...r,entityId:r.id,entityType:"folder",links:P?.find(u=>u.id===r.id)?.links||[]});if(!V&&v&&f.length){const r=new Set;for(const s of v)r.add(s);const i=new Map;for(const s of f)i.set(s.id,s);const u=s=>{const q=i.get(s);q&&q.parentId&&(r.add(q.parentId),u(q.parentId))};if(!c){const s=[...r];for(const q of s)u(q)}for(const s of f)r.has(s.id)&&e.set(s.id,t(s))}else for(const r of f)e.set(r.id,t(r));if(o.length){const r=o.map(u=>f.find(s=>s.id===u)?.path).filter(Boolean),i=new Map;return e.forEach((u,s)=>{const q=u.path,Q=r.includes(q);(r.some(Ke=>q.startsWith(Ke+"/"))||Q&&(!l||c))&&i.set(s,t(u))}),i}return e},[f,v,V,o,l,P,c]),Ee=n.useMemo(()=>$?Ve.determineLoadingTaskFolders({expandedFoldersTasks:y,expandedParentIds:E,foldersMap:k}):{},[$,y,E,k]),[ee,ve]=n.useState("");n.useEffect(()=>{ee&&ve("")},[j,ee]);const M={...j[0]},S=M?.id==="name"&&!d?"path":M?.id==="subType"?"taskType":M?.id,Pe=o.length?Array.from(new Set([...k.keys(),...l?o:[]])):void 0,m=d&&l&&o.length?o:void 0,{data:N,isLoading:Se,error:Ge,fetchNextPage:be,hasNextPage:Ue,isFetchingNextPage:ze,isUninitialized:De,refetch:Qe}=B.useGetTasksListInfiniteInfiniteQuery({projectName:I,filter:a.filterString,folderFilter:h.filterString,search:a.search,folderIds:g?.length?void 0:m??(o?.length?o:void 0),taskIds:g?.length?g:void 0,sortBy:S?S.replace("_","."):void 0,desc:!!M?.desc,showComments:O,includeFolderChildren:!m},{skip:(d&&!m||c)&&!g?.length,initialPageParam:{cursor:"",desc:!!M?.desc}}),G=n.useMemo(()=>N?.pages?N.pages.flatMap(e=>e.tasks||[]):[],[N?.pages]),{pageCounts:re,incrementPageCount:Be}=we.useGroupedPagination({groups:x}),ie=Ze.getGroupByDataType(p,de),ue=n.useMemo(()=>Object.entries(T).filter(([,e])=>e).filter(([e])=>Y.isGroupId(e)).map(([e])=>e.slice(Y.GROUP_BY_ID.length)),[T]),te=n.useMemo(()=>p?He.getGroupQueries({groups:x,filters:a.filter,groupBy:p,groupPageCounts:re,dataType:ie}).filter(t=>ue.includes(t.value)):[],[p,x,re,ie,a.filter,ue]),{data:{tasks:se=[]}={},isUninitialized:xe,error:Oe,refetch:Ce}=B.useGetGroupedTasksListQuery({projectName:I,groups:te,sortBy:S?S.replace("_","."):void 0,desc:!!M?.desc,search:a.search,folderFilter:h.filterString,folderIds:Pe,groupCount:ae,showComments:O},{skip:!p||!te.length||J}),b=n.useMemo(()=>g?.length?G:c?y:d?m?[...y,...G]:y:p?se:G,[g,d,m,c,p,G,y,se]),U=n.useMemo(()=>new Set(b.map(e=>e.id)),[b]),{data:z=[],refetch:_e,isUninitialized:Fe,isFetching:ne}=oe.useGetEntityLinksQuery({projectName:I,entityIds:Array.from(U),entityType:"task"},{skip:U.size===0||L}),Re=n.useMemo(()=>{const e=new Set;if(H&&!L){const t=new Set(P.map(r=>r.id));for(const r of W)t.has(r)||e.add(r)}if(ne&&!L){const t=new Set(z.map(r=>r.id));for(const r of U)t.has(r)||e.add(r)}return e},[H,ne,P,z,W,U,L]),Ae=e=>{p?e&&Be(e):Ue&&be()},{tasksMap:We,tasksByFolderMap:D}=n.useMemo(()=>{const e=new Map,t=new Map,r=i=>({...i,entityId:i.id,entityType:"task",links:z?.find(u=>u.id===i.id)?.links||[]});for(const i of b){const u=i.id,s=i.folderId;if(e.has(u)){const q=e.get(u),Q=r(i),qe={...q,...Q,groups:[...q.groups||[],...Q.groups||[]]};e.set(u,qe)}else e.set(u,r(i));if(t.has(s)){const q=t.get(s);q.includes(u)||q.push(u)}else t.set(s,[u])}return{tasksMap:e,tasksByFolderMap:t}},[b,z]),Ne=n.useMemo(()=>{if(!g?.length||!D.size)return k;const e=new Set;for(const i of D.keys())e.add(i);const t=i=>{const u=k.get(i);if(u&&u.parentId){const s=u.parentId;e.has(s)||(e.add(s),t(s))}};for(const i of e)t(i);const r=new Map;for(const[i,u]of k)e.has(i)&&r.set(i,u);return r},[k,D,g]),Ye=()=>{le||ge(),Te||he(),Ie||Me(),De||Qe(),xe||Ce(),me||Le(),Fe||_e()},je=Ge||ye||Oe,Je=n.useMemo(()=>{if(A&&C)return{label:"Collapse all folders",icon:"restart_alt",callback:C}},[A,C]);return{foldersMap:Ne,tasksMap:We,tasksByFolderMap:D,error:je,softError:A?.error,softErrorAction:Je,isLoadingAll:fe||Se||ke||J,isLoadingMore:ze,loadingTasks:Ee,loadingLinksEntityIds:Re,fetchNextPage:Ae,reloadTableData:Ye}};exports.useFetchOverviewData=ir;
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, SoftErrorAction } from '../types'\nimport { getFolderIdsToQueryFromExpanded, TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { getGroupQueries } from '../utils/getGroupQueries'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\nimport { debounce } from 'lodash'\n\n// how long a folder must stay rendered in the viewport before its tasks are fetched.\n// prevents firing a request per folder while the user is quickly scrolling past them.\nconst VISIBLE_FOLDERS_DEBOUNCE_MS = 300\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 error?: unknown // first task/folder load failure (e.g. corrupt filter), if any\n softError?: string // error for fetching tasks for expanded folders, if any\n softErrorAction?: SoftErrorAction\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 onCollapseAll?: () => void\n // entity ids currently rendered in the table's viewport (hierarchy mode only) - used to\n // scope task fetching to folders actually on screen, rather than every expanded folder\n visibleEntityIds?: string[]\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 onCollapseAll,\n visibleEntityIds = [],\n}: Params): useFetchOverviewDataData => {\n const { isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n getFolderById,\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 expandedFolderIdsToQuery = useMemo(\n () =>\n getFolderIdsToQueryFromExpanded(\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n ),\n [expanded, expandedParentIds, selectedFolders, excludeSelectedFolders, getFolderById],\n )\n\n // Debounce the rendered viewport rows so fast scrolling doesn't fire a new\n // request for every folder scrolled past - only once it's settled on screen.\n const [debouncedVisibleEntityIds, setDebouncedVisibleEntityIds] =\n useState<string[]>(visibleEntityIds)\n\n const debouncedSetVisible = useMemo(\n () =>\n debounce((ids: string[]) => setDebouncedVisibleEntityIds(ids), VISIBLE_FOLDERS_DEBOUNCE_MS),\n [],\n )\n\n useEffect(() => {\n debouncedSetVisible(visibleEntityIds)\n return () => debouncedSetVisible.cancel()\n }, [visibleEntityIds, debouncedSetVisible])\n\n // In hierarchy mode, only fetch tasks for expanded folders that are currently\n // rendered in the viewport, instead of every expanded folder in the tree.\n // Not applied to flat folder view: rows there are top-level folders, not\n // nested paths, so there's no \"off screen ancestor\" case to guard against,\n // and filtering there would delay every row's expand-to-reveal-tasks interaction.\n const taskFolderIdsToQuery = useMemo(() => {\n if (!showHierarchy || isFlatFolderView) {\n return expandedFolderIdsToQuery\n }\n const visibleIdsSet = new Set(debouncedVisibleEntityIds)\n return expandedFolderIdsToQuery.filter((id) => visibleIdsSet.has(id))\n }, [expandedFolderIdsToQuery, showHierarchy, isFlatFolderView, debouncedVisibleEntityIds])\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n error: expandedFoldersTasksError,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskFolderIdsToQuery,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n showComments,\n },\n { skip: !taskFolderIdsToQuery.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 error: searchFoldersError,\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 // 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 || isFlatFolderView))) {\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 // In hierarchy mode with slicer-selected folders, use GetTasksList with folderIds to fetch\n // tasks directly under those folders in a single paginated request, rather than firing one\n // request per folder via getOverviewTasksByFolders.\n const hierarchySlicerFolderIds =\n showHierarchy && excludeSelectedFolders && selectedFolders.length ? selectedFolders : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n error: tasksListError,\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\n ? undefined\n : hierarchySlicerFolderIds ?? (selectedFolders?.length ? selectedFolders : undefined),\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n showComments,\n includeFolderChildren: !hierarchySlicerFolderIds, // Disable recursive task fetch for hierarchy+slicer mode\n },\n {\n // Skip flat task list for flat folder view (tasks loaded on folder expand).\n // In hierarchy+slicer mode, run it to fetch tasks under selected-but-hidden folders.\n // Always run it when entity list provides specific task IDs.\n skip: ((showHierarchy && !hierarchySlicerFolderIds) || 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 const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries = getGroupQueries({\n groups: taskGroups,\n // @ts-expect-error: filter is the same\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n dataType: groupByDataType,\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 expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n error: groupedTasksError,\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 (isFlatFolderView) return expandedFoldersTasks\n if (showHierarchy) {\n // In hierarchy+slicer mode, merge per-folder expanded tasks with tasks fetched via\n // GetTasksList for the slicer-selected (but not displayed) folders.\n if (hierarchySlicerFolderIds) return [...expandedFoldersTasks, ...tasksList]\n return expandedFoldersTasks\n }\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n hierarchySlicerFolderIds,\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 // 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 // Ungrouped is never seeded into pageCounts, so don't gate on key presence\n if (group) {\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 const error = tasksListError || searchFoldersError || groupedTasksError\n\n const softErrorAction = useMemo<SoftErrorAction | undefined>(() => {\n if (expandedFoldersTasksError && onCollapseAll) {\n return {\n label: 'Collapse all folders',\n icon: 'restart_alt',\n callback: onCollapseAll,\n }\n }\n return undefined\n }, [expandedFoldersTasksError, onCollapseAll])\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n error,\n // @ts-expect-error: error does exist on it\n softError: expandedFoldersTasksError?.error, // this is separate as we should still show the folders table so the user can make changes\n softErrorAction,\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":["VISIBLE_FOLDERS_DEBOUNCE_MS","useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","showComments","onCollapseAll","visibleEntityIds","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","getFolderById","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","expandedFolderIdsToQuery","useMemo","getFolderIdsToQueryFromExpanded","debouncedVisibleEntityIds","setDebouncedVisibleEntityIds","useState","debouncedSetVisible","debounce","ids","useEffect","taskFolderIdsToQuery","visibleIdsSet","expandedFoldersTasks","isFetchingExpandedFoldersTasks","expandedFoldersTasksError","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","searchFoldersError","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","isFetchingFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","singleSort","sortId","tasksFolderIdsParams","hierarchySlicerFolderIds","tasksListInfiniteData","isLoadingTasksList","tasksListError","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","getGroupQueries","group","groupTasks","isUninitializedGroupedTasks","groupedTasksError","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","isFetchingTasksLinks","loadingLinksEntityIds","cachedIds","l","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filteredFoldersMap","filtered","reloadTableData","error","softErrorAction"],"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, SoftErrorAction } from '../types'\nimport { getFolderIdsToQueryFromExpanded, TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { getGroupQueries } from '../utils/getGroupQueries'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\nimport { debounce } from 'lodash'\n\n// how long a folder must stay rendered in the viewport before its tasks are fetched.\n// prevents firing a request per folder while the user is quickly scrolling past them.\nconst VISIBLE_FOLDERS_DEBOUNCE_MS = 300\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 error?: unknown // first task/folder load failure (e.g. corrupt filter), if any\n softError?: string // error for fetching tasks for expanded folders, if any\n softErrorAction?: SoftErrorAction\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 onCollapseAll?: () => void\n // entity ids currently rendered in the table's viewport (hierarchy mode only) - used to\n // scope task fetching to folders actually on screen, rather than every expanded folder\n visibleEntityIds?: string[]\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 onCollapseAll,\n visibleEntityIds = [],\n}: Params): useFetchOverviewDataData => {\n const { isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n getFolderById,\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 expandedFolderIdsToQuery = useMemo(\n () =>\n getFolderIdsToQueryFromExpanded({\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n }),\n [\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n ],\n )\n\n // Debounce the rendered viewport rows so fast scrolling doesn't fire a new\n // request for every folder scrolled past - only once it's settled on screen.\n const [debouncedVisibleEntityIds, setDebouncedVisibleEntityIds] =\n useState<string[]>(visibleEntityIds)\n\n const debouncedSetVisible = useMemo(\n () =>\n debounce((ids: string[]) => setDebouncedVisibleEntityIds(ids), VISIBLE_FOLDERS_DEBOUNCE_MS),\n [],\n )\n\n useEffect(() => {\n debouncedSetVisible(visibleEntityIds)\n return () => debouncedSetVisible.cancel()\n }, [visibleEntityIds, debouncedSetVisible])\n\n // In hierarchy mode, only fetch tasks for expanded folders that are currently\n // rendered in the viewport, instead of every expanded folder in the tree.\n // Not applied to flat folder view: rows there are top-level folders, not\n // nested paths, so there's no \"off screen ancestor\" case to guard against,\n // and filtering there would delay every row's expand-to-reveal-tasks interaction.\n const visibleFolderIdsToQuery = useMemo(() => {\n if (!showHierarchy || isFlatFolderView) {\n return expandedFolderIdsToQuery\n }\n const visibleIdsSet = new Set(debouncedVisibleEntityIds)\n return expandedFolderIdsToQuery.filter((id) => visibleIdsSet.has(id))\n }, [expandedFolderIdsToQuery, showHierarchy, isFlatFolderView, debouncedVisibleEntityIds])\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n error: expandedFoldersTasksError,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: visibleFolderIdsToQuery,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n showComments,\n },\n { skip: !visibleFolderIdsToQuery.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 error: searchFoldersError,\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 // 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 || isFlatFolderView))) {\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 // In hierarchy mode with slicer-selected folders, use GetTasksList with folderIds to fetch\n // tasks directly under those folders in a single paginated request, rather than firing one\n // request per folder via getOverviewTasksByFolders.\n const hierarchySlicerFolderIds =\n showHierarchy && excludeSelectedFolders && selectedFolders.length ? selectedFolders : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n error: tasksListError,\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\n ? undefined\n : hierarchySlicerFolderIds ?? (selectedFolders?.length ? selectedFolders : undefined),\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n showComments,\n includeFolderChildren: !hierarchySlicerFolderIds, // Disable recursive task fetch for hierarchy+slicer mode\n },\n {\n // Skip flat task list for flat folder view (tasks loaded on folder expand).\n // In hierarchy+slicer mode, run it to fetch tasks under selected-but-hidden folders.\n // Always run it when entity list provides specific task IDs.\n skip: ((showHierarchy && !hierarchySlicerFolderIds) || 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 const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries = getGroupQueries({\n groups: taskGroups,\n // @ts-expect-error: filter is the same\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n dataType: groupByDataType,\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 expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n error: groupedTasksError,\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 (isFlatFolderView) return expandedFoldersTasks\n if (showHierarchy) {\n // In hierarchy+slicer mode, merge per-folder expanded tasks with tasks fetched via\n // GetTasksList for the slicer-selected (but not displayed) folders.\n if (hierarchySlicerFolderIds) return [...expandedFoldersTasks, ...tasksList]\n return expandedFoldersTasks\n }\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n hierarchySlicerFolderIds,\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 // 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 // Ungrouped is never seeded into pageCounts, so don't gate on key presence\n if (group) {\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 const error = tasksListError || searchFoldersError || groupedTasksError\n\n const softErrorAction = useMemo<SoftErrorAction | undefined>(() => {\n if (expandedFoldersTasksError && onCollapseAll) {\n return {\n label: 'Collapse all folders',\n icon: 'restart_alt',\n callback: onCollapseAll,\n }\n }\n return undefined\n }, [expandedFoldersTasksError, onCollapseAll])\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n error,\n // @ts-expect-error: error does exist on it\n softError: expandedFoldersTasksError?.error, // this is separate as we should still show the folders table so the user can make changes\n softErrorAction,\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":["VISIBLE_FOLDERS_DEBOUNCE_MS","useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","showComments","onCollapseAll","visibleEntityIds","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","getFolderById","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","expandedFolderIdsToQuery","useMemo","getFolderIdsToQueryFromExpanded","debouncedVisibleEntityIds","setDebouncedVisibleEntityIds","useState","debouncedSetVisible","debounce","ids","useEffect","visibleFolderIdsToQuery","visibleIdsSet","expandedFoldersTasks","isFetchingExpandedFoldersTasks","expandedFoldersTasksError","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","searchFoldersError","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","isFetchingFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","singleSort","sortId","tasksFolderIdsParams","hierarchySlicerFolderIds","tasksListInfiniteData","isLoadingTasksList","tasksListError","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","getGroupQueries","group","groupTasks","isUninitializedGroupedTasks","groupedTasksError","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","isFetchingTasksLinks","loadingLinksEntityIds","cachedIds","l","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filteredFoldersMap","filtered","reloadTableData","error","softErrorAction"],"mappings":"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"}
@@ -236,10 +236,6 @@ import "../context/SelectedRowsContext.es.js";
236
236
  import "../context/DetailsPanelEntityContext.es.js";
237
237
  import "../../EntityPickerDialog/EntityPickerDialog.es.js";
238
238
  import "../../Slicer/components/Slicer.es.js";
239
- import "../../Views/ViewsMenu/ViewsMenu.es.js";
240
- import "../../Views/context/ViewsContextInstance.es.js";
241
- import "../../Views/Views.styled.es.js";
242
- import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
243
239
  import "../../Slicer/context/SlicerContextInstance.es.js";
244
240
  import "../../Slicer/components/SlicerDropdownFallback.es.js";
245
241
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
@@ -257,6 +253,10 @@ import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.
257
253
  import "../../Actions/Actions.styled.es.js";
258
254
  import "../../Actions/ActionsDropdown/ActionsDropdown.es.js";
259
255
  import "../../Actions/ActionIcon.es.js";
256
+ import "../../Views/ViewsMenu/ViewsMenu.es.js";
257
+ import "../../Views/context/ViewsContextInstance.es.js";
258
+ import "../../Views/Views.styled.es.js";
259
+ import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
260
260
  import "../../ListTable/ListTableRow.es.js";
261
261
  import "../../ListTable/ListTable.styled.es.js";
262
262
  import "../../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
@@ -312,8 +312,8 @@ const ei = 300, Ws = ({
312
312
  taskGroups: B = [],
313
313
  taskGroupsCount: dt,
314
314
  expanded: k,
315
- showHierarchy: f,
316
- isFlatFolderView: d = !1,
315
+ showHierarchy: d,
316
+ isFlatFolderView: f = !1,
317
317
  attribFields: ft,
318
318
  modules: ct,
319
319
  skipLinks: M,
@@ -328,25 +328,33 @@ const ei = 300, Ws = ({
328
328
  refetch: gt,
329
329
  getFolderById: J
330
330
  } = ii(), P = Object.entries(k).filter(([, t]) => t).filter(([t]) => !at(t)).map(([t]) => t), R = e(
331
- () => si(
331
+ () => si({
332
+ expanded: k,
333
+ expandedParentIds: P,
334
+ selectedFolders: n,
335
+ excludeSelectedFolders: l,
336
+ getFolderById: J,
337
+ showHierarchy: d
338
+ }),
339
+ [
332
340
  k,
333
341
  P,
334
342
  n,
335
343
  l,
336
- J
337
- ),
338
- [k, P, n, l, J]
344
+ J,
345
+ d
346
+ ]
339
347
  ), [K, ht] = et(O), A = e(
340
348
  () => Ht((t) => ht(t), ei),
341
349
  []
342
350
  );
343
351
  nt(() => (A(O), () => A.cancel()), [O, A]);
344
352
  const X = e(() => {
345
- if (!f || d)
353
+ if (!d || f)
346
354
  return R;
347
355
  const t = new Set(K);
348
356
  return R.filter((p) => t.has(p));
349
- }, [R, f, d, K]), {
357
+ }, [R, d, f, K]), {
350
358
  data: y = [],
351
359
  isFetching: Z,
352
360
  error: W,
@@ -361,8 +369,8 @@ const ei = 300, Ws = ({
361
369
  search: a.search,
362
370
  showComments: C
363
371
  },
364
- { skip: !X.length || !f && !d }
365
- ), $ = !a.filterString && !h.filterString && !a.search && !h.search || !c.length || !f && !d, {
372
+ { skip: !X.length || !d && !f }
373
+ ), $ = !a.filterString && !h.filterString && !a.search && !h.search || !c.length || !d && !f, {
366
374
  data: S,
367
375
  isUninitialized: j,
368
376
  isLoading: It,
@@ -428,7 +436,7 @@ const ei = 300, Ws = ({
428
436
  const s = r.get(m);
429
437
  s && s.parentId && (i.add(s.parentId), o(s.parentId));
430
438
  };
431
- if (!d) {
439
+ if (!f) {
432
440
  const m = [...i];
433
441
  for (const s of m)
434
442
  o(s);
@@ -444,7 +452,7 @@ const ei = 300, Ws = ({
444
452
  const s = o.path, x = i.includes(s);
445
453
  (i.some(
446
454
  (Zt) => s.startsWith(Zt + "/")
447
- ) || x && (!l || d)) && r.set(m, p(o));
455
+ ) || x && (!l || f)) && r.set(m, p(o));
448
456
  }), r;
449
457
  }
450
458
  return t;
@@ -455,7 +463,7 @@ const ei = 300, Ws = ({
455
463
  n,
456
464
  l,
457
465
  v,
458
- d
466
+ f
459
467
  ]), St = e(() => Z ? oi({
460
468
  expandedFoldersTasks: y,
461
469
  expandedParentIds: P,
@@ -464,9 +472,9 @@ const ei = 300, Ws = ({
464
472
  nt(() => {
465
473
  V && vt("");
466
474
  }, [F, V]);
467
- const L = { ...F[0] }, z = L?.id === "name" && !f ? "path" : L?.id === "subType" ? "taskType" : L?.id, zt = n.length ? Array.from(
475
+ const L = { ...F[0] }, z = L?.id === "name" && !d ? "path" : L?.id === "subType" ? "taskType" : L?.id, zt = n.length ? Array.from(
468
476
  /* @__PURE__ */ new Set([...T.keys(), ...l ? n : []])
469
- ) : void 0, E = f && l && n.length ? n : void 0, {
477
+ ) : void 0, E = d && l && n.length ? n : void 0, {
470
478
  data: q,
471
479
  isLoading: Ut,
472
480
  error: bt,
@@ -493,7 +501,7 @@ const ei = 300, Ws = ({
493
501
  // Skip flat task list for flat folder view (tasks loaded on folder expand).
494
502
  // In hierarchy+slicer mode, run it to fetch tasks under selected-but-hidden folders.
495
503
  // Always run it when entity list provides specific task IDs.
496
- skip: (f && !E || d) && !u?.length,
504
+ skip: (d && !E || f) && !u?.length,
497
505
  initialPageParam: {
498
506
  cursor: "",
499
507
  desc: !!L?.desc
@@ -535,11 +543,11 @@ const ei = 300, Ws = ({
535
543
  {
536
544
  skip: !g || !rt.length || Y
537
545
  }
538
- ), b = e(() => u?.length ? U : d ? y : f ? E ? [...y, ...U] : y : g ? ot : U, [
546
+ ), b = e(() => u?.length ? U : f ? y : d ? E ? [...y, ...U] : y : g ? ot : U, [
539
547
  u,
540
- f,
541
- E,
542
548
  d,
549
+ E,
550
+ f,
543
551
  g,
544
552
  U,
545
553
  y,