@ynput/ayon-frontend-shared 0.3.36 → 0.3.37

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 (568) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -23
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +222 -215
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs12.js +1 -1
  8. package/dist/_virtual/index.cjs13.js +1 -1
  9. package/dist/_virtual/index.cjs15.js +1 -1
  10. package/dist/_virtual/index.cjs18.js +1 -1
  11. package/dist/_virtual/index.cjs19.js +1 -1
  12. package/dist/_virtual/index.cjs4.js +1 -1
  13. package/dist/_virtual/index.cjs8.js +1 -1
  14. package/dist/_virtual/index.cjs9.js +1 -1
  15. package/dist/_virtual/index.es12.js +2 -5
  16. package/dist/_virtual/index.es12.js.map +1 -1
  17. package/dist/_virtual/index.es13.js +2 -5
  18. package/dist/_virtual/index.es13.js.map +1 -1
  19. package/dist/_virtual/index.es14.js +2 -2
  20. package/dist/_virtual/index.es15.js +2 -2
  21. package/dist/_virtual/index.es16.js +2 -2
  22. package/dist/_virtual/index.es17.js +2 -2
  23. package/dist/_virtual/index.es18.js +2 -2
  24. package/dist/_virtual/index.es19.js +2 -2
  25. package/dist/_virtual/index.es4.js +5 -2
  26. package/dist/_virtual/index.es4.js.map +1 -1
  27. package/dist/_virtual/index.es7.js +2 -2
  28. package/dist/_virtual/index.es8.js +2 -2
  29. package/dist/_virtual/index.es9.js +5 -2
  30. package/dist/_virtual/index.es9.js.map +1 -1
  31. package/dist/components.cjs.js +1 -1
  32. package/dist/components.es.js +77 -73
  33. package/dist/components.es.js.map +1 -1
  34. package/dist/context.cjs.js +1 -1
  35. package/dist/context.es.js +50 -49
  36. package/dist/hooks.cjs.js +1 -1
  37. package/dist/hooks.es.js +33 -29
  38. package/dist/hooks.es.js.map +1 -1
  39. package/dist/index.cjs.js +1 -1
  40. package/dist/index.es.js +13 -10
  41. package/dist/index.es.js.map +1 -1
  42. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  43. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js.map +1 -1
  44. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  45. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  46. package/dist/node_modules/remove-accents/index.cjs.js.map +1 -1
  47. package/dist/node_modules/remove-accents/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js.map +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  67. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js.map +1 -1
  69. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  79. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  80. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  81. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  82. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  83. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  84. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  85. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  86. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  87. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  88. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  89. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  90. package/dist/shared/src/api/generated/graphql.cjs.js +108 -23
  91. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  92. package/dist/shared/src/api/generated/graphql.es.js +138 -53
  93. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  94. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  95. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/activities/getActivities.es.js +42 -42
  99. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js +2 -0
  101. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -0
  102. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js +68 -0
  103. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -0
  104. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  105. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/activities/updateActivities.es.js +69 -62
  107. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +64 -56
  111. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +57 -53
  115. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +27 -25
  119. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
  121. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +4 -4
  124. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/overview/getOverview.es.js +212 -187
  128. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  129. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  130. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  131. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -3
  132. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  133. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  134. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  135. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -3
  136. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  137. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  138. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -3
  140. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  141. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  142. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  143. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -3
  144. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  146. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  147. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +102 -99
  148. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  149. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  150. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  151. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +95 -87
  152. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  153. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  154. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  155. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +6 -3
  156. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  157. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  158. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  159. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +6 -3
  160. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  161. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  162. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  163. package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -3
  164. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -3
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  170. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +7 -4
  172. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  174. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -3
  176. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  177. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  178. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  179. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -3
  180. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  181. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js +6 -0
  182. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js.map +1 -0
  183. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js +58 -0
  184. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js.map +1 -0
  185. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  186. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  187. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -4
  188. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  189. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js +2 -0
  190. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js.map +1 -0
  191. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js +106 -0
  192. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js.map +1 -0
  193. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  194. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  195. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +8 -5
  196. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  197. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  198. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  199. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -3
  200. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  201. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  202. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  203. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -3
  204. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  205. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  206. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  207. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +10 -7
  208. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  209. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  210. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -3
  212. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  213. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  214. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -3
  216. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  221. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  222. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -3
  224. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  228. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
  232. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  233. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +6 -3
  236. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  237. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -3
  240. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  241. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +10 -0
  242. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -0
  243. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +135 -0
  244. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -0
  245. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  247. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  248. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -17
  250. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  251. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  252. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +41 -44
  254. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  255. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  256. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -2
  258. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  259. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +19 -25
  262. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  263. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js +2 -0
  264. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js.map +1 -0
  265. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js +91 -0
  266. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js.map +1 -0
  267. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  268. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +6 -3
  270. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  271. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  272. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -3
  274. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  275. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  276. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -3
  278. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  279. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  280. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -3
  282. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  283. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  284. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/Feed/Feed.es.js +156 -164
  286. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  287. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +25 -3
  288. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/Feed/Feed.styled.es.js +30 -8
  290. package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
  291. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  292. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -3
  294. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  295. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  296. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -3
  298. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  299. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -3
  302. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
  304. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +1 -0
  306. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  308. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +8 -5
  310. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  311. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  312. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -2
  314. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  315. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  316. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +10 -7
  318. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  320. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +5 -5
  322. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  323. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +17 -0
  324. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -0
  325. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +279 -0
  326. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -0
  327. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
  330. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  331. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  332. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +62 -50
  334. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  335. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +2 -0
  336. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -0
  337. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +141 -0
  338. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -0
  339. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +2 -0
  340. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -0
  341. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +81 -0
  342. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -0
  343. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  344. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +20 -18
  346. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  347. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  348. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ListTable/ListTable.es.js +106 -103
  350. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  351. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  352. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +7 -4
  354. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  355. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  356. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -3
  358. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +127 -123
  362. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +158 -130
  366. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -3
  370. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +36 -33
  374. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -3
  378. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -3
  382. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -4
  384. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +228 -222
  386. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +103 -100
  390. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -3
  394. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js +3 -0
  396. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -0
  397. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +22 -0
  398. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -0
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -109
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +125 -121
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -3
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -3
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +36 -33
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -3
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +107 -103
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +36 -33
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -33
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -3
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -3
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -3
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +105 -102
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +37 -34
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +48 -45
  458. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +61 -61
  462. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +15 -6
  466. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -3
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +4 -3
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +108 -101
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +82 -0
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -0
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +416 -0
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -0
  479. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +8 -5
  482. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +37 -34
  486. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -3
  490. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  491. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  492. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -3
  494. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  495. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  496. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -3
  498. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  499. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  500. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -3
  502. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  503. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  504. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +6 -3
  506. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  507. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  508. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +6 -3
  510. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  511. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  512. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  513. package/dist/shared/src/context/DetailsPanelContext.es.js +92 -94
  514. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  515. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  516. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  517. package/dist/shared/src/context/WebsocketContext.es.js +8 -5
  518. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  519. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +2 -0
  520. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -0
  521. package/dist/shared/src/hooks/useGetProductionAddon.es.js +124 -0
  522. package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -0
  523. package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
  524. package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
  525. package/dist/shared/src/hooks/useLocalStorage.es.js +43 -27
  526. package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
  527. package/dist/types/api/generated/graphql.d.ts +122 -0
  528. package/dist/types/api/generated/graphqlLinks.d.ts +10 -0
  529. package/dist/types/api/queries/activities/getActivities.d.ts +83 -0
  530. package/dist/types/api/queries/activities/patchTableLatestComments.d.ts +1 -0
  531. package/dist/types/api/queries/activities/updateActivities.d.ts +16 -0
  532. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
  533. package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
  534. package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
  535. package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
  536. package/dist/types/api/queries/entityLists/getLists.d.ts +84 -0
  537. package/dist/types/api/queries/entityLists/types.d.ts +2 -1
  538. package/dist/types/api/queries/overview/getOverview.d.ts +58 -0
  539. package/dist/types/api/queries/project/getProject.d.ts +7 -0
  540. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
  541. package/dist/types/api/queries/users/getUsers.d.ts +7 -0
  542. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +30 -0
  543. package/dist/types/components/SearchFilter/CustomDateRangeDialog.d.ts +13 -0
  544. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  545. package/dist/types/components/SearchFilter/useDateRangeFilter.d.ts +36 -0
  546. package/dist/types/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.d.ts +13 -0
  547. package/dist/types/containers/DetailsPanel/helpers/subtasksFilterAdapter.d.ts +5 -0
  548. package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +1 -0
  549. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  550. package/dist/types/containers/Feed/components/FeedSearchFilter.d.ts +15 -0
  551. package/dist/types/containers/Feed/context/FeedContext.d.ts +5 -1
  552. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +3 -0
  553. package/dist/types/containers/Feed/helpers/feedFilterAdapter.d.ts +5 -0
  554. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +5 -1
  555. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  556. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardComments.d.ts +6 -0
  557. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  558. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  559. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -1
  560. package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +9 -0
  561. package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +5 -0
  562. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +1 -1
  563. package/dist/types/containers/ProjectTreeTable/widgets/CommentsWidget.d.ts +7 -0
  564. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  565. package/dist/types/hooks/index.d.ts +1 -0
  566. package/dist/types/hooks/useGetProductionAddon.d.ts +10 -0
  567. package/dist/types/hooks/useLocalStorage.d.ts +2 -0
  568. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useDeleteEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","topLevelEntities","deleteEntities","force","operations","e","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
1
+ {"version":3,"file":"useDeleteEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","topLevelEntities","deleteEntities","force","operations","e","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
@@ -206,6 +206,7 @@ import "../../Slicer/hooks/useTableDataBySlice.es.js";
206
206
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
207
207
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
208
208
  import "../../../components/SearchFilter/filterDates.es.js";
209
+ import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
209
210
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
210
211
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
211
212
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
@@ -235,7 +236,7 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
235
236
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
236
237
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
237
238
  import "../../Feed/Feed.styled.es.js";
238
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
239
+ import "../../Feed/components/FeedSearchFilter.es.js";
239
240
  import "@tanstack/react-virtual";
240
241
  import "@tanstack/react-table";
241
242
  import "../widgets/CollapsedWidget.es.js";
@@ -274,6 +275,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
274
275
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
275
276
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
276
277
  import "../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
278
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
279
+ import "../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
277
280
  import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
278
281
  import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
279
282
  import "../../Actions/Actions.styled.es.js";
@@ -297,7 +300,7 @@ const E = (e, d) => {
297
300
  "hasChildren" in r && r.hasChildren && n.push(`${s}child folders`), "taskNames" in r && r.taskNames && r.taskNames.length > 0 && n.push(`${s}${l(r.taskNames.length, "task")}`);
298
301
  }
299
302
  return n;
300
- }, qp = ({ onSuccess: e }) => {
303
+ }, Xp = ({ onSuccess: e }) => {
301
304
  const { updateEntities: d } = j(), { projectName: a } = F(), { getEntityById: c } = N(), [n] = T();
302
305
  return w(
303
306
  async (r) => {
@@ -367,6 +370,6 @@ const E = (e, d) => {
367
370
  );
368
371
  };
369
372
  export {
370
- qp as default
373
+ Xp as default
371
374
  };
372
375
  //# sourceMappingURL=useDeleteEntities.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","e","topLevelEntities","deleteEntities","force","operations","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
1
+ {"version":3,"file":"useDeleteEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useDeleteEntities.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { OperationWithRowId, useProjectTableContext, useProjectTableQueriesContext } from '@shared/containers'\n// TODO: confirmDelete uses prime react, so we should find a different solution\nimport { confirmDelete } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\nimport { toast } from 'react-toastify'\nimport {\n FolderDeleteInfo,\n useLazyGetFolderDeleteInfoQuery,\n} from '@shared/api/queries/folders/getFolderDeleteInfo'\nimport { EntityMap } from '../types'\nimport { DeleteConfirmContent, pluralize } from '../components/DeleteConfirmContent'\n\ntype UseDeleteEntitiesProps = {\n onSuccess?: () => void\n}\n\nconst buildChildrenDetails = (\n topLevelFolders: (EntityMap & { rowId: string })[],\n folderInfo: FolderDeleteInfo[],\n): string[] => {\n if (topLevelFolders.length === 0) return []\n const folderInfoMap = new Map(folderInfo.map((f) => [f.id, f]))\n const many = topLevelFolders.length > 1\n const details: string[] = []\n\n for (const folder of topLevelFolders) {\n const info = folderInfoMap.get(folder.id)\n const prefix = many ? `\"${folder.label || folder.name}\" contains ` : 'Contains '\n const hasDescendants =\n info &&\n (info.totalFolderCount > 0 ||\n info.totalTaskCount > 0 ||\n info.totalProductCount > 0 ||\n info.totalVersionCount > 0)\n\n if (hasDescendants) {\n const parts: string[] = []\n if (info.totalFolderCount > 0) parts.push(pluralize(info.totalFolderCount, 'child folder'))\n if (info.totalTaskCount > 0) parts.push(pluralize(info.totalTaskCount, 'task'))\n if (info.totalProductCount > 0) parts.push(pluralize(info.totalProductCount, 'product'))\n if (info.totalVersionCount > 0) parts.push(pluralize(info.totalVersionCount, 'version'))\n details.push(`${prefix}${parts.join(', ')}`)\n } else {\n if ('hasChildren' in folder && folder.hasChildren) {\n details.push(`${prefix}child folders`)\n }\n if ('taskNames' in folder && folder.taskNames && folder.taskNames.length > 0) {\n details.push(`${prefix}${pluralize(folder.taskNames.length, 'task')}`)\n }\n }\n }\n\n return details\n}\n\nconst useDeleteEntities = ({ onSuccess }: UseDeleteEntitiesProps) => {\n const { updateEntities } = useProjectTableQueriesContext()\n const { projectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const [fetchFolderDeleteInfo] = useLazyGetFolderDeleteInfoQuery()\n\n return useCallback(\n async (entityIds: string[]) => {\n if (!entityIds || entityIds.length === 0) {\n toast.error('No entities selected')\n return\n }\n\n const fullEntities: (EntityMap & { rowId: string })[] = []\n const addedEntityIds = new Set<string>()\n for (const id of entityIds) {\n const entity = getEntityById(id) as (EntityMap & { rowId: string }) | undefined\n if (entity && !addedEntityIds.has(entity.id)) {\n fullEntities.push(entity)\n addedEntityIds.add(entity.id)\n }\n }\n\n if (fullEntities.length === 0) {\n toast.error('No entities found')\n return\n }\n\n const selectedIdSet = new Set(fullEntities.map((e) => e.id))\n const topLevelEntities = fullEntities.filter((e) => {\n if (e.entityType === 'folder' && 'parentId' in e && e.parentId) {\n return !selectedIdSet.has(e.parentId)\n }\n if ('folderId' in e && e.folderId) {\n return !selectedIdSet.has(e.folderId)\n }\n return true\n })\n\n const deleteEntities = async (force = false) => {\n const operations: OperationWithRowId[] = []\n for (const e of fullEntities) {\n if (!e) continue\n operations.push({\n entityType: 'folderId' in e ? 'task' : 'folder',\n type: 'delete',\n entityId: e.id,\n rowId: e.rowId,\n force,\n })\n }\n try {\n await updateEntities?.({ operations })\n if (onSuccess) {\n onSuccess()\n }\n } catch (error: any) {\n const message = error?.error || 'Failed to delete entities'\n console.error(`Failed to delete entities:`, error)\n throw { message, ...error }\n }\n }\n\n const counts: Record<string, number> = {}\n for (const e of topLevelEntities) {\n counts[e.entityType] = (counts[e.entityType] || 0) + 1\n }\n\n let entityLabel: string\n if (topLevelEntities.length === 1) {\n const entity = topLevelEntities[0]\n entityLabel = `\"${entity.label || entity.name}\"`\n } else {\n const typeLabels = ['folder', 'task', 'product', 'version'] as const\n const parts = typeLabels\n .filter((type) => counts[type] > 0)\n .map((type) => pluralize(counts[type], type))\n entityLabel = parts.join(', ')\n }\n\n const topLevelFolders = topLevelEntities.filter((e) => e.entityType === 'folder')\n\n let childrenDetails: string[] = []\n if (topLevelFolders.length > 0 && projectName) {\n try {\n const folderInfo = await fetchFolderDeleteInfo({\n projectName,\n folderIds: topLevelFolders.map((f) => f.id),\n }).unwrap()\n childrenDetails = buildChildrenDetails(topLevelFolders, folderInfo)\n } catch (error) {\n console.warn('Failed to fetch folder delete info, falling back to local data', error)\n childrenDetails = buildChildrenDetails(topLevelFolders, [])\n }\n }\n\n confirmDelete({\n label: 'folders and tasks',\n message: (\n <DeleteConfirmContent entityLabel={entityLabel} childrenDetails={childrenDetails} />\n ),\n accept: deleteEntities,\n onError: (error: any) => {\n const FOLDER_WITH_CHILDREN_CODE = 'delete-folder-with-children'\n if (error?.errorCodes?.includes(FOLDER_WITH_CHILDREN_CODE)) {\n const confirmForce = window.confirm(\n `Are you really sure you want to delete ${entityLabel} and all of its dependencies? This cannot be undone. (NOT RECOMMENDED)`,\n )\n if (confirmForce) {\n deleteEntities(true)\n } else {\n console.log('User cancelled forced delete')\n }\n }\n },\n deleteLabel: 'Delete forever',\n })\n },\n [getEntityById, updateEntities, onSuccess, projectName, fetchFolderDeleteInfo],\n )\n}\n\nexport default useDeleteEntities\n"],"names":["buildChildrenDetails","topLevelFolders","folderInfo","folderInfoMap","f","many","details","folder","info","prefix","parts","pluralize","useDeleteEntities","onSuccess","updateEntities","useProjectTableQueriesContext","projectName","useProjectContext","getEntityById","useProjectTableContext","fetchFolderDeleteInfo","useLazyGetFolderDeleteInfoQuery","useCallback","entityIds","toast","fullEntities","addedEntityIds","id","entity","selectedIdSet","e","topLevelEntities","deleteEntities","force","operations","error","message","counts","entityLabel","type","childrenDetails","confirmDelete","jsx","DeleteConfirmContent"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");const U=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const $=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 o=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const Ue=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const De=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");require("uuid");const Ee=require("../../../util/getGroupByDataType.cjs.js");require("../../../util/pubsub.cjs.js");const xe=require("../utils/loadingUtils.cjs.js"),b=require("./useBuildGroupByTableData.cjs.js"),be=({projectName:h,selectedFolders:d,excludeSelectedFolders:k=!1,taskIds:q,taskFilters:u,folderFilters:l,sorting:B,groupBy:f,taskGroups:I=[],taskGroupsCount:H,expanded:M,showHierarchy:T,isFlatFolderView:p=!1,attribFields:V,modules:ee,skipLinks:C})=>{const{getGroupQueries:Q,isLoading:O}=ee,{folders:c,isLoading:re,isUninitialized:ie,refetch:te}=Ue.useProjectFoldersContext(),L=Object.entries(M).filter(([,e])=>e).filter(([e])=>!b.isGroupId(e)).map(([e])=>e),w=k?Array.from(new Set([...L,...d])):L,{data:P=[],isFetching:A,refetch:se,isUninitialized:ne}=U.useGetOverviewTasksByFoldersQuery({projectName:h,parentIds:w,filter:u.filterString,folderFilter:l.filterString,search:u.search},{skip:!w.length||!T&&!p}),F=!u.filterString&&!l.filterString&&!u.search&&!l.search||!c.length||!T&&!p,{data:m,isUninitialized:R,isLoading:ae,isUninitialized:ue,refetch:oe}=U.useGetSearchFoldersQuery({projectName:h,folderSearchRequest:{taskFilter:u.filter?.conditions?.length?u.filter:void 0,folderFilter:l.filter?.conditions?.length?l.filter:void 0,search:u.search}},{skip:F}),de=o.useMemo(()=>{const e=new Set;return c.forEach(n=>{if(!n.parentId){e.add(n.id);return}const t=n.parentId,r=k?d.includes(t):d.includes(n.id);(M[t]===!0||r)&&e.add(n.id)}),e},[c,m,F,M,d,k]),{data:_=[],refetch:qe,isUninitialized:fe}=$.useGetEntityLinksQuery({projectName:h,entityIds:Array.from(de),entityType:"folder"},{skip:C}),g=o.useMemo(()=>{const e=new Map,n=t=>({...t,entityId:t.id,entityType:"folder",links:_?.find(i=>i.id===t.id)?.links||[]});if(!R&&m&&c.length){const t=new Set;for(const s of m)t.add(s);const r=new Map;for(const s of c)r.set(s.id,s);const i=s=>{const a=r.get(s);a&&a.parentId&&(t.add(a.parentId),i(a.parentId))};if(!p){const s=[...t];for(const a of s)i(a)}for(const s of c)t.has(s.id)&&e.set(s.id,n(s))}else for(const t of c)e.set(t.id,n(t));if(d.length){const t=d.map(i=>e.get(i)?.path).filter(Boolean),r=new Map;return e.forEach((i,s)=>{const a=i.path,S=t.includes(a);(t.some(Se=>a.startsWith(Se+"/"))||S&&!k)&&r.set(s,n(i))}),r}return e},[c,m,R,d,k,_,p]),ce=o.useMemo(()=>A?xe.determineLoadingTaskFolders({expandedFoldersTasks:P,expandedParentIds:L,foldersMap:g}):{},[A,P,L,g]),[W,le]=o.useState("");o.useEffect(()=>{W&&le("")},[B,W]);const y={...B[0]},v=y?.id==="name"&&!T?"path":y?.id==="subType"?"taskType":y?.id,N=d.length?Array.from(new Set([...g.keys(),...k?d:[]])):void 0,{data:D,isLoading:pe,isFetching:Ce,fetchNextPage:ge,hasNextPage:he,isFetchingNextPage:ke,isUninitialized:Te,refetch:ye}=U.useGetTasksListInfiniteInfiniteQuery({projectName:h,filter:u.filterString,folderFilter:l.filterString,search:u.search,folderIds:q?.length?void 0:N,taskIds:q?.length?q:void 0,sortBy:v?v.replace("_","."):void 0,desc:!!y?.desc},{skip:(T||p)&&!q?.length,initialPageParam:{cursor:"",desc:!!y?.desc}}),E=o.useMemo(()=>D?.pages?D.pages.flatMap(e=>e.tasks||[]):[],[D?.pages]),{pageCounts:x,incrementPageCount:Me}=De.useGroupedPagination({groups:I}),Ie=Ee.getGroupByDataType(f,V),Y=o.useMemo(()=>Object.entries(M).filter(([,e])=>e).filter(([e])=>b.isGroupId(e)).map(([e])=>e.slice(b.GROUP_BY_ID.length)),[M]),j=o.useMemo(()=>f?(Q?.({groups:I,taskGroups:I,filters:u.filter,groupBy:f,groupPageCounts:x})??[]).filter(n=>Y.includes(n.value)):[],[f,I,x,Ie,u.filter,Q,Y]),{data:{tasks:J=[]}={},isUninitialized:Le,refetch:Pe}=U.useGetGroupedTasksListQuery({projectName:h,groups:j,sortBy:v?v.replace("_","."):void 0,desc:!!y?.desc,search:u.search,folderFilter:l.filterString,folderIds:N,groupCount:H},{skip:!f||!j.length||O}),G=o.useMemo(()=>q?.length?E:T||p?P:f?J:E,[q,T,p,f,E,P,J]),K=o.useMemo(()=>new Set(G.map(e=>e.id)),[G]),{data:X=[],refetch:me,isUninitialized:ve}=$.useGetEntityLinksQuery({projectName:h,entityIds:Array.from(K),entityType:"task"},{skip:K.size===0||C}),Ge=e=>{f?e&&e in x&&Me(e):he&&ge()},{tasksMap:ze,tasksByFolderMap:z}=o.useMemo(()=>{const e=new Map,n=new Map,t=r=>({...r,entityId:r.id,entityType:"task",links:X?.find(i=>i.id===r.id)?.links||[]});for(const r of G){const i=r.id,s=r.folderId;if(e.has(i)){const a=e.get(i),S=t(r),Z={...a,...S,groups:[...a.groups||[],...S.groups||[]]};e.set(i,Z)}else e.set(i,t(r));if(n.has(s)){const a=n.get(s);a.includes(i)||a.push(i)}else n.set(s,[i])}return{tasksMap:e,tasksByFolderMap:n}},[G,X]);return{foldersMap:o.useMemo(()=>{if(!q?.length||!z.size)return g;const e=new Set;for(const r of z.keys())e.add(r);const n=r=>{const i=g.get(r);if(i&&i.parentId){const s=i.parentId;e.has(s)||(e.add(s),n(s))}};for(const r of e)n(r);const t=new Map;for(const[r,i]of g)e.has(r)&&t.set(r,i);return t},[g,z,q]),tasksMap:ze,tasksByFolderMap:z,isLoadingAll:re||pe||ae||O,isLoadingMore:ke,loadingTasks:ce,fetchNextPage:Ge,reloadTableData:()=>{ie||te(),ne||se(),ue||oe(),Te||ye(),Le||Pe(),fe||qe(),ve||me()}}};exports.useFetchOverviewData=be;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");const U=require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");const H=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 o=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const De=require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");const Ee=require("../../../hooks/useGroupedPagination.cjs.js");require("../components/GroupSettingsFallback.cjs.js");require("uuid");const xe=require("../../../util/getGroupByDataType.cjs.js");require("../../../util/pubsub.cjs.js");const be=require("../utils/loadingUtils.cjs.js"),B=require("./useBuildGroupByTableData.cjs.js"),Be=({projectName:h,selectedFolders:d,excludeSelectedFolders:k=!1,taskIds:q,taskFilters:u,folderFilters:l,sorting:Q,groupBy:f,taskGroups:I=[],taskGroupsCount:V,expanded:M,showHierarchy:T,isFlatFolderView:p=!1,attribFields:ee,modules:re,skipLinks:C,showComments:D=!1})=>{const{getGroupQueries:O,isLoading:A}=re,{folders:c,isLoading:ie,isUninitialized:te,refetch:se}=De.useProjectFoldersContext(),L=Object.entries(M).filter(([,e])=>e).filter(([e])=>!B.isGroupId(e)).map(([e])=>e),F=k?Array.from(new Set([...L,...d])):L,{data:P=[],isFetching:R,refetch:ne,isUninitialized:ae}=U.useGetOverviewTasksByFoldersQuery({projectName:h,parentIds:F,filter:u.filterString,folderFilter:l.filterString,search:u.search,showComments:D},{skip:!F.length||!T&&!p}),_=!u.filterString&&!l.filterString&&!u.search&&!l.search||!c.length||!T&&!p,{data:v,isUninitialized:w,isLoading:ue,isUninitialized:oe,refetch:de}=U.useGetSearchFoldersQuery({projectName:h,folderSearchRequest:{taskFilter:u.filter?.conditions?.length?u.filter:void 0,folderFilter:l.filter?.conditions?.length?l.filter:void 0,search:u.search}},{skip:_}),qe=o.useMemo(()=>{const e=new Set;return c.forEach(n=>{if(!n.parentId){e.add(n.id);return}const t=n.parentId,r=k?d.includes(t):d.includes(n.id);(M[t]===!0||r)&&e.add(n.id)}),e},[c,v,_,M,d,k]),{data:W=[],refetch:fe,isUninitialized:ce}=H.useGetEntityLinksQuery({projectName:h,entityIds:Array.from(qe),entityType:"folder"},{skip:C}),g=o.useMemo(()=>{const e=new Map,n=t=>({...t,entityId:t.id,entityType:"folder",links:W?.find(i=>i.id===t.id)?.links||[]});if(!w&&v&&c.length){const t=new Set;for(const s of v)t.add(s);const r=new Map;for(const s of c)r.set(s.id,s);const i=s=>{const a=r.get(s);a&&a.parentId&&(t.add(a.parentId),i(a.parentId))};if(!p){const s=[...t];for(const a of s)i(a)}for(const s of c)t.has(s.id)&&e.set(s.id,n(s))}else for(const t of c)e.set(t.id,n(t));if(d.length){const t=d.map(i=>e.get(i)?.path).filter(Boolean),r=new Map;return e.forEach((i,s)=>{const a=i.path,S=t.includes(a);(t.some(Ue=>a.startsWith(Ue+"/"))||S&&!k)&&r.set(s,n(i))}),r}return e},[c,v,w,d,k,W,p]),le=o.useMemo(()=>R?be.determineLoadingTaskFolders({expandedFoldersTasks:P,expandedParentIds:L,foldersMap:g}):{},[R,P,L,g]),[N,pe]=o.useState("");o.useEffect(()=>{N&&pe("")},[Q,N]);const y={...Q[0]},m=y?.id==="name"&&!T?"path":y?.id==="subType"?"taskType":y?.id,Y=d.length?Array.from(new Set([...g.keys(),...k?d:[]])):void 0,{data:E,isLoading:ge,isFetching:Ce,fetchNextPage:he,hasNextPage:ke,isFetchingNextPage:Te,isUninitialized:ye,refetch:Me}=U.useGetTasksListInfiniteInfiniteQuery({projectName:h,filter:u.filterString,folderFilter:l.filterString,search:u.search,folderIds:q?.length?void 0:Y,taskIds:q?.length?q:void 0,sortBy:m?m.replace("_","."):void 0,desc:!!y?.desc,showComments:D},{skip:(T||p)&&!q?.length,initialPageParam:{cursor:"",desc:!!y?.desc}}),x=o.useMemo(()=>E?.pages?E.pages.flatMap(e=>e.tasks||[]):[],[E?.pages]),{pageCounts:b,incrementPageCount:Ie}=Ee.useGroupedPagination({groups:I}),Le=xe.getGroupByDataType(f,ee),j=o.useMemo(()=>Object.entries(M).filter(([,e])=>e).filter(([e])=>B.isGroupId(e)).map(([e])=>e.slice(B.GROUP_BY_ID.length)),[M]),J=o.useMemo(()=>f?(O?.({groups:I,taskGroups:I,filters:u.filter,groupBy:f,groupPageCounts:b})??[]).filter(n=>j.includes(n.value)):[],[f,I,b,Le,u.filter,O,j]),{data:{tasks:K=[]}={},isUninitialized:Pe,refetch:ve}=U.useGetGroupedTasksListQuery({projectName:h,groups:J,sortBy:m?m.replace("_","."):void 0,desc:!!y?.desc,search:u.search,folderFilter:l.filterString,folderIds:Y,groupCount:V,showComments:D},{skip:!f||!J.length||A}),G=o.useMemo(()=>q?.length?x:T||p?P:f?K:x,[q,T,p,f,x,P,K]),X=o.useMemo(()=>new Set(G.map(e=>e.id)),[G]),{data:Z=[],refetch:me,isUninitialized:Ge}=H.useGetEntityLinksQuery({projectName:h,entityIds:Array.from(X),entityType:"task"},{skip:X.size===0||C}),ze=e=>{f?e&&e in b&&Ie(e):ke&&he()},{tasksMap:Se,tasksByFolderMap:z}=o.useMemo(()=>{const e=new Map,n=new Map,t=r=>({...r,entityId:r.id,entityType:"task",links:Z?.find(i=>i.id===r.id)?.links||[]});for(const r of G){const i=r.id,s=r.folderId;if(e.has(i)){const a=e.get(i),S=t(r),$={...a,...S,groups:[...a.groups||[],...S.groups||[]]};e.set(i,$)}else e.set(i,t(r));if(n.has(s)){const a=n.get(s);a.includes(i)||a.push(i)}else n.set(s,[i])}return{tasksMap:e,tasksByFolderMap:n}},[G,Z]);return{foldersMap:o.useMemo(()=>{if(!q?.length||!z.size)return g;const e=new Set;for(const r of z.keys())e.add(r);const n=r=>{const i=g.get(r);if(i&&i.parentId){const s=i.parentId;e.has(s)||(e.add(s),n(s))}};for(const r of e)n(r);const t=new Map;for(const[r,i]of g)e.has(r)&&t.set(r,i);return t},[g,z,q]),tasksMap:Se,tasksByFolderMap:z,isLoadingAll:ie||ge||ue||A,isLoadingMore:Te,loadingTasks:le,fetchNextPage:ze,reloadTableData:()=>{te||se(),ae||ne(),oe||de(),ye||Me(),Pe||ve(),ce||fe(),Ge||me()}}};exports.useFetchOverviewData=Be;
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 } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n 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}\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}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const taskParentIds = excludeSelectedFolders\n ? Array.from(new Set([...expandedParentIds, ...selectedFolders]))\n : expandedParentIds\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n },\n { skip: !taskParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isRootFromSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [\n folders,\n foldersByTaskFilter,\n skipFoldersByTaskFilter,\n expanded,\n selectedFolders,\n excludeSelectedFolders,\n ])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = 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) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n const isSelected = selectedPaths.includes(folderPath)\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isChild || (isSelected && !excludeSelectedFolders)) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n excludeSelectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length\n ? Array.from(\n new Set([...foldersMap.keys(), ...(excludeSelectedFolders ? selectedFolders : [])]),\n )\n : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","taskParentIds","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"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"}
1
+ {"version":3,"file":"useFetchOverviewData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFetchOverviewData.ts"],"sourcesContent":["import {\n useGetGroupedTasksListQuery,\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListInfiniteInfiniteQuery,\n} from '@shared/api'\nimport type { FolderListItem, GetGroupedTasksListArgs, EntityGroup, QueryFilter } from '@shared/api'\nimport { useGroupedPagination } from '@shared/hooks'\nimport { getGroupByDataType } from '@shared/util'\nimport { EditorTaskNode, FolderNodeMap, MatchingFolder, TaskNodeMap } from '../types/table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ExpandedState, SortingState } from '@tanstack/react-table'\nimport { determineLoadingTaskFolders } from '../utils/loadingUtils'\nimport { LoadingTasks } from '../types'\nimport { TasksByFolderMap } from '../utils'\nimport { TableGroupBy } from '../context'\nimport { isGroupId, GROUP_BY_ID } from '../hooks/useBuildGroupByTableData'\nimport { ProjectTableAttribute } from '../hooks/useAttributesList'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { useGetEntityLinksQuery } from '@shared/api'\nimport { useProjectFoldersContext } from '@shared/context'\n\ntype QueryFilterParams = {\n filter: QueryFilter | undefined\n filterString?: string\n search?: string\n}\n\ntype useFetchOverviewDataData = {\n foldersMap: FolderNodeMap\n tasksMap: TaskNodeMap\n tasksByFolderMap: TasksByFolderMap\n isLoadingAll: boolean // the whole table is a loading state\n isLoadingMore: boolean // loading more tasks\n loadingTasks: LoadingTasks // show number of loading tasks per folder or root\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n}\n\ntype Params = {\n projectName: string\n selectedFolders: string[] // folders selected in the slicer (hierarchy)\n excludeSelectedFolders?: boolean\n taskIds?: string[] // specific task IDs to filter by (from entity list slicer)\n taskFilters: QueryFilterParams // filters for tasks\n folderFilters: QueryFilterParams // filters for folders\n sorting: SortingState\n groupBy: TableGroupBy | undefined\n taskGroups: EntityGroup[]\n taskGroupsCount?: number // override for number of items per group\n expanded: ExpandedState\n showHierarchy: boolean\n isFlatFolderView?: boolean\n attribFields: ProjectTableAttribute[]\n modules: ProjectTableModulesType\n skipLinks?: boolean\n showComments?: boolean // only fetch latestComments when the comments column is visible\n}\n\nexport const useFetchOverviewData = ({\n projectName,\n selectedFolders, // comes from the slicer\n excludeSelectedFolders = false,\n taskIds, // specific task IDs from entity list slicer\n taskFilters,\n folderFilters,\n sorting,\n groupBy,\n taskGroups = [],\n taskGroupsCount,\n expanded,\n showHierarchy,\n isFlatFolderView = false,\n attribFields,\n modules,\n skipLinks,\n showComments = false,\n}: Params): useFetchOverviewDataData => {\n const { getGroupQueries, isLoading: isLoadingModules } = modules\n\n const {\n folders,\n isLoading: isLoadingFolders,\n isUninitialized: isUninitializedFolders,\n refetch: refetchFolders,\n } = useProjectFoldersContext()\n\n const expandedParentIds = Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => !isGroupId(id)) // filter out the root folder\n .map(([id]) => id)\n\n const taskParentIds = excludeSelectedFolders\n ? Array.from(new Set([...expandedParentIds, ...selectedFolders]))\n : expandedParentIds\n\n const {\n data: expandedFoldersTasks = [],\n isFetching: isFetchingExpandedFoldersTasks,\n refetch: refetchExpandedFoldersTasks,\n isUninitialized: isUninitializedExpandedFoldersTasks,\n } = useGetOverviewTasksByFoldersQuery(\n {\n projectName,\n parentIds: taskParentIds,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n showComments,\n },\n { skip: !taskParentIds.length || (!showHierarchy && !isFlatFolderView) },\n )\n\n const skipFoldersByTaskFilter =\n (!taskFilters.filterString &&\n !folderFilters.filterString &&\n !taskFilters.search &&\n !folderFilters.search) ||\n !folders.length ||\n (!showHierarchy && !isFlatFolderView)\n // get folders that would be left if the filters were applied for tasks\n const {\n data: foldersByTaskFilter,\n isUninitialized,\n isLoading: isLoadingTasksFolders,\n isUninitialized: isUninitializedTasksFolders,\n refetch: refetchTasksFolders,\n } = useGetSearchFoldersQuery(\n {\n projectName,\n folderSearchRequest: {\n taskFilter: taskFilters.filter?.conditions?.length ? taskFilters.filter : undefined,\n folderFilter: folderFilters.filter?.conditions?.length ? folderFilters.filter : undefined,\n search: taskFilters.search,\n },\n },\n {\n skip: skipFoldersByTaskFilter,\n },\n )\n\n // create a list of folders that are current visible in the table\n // root folders are always visible\n // then a folder is visible if it's parent is expanded\n const visibleFolders = useMemo(() => {\n const visibleSet = new Set<string>()\n\n // Check each folder in the map\n folders.forEach((folder) => {\n // Root folders are always visible\n if (!folder.parentId) {\n visibleSet.add(folder.id)\n return\n }\n\n // Check if parent is expanded\n const parentId = folder.parentId as string\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(folder.id as string)\n const expandedMap = expanded as Record<string, boolean>\n if (expandedMap[parentId] === true || isRootFromSlicer) {\n visibleSet.add(folder.id)\n }\n })\n\n return visibleSet\n }, [\n folders,\n foldersByTaskFilter,\n skipFoldersByTaskFilter,\n expanded,\n selectedFolders,\n excludeSelectedFolders,\n ])\n\n // get all links for visible folders\n const {\n data: foldersLinks = [],\n refetch: refetchFoldersLinks,\n isUninitialized: isUninitializedFoldersLinks,\n } = 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) => map.get(id)?.path)\n .filter(Boolean) as string[]\n\n // Create a new map that only contains selected folders and their children\n const filteredMap = new Map()\n\n // For each folder, check if it should be included\n map.forEach((folder, folderId) => {\n const folderPath = folder.path as string\n\n const isSelected = selectedPaths.includes(folderPath)\n\n // Include if it's a child of any selected folder\n const isChild = selectedPaths.some((selectedPath) =>\n folderPath.startsWith(selectedPath + '/'),\n )\n\n if (isChild || (isSelected && !excludeSelectedFolders)) {\n filteredMap.set(folderId, addExtraDataToFolder(folder))\n }\n })\n\n return filteredMap\n }\n\n return map\n }, [\n folders,\n foldersByTaskFilter,\n isUninitialized,\n selectedFolders,\n excludeSelectedFolders,\n foldersLinks,\n isFlatFolderView,\n ])\n\n // calculate partial loading states\n const loadingTasksForParents = useMemo(() => {\n if (isFetchingExpandedFoldersTasks) {\n return determineLoadingTaskFolders({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n })\n } else return {}\n }, [isFetchingExpandedFoldersTasks, expandedFoldersTasks, expandedParentIds, foldersMap])\n\n const [tasksListCursor, setTasksListCursor] = useState('')\n\n // every time the sorting changes, reset the cursor\n useEffect(() => {\n if (tasksListCursor) setTasksListCursor('')\n }, [sorting, tasksListCursor])\n\n // Create sort params for infinite query\n const singleSort = { ...sorting[0] }\n // if task list and sorting by name, sort by path instead\n const sortByPath = singleSort?.id === 'name' && !showHierarchy\n const sortId = sortByPath ? 'path' : singleSort?.id === 'subType' ? 'taskType' : singleSort?.id\n const tasksFolderIdsParams = selectedFolders.length\n ? Array.from(\n new Set([...foldersMap.keys(), ...(excludeSelectedFolders ? selectedFolders : [])]),\n )\n : undefined\n\n // Use the new infinite query hook for tasks list with correct name\n const {\n data: tasksListInfiniteData,\n isLoading: isLoadingTasksList,\n isFetching: isFetchingTasksList,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage: isFetchingNextPageTasksList,\n isUninitialized: isUninitializedTasksList,\n refetch: refetchTasksList,\n } = useGetTasksListInfiniteInfiniteQuery(\n {\n projectName,\n filter: taskFilters.filterString,\n folderFilter: folderFilters.filterString,\n search: taskFilters.search,\n folderIds: taskIds?.length ? undefined : tasksFolderIdsParams,\n taskIds: taskIds?.length ? taskIds : undefined,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n showComments,\n },\n {\n // Use flat task list when entity list provides specific task IDs, even in hierarchy mode\n skip: (showHierarchy || isFlatFolderView) && !taskIds?.length,\n initialPageParam: {\n cursor: '',\n desc: !!singleSort?.desc,\n },\n },\n )\n\n // Extract tasks from infinite query data correctly\n const tasksList = useMemo(() => {\n if (!tasksListInfiniteData?.pages) return []\n return tasksListInfiniteData.pages.flatMap((page) => page.tasks || [])\n }, [tasksListInfiniteData?.pages])\n\n const { pageCounts: groupPageCounts, incrementPageCount } = useGroupedPagination({\n groups: taskGroups,\n })\n\n // for grouped tasks, we fetch all tasks for each group\n // we do this by building a list of groups with filters for that group\n const groupByDataType = getGroupByDataType(groupBy, attribFields)\n\n // get expanded group values from the expanded state\n // group IDs are formatted as `_GROUP_<value>` so we extract the values\n const expandedGroupValues = useMemo(() => {\n return Object.entries(expanded)\n .filter(([, isExpanded]) => isExpanded)\n .filter(([id]) => isGroupId(id))\n .map(([id]) => id.slice(GROUP_BY_ID.length))\n }, [expanded])\n\n // get group queries from powerpack, filtered to only include expanded groups\n const groupQueries: GetGroupedTasksListArgs['groups'] = useMemo(() => {\n if (!groupBy) return []\n\n const allGroupQueries =\n getGroupQueries?.({\n groups: taskGroups,\n taskGroups, // deprecated, but keep for backward compatibility\n filters: taskFilters.filter,\n groupBy,\n groupPageCounts,\n }) ?? []\n\n // Only fetch tasks for groups that are expanded\n return allGroupQueries.filter((group) => expandedGroupValues.includes(group.value))\n }, [\n groupBy,\n taskGroups,\n groupPageCounts,\n groupByDataType,\n taskFilters.filter,\n getGroupQueries,\n expandedGroupValues,\n ])\n\n const {\n data: { tasks: groupTasks = [] } = {},\n isUninitialized: isUninitializedGroupedTasks,\n refetch: refetchGroupedTasks,\n } = useGetGroupedTasksListQuery(\n {\n projectName,\n groups: groupQueries,\n sortBy: sortId ? sortId.replace('_', '.') : undefined,\n desc: !!singleSort?.desc,\n search: taskFilters.search,\n folderFilter: folderFilters.filterString,\n folderIds: tasksFolderIdsParams,\n groupCount: taskGroupsCount,\n showComments,\n },\n {\n skip: !groupBy || !groupQueries.length || isLoadingModules,\n },\n )\n\n // Resolve which task source to use based on current mode\n // When entity list provides specific task IDs, use flat task list even in hierarchy mode\n const resolvedTasks = useMemo(() => {\n if (taskIds?.length) return tasksList\n if (showHierarchy || isFlatFolderView) return expandedFoldersTasks\n if (groupBy) return groupTasks\n return tasksList\n }, [\n taskIds,\n showHierarchy,\n isFlatFolderView,\n groupBy,\n tasksList,\n expandedFoldersTasks,\n groupTasks,\n ])\n\n // Get visible tasks for link fetching\n const visibleTasks = useMemo(() => {\n return new Set(resolvedTasks.map((task) => task.id))\n }, [resolvedTasks])\n\n // Get all links for visible tasks\n const {\n data: tasksLinks = [],\n refetch: refetchTasksLinks,\n isUninitialized: isUninitializedTasksLinks,\n } = useGetEntityLinksQuery(\n {\n projectName,\n entityIds: Array.from(visibleTasks),\n entityType: 'task',\n },\n {\n skip: visibleTasks.size === 0 || skipLinks,\n },\n )\n\n const handleFetchNextPage = (group?: string) => {\n if (groupBy) {\n if (group && group in groupPageCounts) {\n incrementPageCount(group)\n }\n } else if (hasNextPage) {\n fetchNextPage()\n }\n }\n\n // tasksMaps is a map of tasks by task ID\n // tasksByFolderMap is a map of tasks by folder ID\n const { tasksMap, tasksByFolderMap } = useMemo(() => {\n const tasksMap: TaskNodeMap = new Map()\n const tasksByFolderMap: TasksByFolderMap = new Map()\n\n const addExtraDataToTask = (task: EditorTaskNode) => ({\n ...task,\n entityId: task.id,\n entityType: 'task' as const,\n links: tasksLinks?.find((link) => link.id === task.id)?.links || [],\n })\n\n for (const task of resolvedTasks) {\n const taskId = task.id as string\n const folderId = task.folderId as string\n\n if (tasksMap.has(taskId)) {\n // merge specific data if the task already exists\n const existingTask = tasksMap.get(taskId) as EditorTaskNode\n const currentTask = addExtraDataToTask(task)\n const mergedTask = {\n ...existingTask,\n ...currentTask,\n groups: [...(existingTask.groups || []), ...(currentTask.groups || [])],\n }\n\n tasksMap.set(taskId, mergedTask)\n } else {\n tasksMap.set(taskId, addExtraDataToTask(task))\n }\n\n if (tasksByFolderMap.has(folderId)) {\n // dedup like tasksMap — resolvedTasks can contain the same task twice\n // (overlapping infinite-query pages, or a task in multiple groups)\n const folderTaskIds = tasksByFolderMap.get(folderId)!\n if (!folderTaskIds.includes(taskId)) folderTaskIds.push(taskId)\n } else {\n tasksByFolderMap.set(folderId, [taskId])\n }\n }\n\n return { tasksMap, tasksByFolderMap }\n }, [resolvedTasks, tasksLinks])\n\n // When entity list provides specific task IDs, filter folders to only those containing tasks\n const filteredFoldersMap: FolderNodeMap = useMemo(() => {\n if (!taskIds?.length || !tasksByFolderMap.size) return foldersMap\n\n const relevantFolderIds = new Set<string>()\n\n // Add all folders that contain selected tasks\n for (const folderId of tasksByFolderMap.keys()) {\n relevantFolderIds.add(folderId)\n }\n\n // Add parent folders for proper tree display\n const addParents = (folderId: string) => {\n const folder = foldersMap.get(folderId)\n if (folder && folder.parentId) {\n const parentId = folder.parentId as string\n if (!relevantFolderIds.has(parentId)) {\n relevantFolderIds.add(parentId)\n addParents(parentId)\n }\n }\n }\n\n for (const folderId of relevantFolderIds) {\n addParents(folderId)\n }\n\n const filtered = new Map() as FolderNodeMap\n for (const [id, folder] of foldersMap) {\n if (relevantFolderIds.has(id)) {\n filtered.set(id, folder)\n }\n }\n\n return filtered\n }, [foldersMap, tasksByFolderMap, taskIds])\n\n // reload all data for all queries\n const reloadTableData = () => {\n // only reload if there is data\n if (!isUninitializedFolders) refetchFolders()\n if (!isUninitializedExpandedFoldersTasks) refetchExpandedFoldersTasks()\n if (!isUninitializedTasksFolders) refetchTasksFolders()\n if (!isUninitializedTasksList) refetchTasksList()\n if (!isUninitializedGroupedTasks) refetchGroupedTasks()\n if (!isUninitializedFoldersLinks) refetchFoldersLinks()\n if (!isUninitializedTasksLinks) refetchTasksLinks()\n }\n\n return {\n foldersMap: filteredFoldersMap,\n tasksMap: tasksMap,\n tasksByFolderMap: tasksByFolderMap,\n isLoadingAll:\n isLoadingFolders || isLoadingTasksList || isLoadingTasksFolders || isLoadingModules, // these all show a full loading state\n isLoadingMore: isFetchingNextPageTasksList,\n loadingTasks: loadingTasksForParents,\n fetchNextPage: handleFetchNextPage,\n reloadTableData,\n }\n}\n"],"names":["useFetchOverviewData","projectName","selectedFolders","excludeSelectedFolders","taskIds","taskFilters","folderFilters","sorting","groupBy","taskGroups","taskGroupsCount","expanded","showHierarchy","isFlatFolderView","attribFields","modules","skipLinks","showComments","getGroupQueries","isLoadingModules","folders","isLoadingFolders","isUninitializedFolders","refetchFolders","useProjectFoldersContext","expandedParentIds","isExpanded","id","isGroupId","taskParentIds","expandedFoldersTasks","isFetchingExpandedFoldersTasks","refetchExpandedFoldersTasks","isUninitializedExpandedFoldersTasks","useGetOverviewTasksByFoldersQuery","skipFoldersByTaskFilter","foldersByTaskFilter","isUninitialized","isLoadingTasksFolders","isUninitializedTasksFolders","refetchTasksFolders","useGetSearchFoldersQuery","visibleFolders","useMemo","visibleSet","folder","parentId","isRootFromSlicer","foldersLinks","refetchFoldersLinks","isUninitializedFoldersLinks","useGetEntityLinksQuery","foldersMap","map","addExtraDataToFolder","link","relevantFolderIds","folderId","foldersByIdMap","addParents","matchedIds","selectedPaths","filteredMap","folderPath","isSelected","selectedPath","loadingTasksForParents","determineLoadingTaskFolders","tasksListCursor","setTasksListCursor","useState","useEffect","singleSort","sortId","tasksFolderIdsParams","tasksListInfiniteData","isLoadingTasksList","isFetchingTasksList","fetchNextPage","hasNextPage","isFetchingNextPageTasksList","isUninitializedTasksList","refetchTasksList","useGetTasksListInfiniteInfiniteQuery","tasksList","page","groupPageCounts","incrementPageCount","useGroupedPagination","groupByDataType","getGroupByDataType","expandedGroupValues","GROUP_BY_ID","groupQueries","group","groupTasks","isUninitializedGroupedTasks","refetchGroupedTasks","useGetGroupedTasksListQuery","resolvedTasks","visibleTasks","task","tasksLinks","refetchTasksLinks","isUninitializedTasksLinks","handleFetchNextPage","tasksMap","tasksByFolderMap","addExtraDataToTask","taskId","existingTask","currentTask","mergedTask","folderTaskIds","filtered"],"mappings":"01NA2DaA,GAAuB,CAAC,CACnC,YAAAC,EACA,gBAAAC,EACA,uBAAAC,EAAyB,GACzB,QAAAC,EACA,YAAAC,EACA,cAAAC,EACA,QAAAC,EACA,QAAAC,EACA,WAAAC,EAAa,CAAA,EACb,gBAAAC,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EAAmB,GACnB,aAAAC,GACA,QAAAC,GACA,UAAAC,EACA,aAAAC,EAAe,EACjB,IAAwC,CACtC,KAAM,CAAE,gBAAAC,EAAiB,UAAWC,CAAA,EAAqBJ,GAEnD,CACJ,QAAAK,EACA,UAAWC,GACX,gBAAiBC,GACjB,QAASC,EAAA,EACPC,4BAAA,EAEEC,EAAoB,OAAO,QAAQd,CAAQ,EAC9C,OAAO,CAAC,CAAA,CAAGe,CAAU,IAAMA,CAAU,EACrC,OAAO,CAAC,CAACC,CAAE,IAAM,CAACC,EAAAA,UAAUD,CAAE,CAAC,EAC/B,IAAI,CAAC,CAACA,CAAE,IAAMA,CAAE,EAEbE,EAAgB1B,EAClB,MAAM,KAAK,IAAI,IAAI,CAAC,GAAGsB,EAAmB,GAAGvB,CAAe,CAAC,CAAC,EAC9DuB,EAEE,CACJ,KAAMK,EAAuB,CAAA,EAC7B,WAAYC,EACZ,QAASC,GACT,gBAAiBC,EAAA,EACfC,EAAAA,kCACF,CACE,YAAAjC,EACA,UAAW4B,EACX,OAAQxB,EAAY,aACpB,aAAcC,EAAc,aAC5B,OAAQD,EAAY,OACpB,aAAAY,CAAA,EAEF,CAAE,KAAM,CAACY,EAAc,QAAW,CAACjB,GAAiB,CAACC,CAAA,CAAkB,EAGnEsB,EACH,CAAC9B,EAAY,cACZ,CAACC,EAAc,cACf,CAACD,EAAY,QACb,CAACC,EAAc,QACjB,CAACc,EAAQ,QACR,CAACR,GAAiB,CAACC,EAEhB,CACJ,KAAMuB,EACN,gBAAAC,EACA,UAAWC,GACX,gBAAiBC,GACjB,QAASC,EAAA,EACPC,EAAAA,yBACF,CACE,YAAAxC,EACA,oBAAqB,CACnB,WAAYI,EAAY,QAAQ,YAAY,OAASA,EAAY,OAAS,OAC1E,aAAcC,EAAc,QAAQ,YAAY,OAASA,EAAc,OAAS,OAChF,OAAQD,EAAY,MAAA,CACtB,EAEF,CACE,KAAM8B,CAAA,CACR,EAMIO,GAAiBC,EAAAA,QAAQ,IAAM,CACnC,MAAMC,MAAiB,IAGvB,OAAAxB,EAAQ,QAASyB,GAAW,CAE1B,GAAI,CAACA,EAAO,SAAU,CACpBD,EAAW,IAAIC,EAAO,EAAE,EACxB,MACF,CAGA,MAAMC,EAAWD,EAAO,SAClBE,EAAmB5C,EACrBD,EAAgB,SAAS4C,CAAQ,EACjC5C,EAAgB,SAAS2C,EAAO,EAAY,GAC5BlC,EACJmC,CAAQ,IAAM,IAAQC,IACpCH,EAAW,IAAIC,EAAO,EAAE,CAE5B,CAAC,EAEMD,CACT,EAAG,CACDxB,EACAgB,EACAD,EACAxB,EACAT,EACAC,CAAA,CACD,EAGK,CACJ,KAAM6C,EAAe,CAAA,EACrB,QAASC,GACT,gBAAiBC,EAAA,EACfC,EAAAA,uBACF,CACE,YAAAlD,EACA,UAAW,MAAM,KAAKyC,EAAc,EACpC,WAAY,QAAA,EAEd,CAAE,KAAM1B,CAAA,CAAU,EAIdoC,EAA4BT,EAAAA,QAAQ,IAAM,CAC9C,MAAMU,MAAU,IAEVC,EAAwBT,IAEgB,CAC1C,GAAGA,EACH,SAAUA,EAAO,GACjB,WAAY,SACZ,MAAOG,GAAc,KAAMO,GAASA,EAAK,KAAOV,EAAO,EAAE,GAAG,OAAS,CAAA,CAAC,GAM1E,GAAI,CAACR,GAAmBD,GAAuBhB,EAAQ,OAAQ,CAE7D,MAAMoC,MAAwB,IAG9B,UAAWC,KAAYrB,EACrBoB,EAAkB,IAAIC,CAAQ,EAIhC,MAAMC,MAAqB,IAC3B,UAAWb,KAAUzB,EACnBsC,EAAe,IAAIb,EAAO,GAAcA,CAAM,EAIhD,MAAMc,EAAcF,GAAqB,CACvC,MAAMZ,EAASa,EAAe,IAAID,CAAQ,EACtCZ,GAAUA,EAAO,WACnBW,EAAkB,IAAIX,EAAO,QAAkB,EAC/Cc,EAAWd,EAAO,QAAkB,EAExC,EAMA,GAAI,CAAChC,EAAkB,CACrB,MAAM+C,EAAa,CAAC,GAAGJ,CAAiB,EACxC,UAAWC,KAAYG,EACrBD,EAAWF,CAAQ,CAEvB,CAGA,UAAWZ,KAAUzB,EACfoC,EAAkB,IAAIX,EAAO,EAAY,GAC3CQ,EAAI,IAAIR,EAAO,GAAcS,EAAqBT,CAAM,CAAC,CAG/D,KAEE,WAAWA,KAAUzB,EACnBiC,EAAI,IAAIR,EAAO,GAAcS,EAAqBT,CAAM,CAAC,EAK7D,GAAI3C,EAAgB,OAAQ,CAC1B,MAAM2D,EAAgB3D,EACnB,IAAKyB,GAAO0B,EAAI,IAAI1B,CAAE,GAAG,IAAI,EAC7B,OAAO,OAAO,EAGXmC,MAAkB,IAGxB,OAAAT,EAAI,QAAQ,CAACR,EAAQY,IAAa,CAChC,MAAMM,EAAalB,EAAO,KAEpBmB,EAAaH,EAAc,SAASE,CAAU,GAGpCF,EAAc,KAAMI,IAClCF,EAAW,WAAWE,GAAe,GAAG,CAAA,GAG1BD,GAAc,CAAC7D,IAC7B2D,EAAY,IAAIL,EAAUH,EAAqBT,CAAM,CAAC,CAE1D,CAAC,EAEMiB,CACT,CAEA,OAAOT,CACT,EAAG,CACDjC,EACAgB,EACAC,EACAnC,EACAC,EACA6C,EACAnC,CAAA,CACD,EAGKqD,GAAyBvB,EAAAA,QAAQ,IACjCZ,EACKoC,+BAA4B,CACjC,qBAAArC,EACA,kBAAAL,EACA,WAAA2B,CAAA,CACD,EACW,CAAA,EACb,CAACrB,EAAgCD,EAAsBL,EAAmB2B,CAAU,CAAC,EAElF,CAACgB,EAAiBC,EAAkB,EAAIC,EAAAA,SAAS,EAAE,EAGzDC,EAAAA,UAAU,IAAM,CACVH,MAAoC,EAAE,CAC5C,EAAG,CAAC7D,EAAS6D,CAAe,CAAC,EAG7B,MAAMI,EAAa,CAAE,GAAGjE,EAAQ,CAAC,CAAA,EAG3BkE,EADaD,GAAY,KAAO,QAAU,CAAC5D,EACrB,OAAS4D,GAAY,KAAO,UAAY,WAAaA,GAAY,GACvFE,EAAuBxE,EAAgB,OACzC,MAAM,KACJ,IAAI,IAAI,CAAC,GAAGkD,EAAW,KAAA,EAAQ,GAAIjD,EAAyBD,EAAkB,EAAG,CAAC,CAAA,EAEpF,OAGE,CACJ,KAAMyE,EACN,UAAWC,GACX,WAAYC,GACZ,cAAAC,GACA,YAAAC,GACA,mBAAoBC,GACpB,gBAAiBC,GACjB,QAASC,EAAA,EACPC,EAAAA,qCACF,CACE,YAAAlF,EACA,OAAQI,EAAY,aACpB,aAAcC,EAAc,aAC5B,OAAQD,EAAY,OACpB,UAAWD,GAAS,OAAS,OAAYsE,EACzC,QAAStE,GAAS,OAASA,EAAU,OACrC,OAAQqE,EAASA,EAAO,QAAQ,IAAK,GAAG,EAAI,OAC5C,KAAM,CAAC,CAACD,GAAY,KACpB,aAAAvD,CAAA,EAEF,CAEE,MAAOL,GAAiBC,IAAqB,CAACT,GAAS,OACvD,iBAAkB,CAChB,OAAQ,GACR,KAAM,CAAC,CAACoE,GAAY,IAAA,CACtB,CACF,EAIIY,EAAYzC,EAAAA,QAAQ,IACnBgC,GAAuB,MACrBA,EAAsB,MAAM,QAASU,GAASA,EAAK,OAAS,EAAE,EAD3B,CAAA,EAEzC,CAACV,GAAuB,KAAK,CAAC,EAE3B,CAAE,WAAYW,EAAiB,mBAAAC,EAAA,EAAuBC,GAAAA,qBAAqB,CAC/E,OAAQ/E,CAAA,CACT,EAIKgF,GAAkBC,GAAAA,mBAAmBlF,EAASM,EAAY,EAI1D6E,EAAsBhD,EAAAA,QAAQ,IAC3B,OAAO,QAAQhC,CAAQ,EAC3B,OAAO,CAAC,CAAA,CAAGe,CAAU,IAAMA,CAAU,EACrC,OAAO,CAAC,CAACC,CAAE,IAAMC,EAAAA,UAAUD,CAAE,CAAC,EAC9B,IAAI,CAAC,CAACA,CAAE,IAAMA,EAAG,MAAMiE,EAAAA,YAAY,MAAM,CAAC,EAC5C,CAACjF,CAAQ,CAAC,EAGPkF,EAAkDlD,EAAAA,QAAQ,IACzDnC,GAGHU,IAAkB,CAChB,OAAQT,EACR,WAAAA,EACA,QAASJ,EAAY,OACrB,QAAAG,EACA,gBAAA8E,CAAA,CACD,GAAK,CAAA,GAGe,OAAQQ,GAAUH,EAAoB,SAASG,EAAM,KAAK,CAAC,EAZ7D,CAAA,EAapB,CACDtF,EACAC,EACA6E,EACAG,GACApF,EAAY,OACZa,EACAyE,CAAA,CACD,EAEK,CACJ,KAAM,CAAE,MAAOI,EAAa,CAAA,CAAC,EAAM,CAAA,EACnC,gBAAiBC,GACjB,QAASC,EAAA,EACPC,EAAAA,4BACF,CACE,YAAAjG,EACA,OAAQ4F,EACR,OAAQpB,EAASA,EAAO,QAAQ,IAAK,GAAG,EAAI,OAC5C,KAAM,CAAC,CAACD,GAAY,KACpB,OAAQnE,EAAY,OACpB,aAAcC,EAAc,aAC5B,UAAWoE,EACX,WAAYhE,EACZ,aAAAO,CAAA,EAEF,CACE,KAAM,CAACT,GAAW,CAACqF,EAAa,QAAU1E,CAAA,CAC5C,EAKIgF,EAAgBxD,EAAAA,QAAQ,IACxBvC,GAAS,OAAegF,EACxBxE,GAAiBC,EAAyBiB,EAC1CtB,EAAgBuF,EACbX,EACN,CACDhF,EACAQ,EACAC,EACAL,EACA4E,EACAtD,EACAiE,CAAA,CACD,EAGKK,EAAezD,EAAAA,QAAQ,IACpB,IAAI,IAAIwD,EAAc,IAAKE,GAASA,EAAK,EAAE,CAAC,EAClD,CAACF,CAAa,CAAC,EAGZ,CACJ,KAAMG,EAAa,CAAA,EACnB,QAASC,GACT,gBAAiBC,EAAA,EACfrD,EAAAA,uBACF,CACE,YAAAlD,EACA,UAAW,MAAM,KAAKmG,CAAY,EAClC,WAAY,MAAA,EAEd,CACE,KAAMA,EAAa,OAAS,GAAKpF,CAAA,CACnC,EAGIyF,GAAuBX,GAAmB,CAC1CtF,EACEsF,GAASA,KAASR,GACpBC,GAAmBO,CAAK,EAEjBf,IACTD,GAAA,CAEJ,EAIM,CAAE,SAAA4B,GAAU,iBAAAC,CAAA,EAAqBhE,EAAAA,QAAQ,IAAM,CACnD,MAAM+D,MAA4B,IAC5BC,MAAyC,IAEzCC,EAAsBP,IAA0B,CACpD,GAAGA,EACH,SAAUA,EAAK,GACf,WAAY,OACZ,MAAOC,GAAY,KAAM/C,GAASA,EAAK,KAAO8C,EAAK,EAAE,GAAG,OAAS,CAAA,CAAC,GAGpE,UAAWA,KAAQF,EAAe,CAChC,MAAMU,EAASR,EAAK,GACd5C,EAAW4C,EAAK,SAEtB,GAAIK,EAAS,IAAIG,CAAM,EAAG,CAExB,MAAMC,EAAeJ,EAAS,IAAIG,CAAM,EAClCE,EAAcH,EAAmBP,CAAI,EACrCW,EAAa,CACjB,GAAGF,EACH,GAAGC,EACH,OAAQ,CAAC,GAAID,EAAa,QAAU,CAAA,EAAK,GAAIC,EAAY,QAAU,CAAA,CAAG,CAAA,EAGxEL,EAAS,IAAIG,EAAQG,CAAU,CACjC,MACEN,EAAS,IAAIG,EAAQD,EAAmBP,CAAI,CAAC,EAG/C,GAAIM,EAAiB,IAAIlD,CAAQ,EAAG,CAGlC,MAAMwD,EAAgBN,EAAiB,IAAIlD,CAAQ,EAC9CwD,EAAc,SAASJ,CAAM,GAAGI,EAAc,KAAKJ,CAAM,CAChE,MACEF,EAAiB,IAAIlD,EAAU,CAACoD,CAAM,CAAC,CAE3C,CAEA,MAAO,CAAE,SAAAH,EAAU,iBAAAC,CAAAA,CACrB,EAAG,CAACR,EAAeG,CAAU,CAAC,EAmD9B,MAAO,CACL,WAjDwC3D,EAAAA,QAAQ,IAAM,CACtD,GAAI,CAACvC,GAAS,QAAU,CAACuG,EAAiB,KAAM,OAAOvD,EAEvD,MAAMI,MAAwB,IAG9B,UAAWC,KAAYkD,EAAiB,OACtCnD,EAAkB,IAAIC,CAAQ,EAIhC,MAAME,EAAcF,GAAqB,CACvC,MAAMZ,EAASO,EAAW,IAAIK,CAAQ,EACtC,GAAIZ,GAAUA,EAAO,SAAU,CAC7B,MAAMC,EAAWD,EAAO,SACnBW,EAAkB,IAAIV,CAAQ,IACjCU,EAAkB,IAAIV,CAAQ,EAC9Ba,EAAWb,CAAQ,EAEvB,CACF,EAEA,UAAWW,KAAYD,EACrBG,EAAWF,CAAQ,EAGrB,MAAMyD,MAAe,IACrB,SAAW,CAACvF,EAAIkB,CAAM,IAAKO,EACrBI,EAAkB,IAAI7B,CAAE,GAC1BuF,EAAS,IAAIvF,EAAIkB,CAAM,EAI3B,OAAOqE,CACT,EAAG,CAAC9D,EAAYuD,EAAkBvG,CAAO,CAAC,EAgBxC,SAAAsG,GACA,iBAAAC,EACA,aACEtF,IAAoBuD,IAAsBtC,IAAyBnB,EACrE,cAAe6D,GACf,aAAcd,GACd,cAAeuC,GACf,gBApBsB,IAAM,CAEvBnF,IAAwBC,GAAA,EACxBU,IAAqCD,GAAA,EACrCO,IAA6BC,GAAA,EAC7ByC,IAA0BC,GAAA,EAC1Bc,IAA6BC,GAAA,EAC7B/C,IAA6BD,GAAA,EAC7BuD,IAA2BD,GAAA,CAClC,CAWE,CAEJ"}