@ynput/ayon-frontend-shared 0.3.40 → 0.3.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +29 -27
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +225 -223
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +25 -16
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs15.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.cjs5.js +1 -1
  14. package/dist/_virtual/index.cjs6.js +1 -1
  15. package/dist/_virtual/index.cjs8.js +1 -1
  16. package/dist/_virtual/index.es15.js +2 -2
  17. package/dist/_virtual/index.es16.js +2 -2
  18. package/dist/_virtual/index.es17.js +2 -2
  19. package/dist/_virtual/index.es18.js +2 -2
  20. package/dist/_virtual/index.es19.js +2 -2
  21. package/dist/_virtual/index.es4.js +5 -2
  22. package/dist/_virtual/index.es4.js.map +1 -1
  23. package/dist/_virtual/index.es5.js +2 -5
  24. package/dist/_virtual/index.es5.js.map +1 -1
  25. package/dist/_virtual/index.es6.js +2 -2
  26. package/dist/_virtual/index.es8.js +2 -2
  27. package/dist/api.cjs.js +1 -1
  28. package/dist/api.es.js +227 -227
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +16 -14
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  35. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  36. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  37. package/dist/node_modules/remove-accents/index.es.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  39. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  40. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  41. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  42. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  43. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  44. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  45. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  52. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  54. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  55. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  56. package/dist/shared/src/api/generated/graphql.cjs.js +55 -79
  57. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/graphql.es.js +278 -154
  59. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/graphqlLinks.es.js +70 -19
  62. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  64. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/activities/updateActivities.es.js +40 -43
  66. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  67. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  68. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +149 -55
  70. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  71. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +105 -51
  76. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  78. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  80. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/entityLists/getLists.es.js +178 -130
  82. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  84. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +94 -40
  86. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  88. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  89. package/dist/shared/src/api/queries/folders/getFolders.es.js +109 -55
  90. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  91. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  92. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
  94. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  95. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  96. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  97. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +117 -63
  98. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  99. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  100. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/links/getLinks.es.js +108 -54
  102. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  103. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  104. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  105. package/dist/shared/src/api/queries/overview/getOverview.es.js +220 -167
  106. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  107. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  108. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
  110. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  111. package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
  112. package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
  113. package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
  114. package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
  115. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  116. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  117. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +133 -80
  118. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  119. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  120. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  121. package/dist/shared/src/api/queries/review/getReview.es.js +127 -75
  122. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  123. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  124. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  125. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +142 -90
  126. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  127. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
  128. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  129. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  130. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  131. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  132. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +537 -331
  134. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  135. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  136. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  137. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +124 -29
  138. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  139. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  140. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  141. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +140 -45
  142. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  143. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  144. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  145. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +9 -7
  146. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  147. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -4
  149. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -18
  152. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  153. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  154. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +108 -13
  156. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -3
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +119 -24
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +97 -2
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  167. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  168. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  169. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -7
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +9 -7
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  175. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  176. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -5
  177. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  178. package/dist/shared/src/components/LinksManager/LinksManager.es.js +9 -9
  179. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  180. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  181. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -7
  182. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  183. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  184. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -4
  185. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  186. package/dist/shared/src/components/Menu/Menu.es.js +7 -7
  187. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  188. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  189. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +23 -21
  190. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  191. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  192. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  193. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +57 -55
  194. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  195. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  196. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  197. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +19 -16
  198. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  199. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  200. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  201. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +10 -8
  202. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  203. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  204. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  205. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
  206. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  207. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  208. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  209. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +9 -7
  210. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  211. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  212. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  213. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -8
  214. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  215. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  216. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -7
  218. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  219. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  220. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +9 -7
  222. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  223. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  224. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  225. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +340 -354
  226. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  227. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  228. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  229. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +11 -9
  230. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  231. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  232. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  233. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +9 -7
  234. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  235. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  236. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  237. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +122 -27
  238. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  239. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  240. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  241. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +117 -22
  242. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  243. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  244. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  245. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +9 -7
  246. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  247. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  248. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  249. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +13 -11
  250. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  251. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  252. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -7
  254. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  255. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  256. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/Actions/Actions.es.js +42 -42
  258. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  259. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  260. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
  262. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  263. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
  264. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
  266. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  267. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  268. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -7
  270. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  271. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  272. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +119 -124
  274. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  276. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +9 -7
  278. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  279. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  280. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -7
  282. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  283. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  284. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +139 -128
  286. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  287. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
  288. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  291. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
  292. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
  293. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
  294. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
  295. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
  296. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
  297. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
  298. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
  299. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +13 -11
  302. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  304. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +115 -20
  306. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  307. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  308. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +9 -7
  310. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +23 -21
  314. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +9 -7
  318. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +9 -7
  322. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
  324. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
  325. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
  326. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
  327. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
  330. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +105 -10
  334. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -2
  339. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  340. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +31 -29
  342. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  343. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  344. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +9 -7
  346. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  347. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  348. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +9 -7
  350. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  351. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  352. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +9 -7
  354. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  355. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  356. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +106 -11
  358. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  359. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  360. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +122 -27
  362. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  363. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  364. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +9 -7
  366. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  367. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  368. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +91 -80
  370. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  371. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  372. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -7
  374. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  375. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  376. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +119 -24
  378. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  379. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  380. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +29 -29
  382. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  384. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +9 -7
  386. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  388. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +13 -11
  390. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  392. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +104 -9
  394. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  396. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +1 -1
  397. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  398. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +9 -7
  400. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
  402. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
  403. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
  404. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
  405. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  406. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +185 -87
  408. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  409. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  410. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +105 -10
  412. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  413. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  414. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +108 -13
  416. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  417. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  418. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ListTable/ListTable.es.js +22 -20
  420. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  421. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  422. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +9 -7
  424. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  425. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  426. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +9 -7
  428. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +622 -616
  432. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +72 -70
  436. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
  440. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +9 -7
  444. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +9 -7
  448. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +9 -7
  452. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +23 -21
  456. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +9 -7
  460. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +178 -83
  464. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +31 -29
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +24 -22
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +9 -7
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +9 -7
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +26 -24
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +9 -7
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +72 -72
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +26 -24
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +25 -23
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +9 -7
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +10 -8
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -22
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +13 -16
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +48 -42
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +38 -36
  528. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +9 -7
  532. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -8
  536. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +9 -7
  540. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +11 -9
  544. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +4 -4
  547. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +25 -23
  550. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -7
  554. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +4 -4
  557. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  558. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +175 -80
  560. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  562. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +107 -12
  564. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  565. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  566. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +42 -40
  568. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  569. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  570. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +9 -7
  572. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  573. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  574. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
  576. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  577. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  578. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +9 -7
  580. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  581. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  582. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +273 -124
  584. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  585. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
  586. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
  587. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
  588. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
  589. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  590. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  591. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +4 -2
  592. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  593. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
  594. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
  595. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +156 -0
  596. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
  597. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
  598. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
  599. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +187 -0
  600. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
  601. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
  602. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
  603. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +143 -0
  604. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
  605. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  606. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +47 -43
  608. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  609. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
  610. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  611. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +8 -13
  612. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  613. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +2 -0
  614. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +1 -0
  615. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +8 -0
  616. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +1 -0
  617. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  618. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  619. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +124 -29
  620. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  621. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  622. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +2 -2
  623. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  624. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -6
  626. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  627. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  628. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +113 -18
  630. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  631. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  632. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +158 -84
  634. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  635. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  636. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +2 -2
  637. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  639. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  640. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  641. package/dist/shared/src/context/DetailsPanelContext.es.js +64 -63
  642. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  643. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  644. package/dist/shared/src/context/PowerpackContext.es.js +2 -2
  645. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  646. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  647. package/dist/shared/src/context/ProjectContext.es.js +83 -66
  648. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  649. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  650. package/dist/shared/src/context/ProjectFoldersContext.es.js +2 -2
  651. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  652. package/dist/shared/src/context/SubtasksModulesContext.es.js +2 -2
  653. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  654. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  655. package/dist/shared/src/context/UriContext.es.js +1 -1
  656. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  657. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  658. package/dist/shared/src/context/WebsocketContext.es.js +18 -16
  659. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  660. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  661. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  662. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +2 -2
  663. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  664. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  665. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +115 -20
  666. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  667. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  668. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  669. package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
  670. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
  671. package/dist/shared/src/util/getBundleMode.es.js +118 -0
  672. package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
  673. package/dist/types/api/generated/graphql.d.ts +640 -887
  674. package/dist/types/api/generated/graphqlLinks.d.ts +190 -284
  675. package/dist/types/api/queries/activities/getActivities.d.ts +144 -137
  676. package/dist/types/api/queries/activities/updateActivities.d.ts +288 -274
  677. package/dist/types/api/queries/columnStats/columnStats.d.ts +3 -21
  678. package/dist/types/api/queries/entities/getEntity.d.ts +144 -137
  679. package/dist/types/api/queries/entities/getEntityPanel.d.ts +144 -137
  680. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
  681. package/dist/types/api/queries/entities/updateEntity.d.ts +144 -137
  682. package/dist/types/api/queries/entityLists/getLists.d.ts +1406 -1712
  683. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  684. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +66 -66
  685. package/dist/types/api/queries/overview/getOverview.d.ts +630 -623
  686. package/dist/types/api/queries/products/createProduct.d.ts +2 -2
  687. package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
  688. package/dist/types/api/queries/products/getProduct.d.ts +259 -0
  689. package/dist/types/api/queries/project/getProject.d.ts +264 -257
  690. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +192 -185
  691. package/dist/types/api/queries/users/getUsers.d.ts +177 -170
  692. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +784 -770
  693. package/dist/types/api/queries/versions/updateVersions.d.ts +106 -143
  694. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  695. package/dist/types/containers/Actions/Actions.d.ts +3 -2
  696. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
  697. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
  698. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
  699. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
  700. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
  701. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  702. package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
  703. package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -2
  704. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
  705. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  706. package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
  707. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -19
  708. package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
  709. package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
  710. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
  711. package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
  712. package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +20 -0
  713. package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
  714. package/dist/types/containers/Slicer/types.d.ts +7 -0
  715. package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +5 -3
  716. package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
  717. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  718. package/dist/types/context/DetailsPanelContext.d.ts +2 -1
  719. package/dist/types/context/ProjectContext.d.ts +2 -1
  720. package/dist/types/util/getBundleMode.d.ts +4 -0
  721. package/dist/types/util/index.d.ts +1 -0
  722. package/dist/util.cjs.js +1 -1
  723. package/dist/util.es.js +33 -30
  724. package/dist/util.es.js.map +1 -1
  725. package/package.json +3 -3
  726. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
  727. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
  728. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
  729. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
  730. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
@@ -1,6 +1,6 @@
1
1
  import "../../base/client.es.js";
2
2
  import "../../generated/graphql.es.js";
3
- import { api as n } from "../../generated/graphqlLinks.es.js";
3
+ import { api as p } from "../../generated/graphqlLinks.es.js";
4
4
  import "../../generated/access.es.js";
5
5
  import "../../generated/actions.es.js";
6
6
  import "../../generated/activityFeed.es.js";
@@ -41,66 +41,120 @@ import "../../generated/views.es.js";
41
41
  import "lodash";
42
42
  import "react-toastify";
43
43
  import "uuid";
44
+ import "../actions/getActions.es.js";
45
+ import "../activities/getActivities.es.js";
46
+ import "../activities/updateActivities.es.js";
47
+ import "../activities/updateReaction.es.js";
48
+ import "../activities/getMentions.es.js";
49
+ import "../activities/getCategories.es.js";
50
+ import "../addons/getAddons.es.js";
51
+ import "../addons/updateAddons.es.js";
52
+ import "../attributes/getAttributes.es.js";
53
+ import "../attributes/updateAttributes.es.js";
54
+ import "../authentication/getAuthentication.es.js";
55
+ import "../cloud/cloud.es.js";
56
+ import "../columnStats/metricTargets.es.js";
57
+ import "../config/getConfig.es.js";
58
+ import "../config/updateConfig.es.js";
59
+ import "../entities/getEntity.es.js";
60
+ import "../entities/getEntityPanel.es.js";
61
+ import "../overview/getOverview.es.js";
62
+ import "../overview/updateOverview.es.js";
63
+ import "../versions/getVersionsProducts.es.js";
64
+ import "./getEntityLinks.es.js";
65
+ import "../entities/updateEntity.es.js";
66
+ import "../entityLists/getLists.es.js";
67
+ import "../entityLists/updateLists.es.js";
68
+ import "../entityLists/getListsAttributes.es.js";
69
+ import "../entityLists/listItemsColumnStats.es.js";
70
+ import "../entityLists/updateListsAttributes.es.js";
71
+ import "../entityLists/listFolders.es.js";
72
+ import "../folders/getFolders.es.js";
73
+ import "../folders/getFolderDeleteInfo.es.js";
74
+ import "../grouping/getGrouping.es.js";
75
+ import "./updateLinks.es.js";
76
+ import "../permissions/getPermissions.es.js";
77
+ import "../products/createProduct.es.js";
78
+ import "../products/getFolderProducts.es.js";
79
+ import "../project/getProject.es.js";
80
+ import "../project/updateProject.es.js";
81
+ import "../projectFolders/projectFolders.es.js";
82
+ import "../review/getReview.es.js";
83
+ import "../review/updateReview.es.js";
84
+ import "../share/share.es.js";
85
+ import "../system/getSystem.es.js";
86
+ import "../tasks/getTasks.es.js";
87
+ import "../tasks/updateTasks.es.js";
88
+ import "../teams/getTeams.es.js";
89
+ import "../userDashboard/getUserDashboard.es.js";
90
+ import "../users/getUsers.es.js";
91
+ import "../users/updateUsers.es.js";
92
+ import "../users/guests.es.js";
93
+ import "../versions/updateVersions.es.js";
94
+ import "../views/getViews.es.js";
95
+ import "../views/updateViews.es.js";
96
+ import "../watchers/getWatchers.es.js";
97
+ import "../uris/getUris.es.js";
44
98
  import T from "../../../util/pubsub.es.js";
45
- const E = 50, N = n.injectEndpoints({
99
+ const E = 50, N = p.injectEndpoints({
46
100
  endpoints: (I) => ({
47
101
  getSearchedEntitiesLinks: I.infiniteQuery({
48
102
  infiniteQueryOptions: {
49
103
  initialPageParam: { cursor: "" },
50
- getNextPageParam: (d, l, r) => {
51
- const t = d.pageInfo;
52
- if (!(!t.hasNextPage || !t.endCursor))
53
- return { cursor: t.endCursor };
104
+ getNextPageParam: (c, l, r) => {
105
+ const e = c.pageInfo;
106
+ if (!(!e.hasNextPage || !e.endCursor))
107
+ return { cursor: e.endCursor };
54
108
  }
55
109
  },
56
110
  providesTags: [{ type: "linkSearchItem", id: "LIST" }],
57
- queryFn: async ({ queryArg: d, pageParam: l }, r) => {
111
+ queryFn: async ({ queryArg: c, pageParam: l }, r) => {
58
112
  try {
59
- const { projectName: t, entityType: i, search: f, parentIds: h } = d, { cursor: o } = l, e = {
60
- projectName: t,
113
+ const { projectName: e, entityType: i, search: f, parentIds: h } = c, { cursor: a } = l, t = {
114
+ projectName: e,
61
115
  first: E
62
116
  };
63
- o && (e.after = o), e.search = f || "", e.parentIds = h;
64
- let a;
117
+ a && (t.after = a), t.search = f || "", t.parentIds = h;
118
+ let o;
65
119
  switch (i) {
66
120
  case "folder":
67
- a = await r.dispatch(
68
- n.endpoints.GetSearchedFolders.initiate(e, {
121
+ o = await r.dispatch(
122
+ p.endpoints.GetSearchedFolders.initiate(t, {
69
123
  forceRefetch: !0
70
124
  })
71
125
  ).unwrap();
72
126
  break;
73
127
  case "product":
74
- a = await r.dispatch(
75
- n.endpoints.GetSearchedProducts.initiate(e, {
128
+ o = await r.dispatch(
129
+ p.endpoints.GetSearchedProducts.initiate(t, {
76
130
  forceRefetch: !0
77
131
  })
78
132
  ).unwrap();
79
133
  break;
80
134
  case "task":
81
- a = await r.dispatch(
82
- n.endpoints.GetSearchedTasks.initiate(e, {
135
+ o = await r.dispatch(
136
+ p.endpoints.GetSearchedTasks.initiate(t, {
83
137
  forceRefetch: !0
84
138
  })
85
139
  ).unwrap();
86
140
  break;
87
141
  case "version":
88
- a = await r.dispatch(
89
- n.endpoints.GetSearchedVersions.initiate(e, {
142
+ o = await r.dispatch(
143
+ p.endpoints.GetSearchedVersions.initiate(t, {
90
144
  forceRefetch: !0
91
145
  })
92
146
  ).unwrap();
93
147
  break;
94
148
  case "representation":
95
- a = await r.dispatch(
96
- n.endpoints.GetSearchedRepresentations.initiate(e, {
149
+ o = await r.dispatch(
150
+ p.endpoints.GetSearchedRepresentations.initiate(t, {
97
151
  forceRefetch: !0
98
152
  })
99
153
  ).unwrap();
100
154
  break;
101
155
  case "workfile":
102
- a = await r.dispatch(
103
- n.endpoints.GetSearchedWorkfiles.initiate(e, {
156
+ o = await r.dispatch(
157
+ p.endpoints.GetSearchedWorkfiles.initiate(t, {
104
158
  forceRefetch: !0
105
159
  })
106
160
  ).unwrap();
@@ -108,43 +162,43 @@ const E = 50, N = n.injectEndpoints({
108
162
  default:
109
163
  throw new Error(`Unsupported entity type: ${i}`);
110
164
  }
111
- const k = a.project;
165
+ const k = o.project;
112
166
  if (!k)
113
167
  throw new Error("No project data returned");
114
- const w = k[i + "s"], S = w?.edges?.map(({ node: s }) => {
168
+ const w = k[i + "s"], S = w?.edges?.map(({ node: n }) => {
115
169
  switch (i) {
116
170
  case "task":
117
- const p = s;
171
+ const s = n;
118
172
  return {
119
173
  entityType: "task",
120
- id: p.id,
121
- name: p.name,
122
- label: p.label || p.name,
123
- parents: p.parents || [],
124
- subType: p.subType
174
+ id: s.id,
175
+ name: s.name,
176
+ label: s.label || s.name,
177
+ parents: s.parents || [],
178
+ subType: s.subType
125
179
  };
126
180
  case "folder":
127
- const c = s;
181
+ const m = n;
128
182
  return {
129
183
  entityType: "folder",
130
- id: c.id,
131
- name: c.name,
132
- label: c.label || c.name,
133
- parents: c.parents || [],
134
- subType: c.subType
135
- };
136
- case "product":
137
- const m = s;
138
- return {
139
- entityType: "product",
140
184
  id: m.id,
141
185
  name: m.name,
142
- label: m.name,
186
+ label: m.label || m.name,
143
187
  parents: m.parents || [],
144
188
  subType: m.subType
145
189
  };
190
+ case "product":
191
+ const d = n;
192
+ return {
193
+ entityType: "product",
194
+ id: d.id,
195
+ name: d.name,
196
+ label: d.name,
197
+ parents: d.parents || [],
198
+ subType: d.subType
199
+ };
146
200
  case "version":
147
- const u = s;
201
+ const u = n;
148
202
  return {
149
203
  entityType: "version",
150
204
  id: u.id,
@@ -154,7 +208,7 @@ const E = 50, N = n.injectEndpoints({
154
208
  hasReviewables: u.hasReviewables
155
209
  };
156
210
  case "representation":
157
- const y = s;
211
+ const y = n;
158
212
  return {
159
213
  entityType: "representation",
160
214
  id: y.id,
@@ -163,7 +217,7 @@ const E = 50, N = n.injectEndpoints({
163
217
  parents: y.parents || []
164
218
  };
165
219
  case "workfile":
166
- const b = s;
220
+ const b = n;
167
221
  return {
168
222
  entityType: "workfile",
169
223
  id: b.id,
@@ -183,20 +237,20 @@ const E = 50, N = n.injectEndpoints({
183
237
  entities: S
184
238
  }
185
239
  };
186
- } catch (t) {
187
- return console.error("Error in getSearchedEntitiesLinks queryFn:", t), { error: { status: "FETCH_ERROR", error: t.message } };
240
+ } catch (e) {
241
+ return console.error("Error in getSearchedEntitiesLinks queryFn:", e), { error: { status: "FETCH_ERROR", error: e.message } };
188
242
  }
189
243
  },
190
244
  // Subscribe to link.created and link.deleted WebSocket events
191
- async onCacheEntryAdded({ projectName: d }, { cacheDataLoaded: l, cacheEntryRemoved: r, dispatch: t }) {
245
+ async onCacheEntryAdded({ projectName: c }, { cacheDataLoaded: l, cacheEntryRemoved: r, dispatch: e }) {
192
246
  let i;
193
247
  try {
194
248
  await l;
195
- const f = async (h, o) => {
196
- if (!h.startsWith("link.created") && !h.startsWith("link.deleted") || o?.project !== d) return;
197
- const e = o?.summary?.inputId, a = o?.summary?.outputId;
198
- !e && !a || t(
199
- n.util.invalidateTags([{ type: "linkSearchItem", id: "LIST" }])
249
+ const f = async (h, a) => {
250
+ if (!h.startsWith("link.created") && !h.startsWith("link.deleted") || a?.project !== c) return;
251
+ const t = a?.summary?.inputId, o = a?.summary?.outputId;
252
+ !t && !o || e(
253
+ p.util.invalidateTags([{ type: "linkSearchItem", id: "LIST" }])
200
254
  );
201
255
  };
202
256
  i = T.subscribe("link", f);
@@ -1 +1 @@
1
- {"version":3,"file":"getLinks.es.js","sources":["../../../../../../src/api/queries/links/getLinks.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n GetSearchedFoldersQuery,\n GetSearchedProductsQuery,\n GetSearchedRepresentationsQuery,\n GetSearchedTasksQuery,\n GetSearchedVersionsQuery,\n GetSearchedWorkfilesQuery,\n gqlLinksApi,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nexport const ENTITIES_INFINITE_QUERY_COUNT = 50 // Number of items to fetch per page\n\n// Define page param type for infinite query\ntype EntitySearchPageParam = {\n cursor: string\n}\n\nexport type SearchEntityLink = {\n id: string\n name: string\n entityType: string\n parents: string[]\n label: string\n icon: string | undefined\n subType: string | undefined\n hasReviewables?: boolean\n}\n\nexport type GetSearchedEntitiesLinksResult = {\n pageInfo: any\n entities: SearchEntityLink[]\n}\n\nexport type GetSearchedEntitiesLinksArgs = {\n projectName: string\n entityType: string // 'folder' | 'product' | 'version' | 'task' | 'representation' | 'workfile'\n search?: string\n parentIds?: string[] // Optional parent IDs to filter entities\n sortBy?: string\n}\n\ntype GetSearchedEntity =\n | GetSearchedTasksQuery\n | GetSearchedFoldersQuery\n | GetSearchedProductsQuery\n | GetSearchedVersionsQuery\n | GetSearchedRepresentationsQuery\n | GetSearchedWorkfilesQuery\ntype SearchedTaskNode = GetSearchedTasksQuery['project']['tasks']['edges'][0]['node']\ntype SearchedFolderNode = GetSearchedFoldersQuery['project']['folders']['edges'][0]['node']\ntype SearchedProductNode = GetSearchedProductsQuery['project']['products']['edges'][0]['node']\ntype SearchedVersionNode = GetSearchedVersionsQuery['project']['versions']['edges'][0]['node']\ntype SearchedRepresentationNode =\n GetSearchedRepresentationsQuery['project']['representations']['edges'][0]['node']\ntype SearchedWorkfileNode = GetSearchedWorkfilesQuery['project']['workfiles']['edges'][0]['node']\n\nconst injectedQueries = gqlLinksApi.injectEndpoints({\n endpoints: (build) => ({\n getSearchedEntitiesLinks: build.infiniteQuery<\n GetSearchedEntitiesLinksResult,\n GetSearchedEntitiesLinksArgs,\n EntitySearchPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage, _allPages, lastPageParam) => {\n const pageInfo = lastPage.pageInfo\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n return { cursor: pageInfo.endCursor }\n },\n },\n providesTags: [{ type: 'linkSearchItem', id: 'LIST' }],\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, entityType, search, parentIds } = queryArg\n const { cursor } = pageParam\n\n // Build query variables\n const variables: any = {\n projectName,\n first: ENTITIES_INFINITE_QUERY_COUNT,\n }\n\n // Add cursor-based pagination\n if (cursor) {\n variables.after = cursor\n }\n\n variables.search = search || ''\n variables.parentIds = parentIds\n\n let result: GetSearchedEntity\n // Use the appropriate generated query based on entity type\n switch (entityType) {\n case 'folder':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedFolders.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'product':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedProducts.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'task':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedTasks.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'version':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedVersions.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'representation':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedRepresentations.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'workfile':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedWorkfiles.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n default:\n throw new Error(`Unsupported entity type: ${entityType}`)\n }\n\n const projectData = result.project\n if (!projectData) {\n throw new Error('No project data returned')\n }\n\n // @ts-expect-error - TypeScript doesn't know the structure of projectData\n const entityData = projectData[entityType + 's']\n\n // Transform entity data to search link format\n const entities: SearchEntityLink[] = entityData?.edges\n ?.map(({ node }: any) => {\n switch (entityType) {\n case 'task':\n const taskNode = node as SearchedTaskNode\n return {\n entityType: 'task',\n id: taskNode.id,\n name: taskNode.name,\n label: taskNode.label || taskNode.name,\n parents: taskNode.parents || [],\n subType: taskNode.subType,\n }\n case 'folder':\n const folderNode = node as SearchedFolderNode\n return {\n entityType: 'folder',\n id: folderNode.id,\n name: folderNode.name,\n label: folderNode.label || folderNode.name,\n parents: folderNode.parents || [],\n subType: folderNode.subType,\n }\n case 'product':\n const productNode = node as SearchedProductNode\n return {\n entityType: 'product',\n id: productNode.id,\n name: productNode.name,\n label: productNode.name,\n parents: productNode.parents || [],\n subType: productNode.subType,\n }\n case 'version':\n const versionNode = node as SearchedVersionNode\n return {\n entityType: 'version',\n id: versionNode.id,\n name: versionNode.name,\n label: versionNode.name,\n parents: versionNode.parents || [],\n hasReviewables: versionNode.hasReviewables,\n }\n case 'representation':\n const representationNode = node as SearchedRepresentationNode\n return {\n entityType: 'representation',\n id: representationNode.id,\n name: representationNode.name,\n label: representationNode.name,\n parents: representationNode.parents || [],\n }\n case 'workfile':\n const workfileNode = node as SearchedWorkfileNode\n return {\n entityType: 'workfile',\n id: workfileNode.id,\n name: workfileNode.name,\n label: workfileNode.name,\n parents: workfileNode.parents || [],\n }\n default:\n return null\n }\n })\n .filter(Boolean) as SearchEntityLink[] // Remove nulls, ensure correct type\n\n if (!entityData) {\n throw new Error(`No ${entityType} data returned`)\n }\n\n return {\n data: {\n pageInfo: entityData.pageInfo,\n entities: entities,\n },\n }\n } catch (error: any) {\n console.error('Error in getSearchedEntitiesLinks queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n // Subscribe to link.created and link.deleted WebSocket events\n async onCacheEntryAdded(\n { projectName },\n { cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token: any\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n // Only react to link.created and link.deleted events for this project\n if (!_topic.startsWith('link.created') && !_topic.startsWith('link.deleted')) return\n if (message?.project !== projectName) return\n\n // Link events have inputId and outputId in the summary\n const inputId = message?.summary?.inputId\n const outputId = message?.summary?.outputId\n if (!inputId && !outputId) return\n\n // Invalidate the search query cache when a link is created or deleted\n // This ensures the search results are fresh and don't show stale data\n dispatch(\n gqlLinksApi.util.invalidateTags([{ type: 'linkSearchItem', id: 'LIST' }]),\n )\n }\n\n // Subscribe to link events\n // NOTE: backend emits topics like 'link.created' and 'link.deleted'.\n // PubSub supports prefix matching when subscribing.\n token = PubSub.subscribe('link', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n }),\n})\n\nexport const { useGetSearchedEntitiesLinksInfiniteQuery } = injectedQueries\n"],"names":["ENTITIES_INFINITE_QUERY_COUNT","injectedQueries","gqlLinksApi","build","lastPage","_allPages","lastPageParam","pageInfo","queryArg","pageParam","api","projectName","entityType","search","parentIds","cursor","variables","result","projectData","entityData","entities","node","taskNode","folderNode","productNode","versionNode","representationNode","workfileNode","error","cacheDataLoaded","cacheEntryRemoved","dispatch","token","handlePubSub","_topic","message","inputId","outputId","PubSub","useGetSearchedEntitiesLinksInfiniteQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getLinks.es.js","sources":["../../../../../../src/api/queries/links/getLinks.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n GetSearchedFoldersQuery,\n GetSearchedProductsQuery,\n GetSearchedRepresentationsQuery,\n GetSearchedTasksQuery,\n GetSearchedVersionsQuery,\n GetSearchedWorkfilesQuery,\n gqlLinksApi,\n} from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nexport const ENTITIES_INFINITE_QUERY_COUNT = 50 // Number of items to fetch per page\n\n// Define page param type for infinite query\ntype EntitySearchPageParam = {\n cursor: string\n}\n\nexport type SearchEntityLink = {\n id: string\n name: string\n entityType: string\n parents: string[]\n label: string\n icon: string | undefined\n subType: string | undefined\n hasReviewables?: boolean\n}\n\nexport type GetSearchedEntitiesLinksResult = {\n pageInfo: any\n entities: SearchEntityLink[]\n}\n\nexport type GetSearchedEntitiesLinksArgs = {\n projectName: string\n entityType: string // 'folder' | 'product' | 'version' | 'task' | 'representation' | 'workfile'\n search?: string\n parentIds?: string[] // Optional parent IDs to filter entities\n sortBy?: string\n}\n\ntype GetSearchedEntity =\n | GetSearchedTasksQuery\n | GetSearchedFoldersQuery\n | GetSearchedProductsQuery\n | GetSearchedVersionsQuery\n | GetSearchedRepresentationsQuery\n | GetSearchedWorkfilesQuery\ntype SearchedTaskNode = GetSearchedTasksQuery['project']['tasks']['edges'][0]['node']\ntype SearchedFolderNode = GetSearchedFoldersQuery['project']['folders']['edges'][0]['node']\ntype SearchedProductNode = GetSearchedProductsQuery['project']['products']['edges'][0]['node']\ntype SearchedVersionNode = GetSearchedVersionsQuery['project']['versions']['edges'][0]['node']\ntype SearchedRepresentationNode =\n GetSearchedRepresentationsQuery['project']['representations']['edges'][0]['node']\ntype SearchedWorkfileNode = GetSearchedWorkfilesQuery['project']['workfiles']['edges'][0]['node']\n\nconst injectedQueries = gqlLinksApi.injectEndpoints({\n endpoints: (build) => ({\n getSearchedEntitiesLinks: build.infiniteQuery<\n GetSearchedEntitiesLinksResult,\n GetSearchedEntitiesLinksArgs,\n EntitySearchPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage, _allPages, lastPageParam) => {\n const pageInfo = lastPage.pageInfo\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n return { cursor: pageInfo.endCursor }\n },\n },\n providesTags: [{ type: 'linkSearchItem', id: 'LIST' }],\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, entityType, search, parentIds } = queryArg\n const { cursor } = pageParam\n\n // Build query variables\n const variables: any = {\n projectName,\n first: ENTITIES_INFINITE_QUERY_COUNT,\n }\n\n // Add cursor-based pagination\n if (cursor) {\n variables.after = cursor\n }\n\n variables.search = search || ''\n variables.parentIds = parentIds\n\n let result: GetSearchedEntity\n // Use the appropriate generated query based on entity type\n switch (entityType) {\n case 'folder':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedFolders.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'product':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedProducts.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'task':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedTasks.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'version':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedVersions.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'representation':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedRepresentations.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n case 'workfile':\n result = await api\n .dispatch(\n gqlLinksApi.endpoints.GetSearchedWorkfiles.initiate(variables, {\n forceRefetch: true,\n }),\n )\n .unwrap()\n break\n default:\n throw new Error(`Unsupported entity type: ${entityType}`)\n }\n\n const projectData = result.project\n if (!projectData) {\n throw new Error('No project data returned')\n }\n\n // @ts-expect-error - TypeScript doesn't know the structure of projectData\n const entityData = projectData[entityType + 's']\n\n // Transform entity data to search link format\n const entities: SearchEntityLink[] = entityData?.edges\n ?.map(({ node }: any) => {\n switch (entityType) {\n case 'task':\n const taskNode = node as SearchedTaskNode\n return {\n entityType: 'task',\n id: taskNode.id,\n name: taskNode.name,\n label: taskNode.label || taskNode.name,\n parents: taskNode.parents || [],\n subType: taskNode.subType,\n }\n case 'folder':\n const folderNode = node as SearchedFolderNode\n return {\n entityType: 'folder',\n id: folderNode.id,\n name: folderNode.name,\n label: folderNode.label || folderNode.name,\n parents: folderNode.parents || [],\n subType: folderNode.subType,\n }\n case 'product':\n const productNode = node as SearchedProductNode\n return {\n entityType: 'product',\n id: productNode.id,\n name: productNode.name,\n label: productNode.name,\n parents: productNode.parents || [],\n subType: productNode.subType,\n }\n case 'version':\n const versionNode = node as SearchedVersionNode\n return {\n entityType: 'version',\n id: versionNode.id,\n name: versionNode.name,\n label: versionNode.name,\n parents: versionNode.parents || [],\n hasReviewables: versionNode.hasReviewables,\n }\n case 'representation':\n const representationNode = node as SearchedRepresentationNode\n return {\n entityType: 'representation',\n id: representationNode.id,\n name: representationNode.name,\n label: representationNode.name,\n parents: representationNode.parents || [],\n }\n case 'workfile':\n const workfileNode = node as SearchedWorkfileNode\n return {\n entityType: 'workfile',\n id: workfileNode.id,\n name: workfileNode.name,\n label: workfileNode.name,\n parents: workfileNode.parents || [],\n }\n default:\n return null\n }\n })\n .filter(Boolean) as SearchEntityLink[] // Remove nulls, ensure correct type\n\n if (!entityData) {\n throw new Error(`No ${entityType} data returned`)\n }\n\n return {\n data: {\n pageInfo: entityData.pageInfo,\n entities: entities,\n },\n }\n } catch (error: any) {\n console.error('Error in getSearchedEntitiesLinks queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n // Subscribe to link.created and link.deleted WebSocket events\n async onCacheEntryAdded(\n { projectName },\n { cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token: any\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = async (_topic: string, message: any) => {\n // Only react to link.created and link.deleted events for this project\n if (!_topic.startsWith('link.created') && !_topic.startsWith('link.deleted')) return\n if (message?.project !== projectName) return\n\n // Link events have inputId and outputId in the summary\n const inputId = message?.summary?.inputId\n const outputId = message?.summary?.outputId\n if (!inputId && !outputId) return\n\n // Invalidate the search query cache when a link is created or deleted\n // This ensures the search results are fresh and don't show stale data\n dispatch(\n gqlLinksApi.util.invalidateTags([{ type: 'linkSearchItem', id: 'LIST' }]),\n )\n }\n\n // Subscribe to link events\n // NOTE: backend emits topics like 'link.created' and 'link.deleted'.\n // PubSub supports prefix matching when subscribing.\n token = PubSub.subscribe('link', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n },\n }),\n }),\n})\n\nexport const { useGetSearchedEntitiesLinksInfiniteQuery } = injectedQueries\n"],"names":["ENTITIES_INFINITE_QUERY_COUNT","injectedQueries","gqlLinksApi","build","lastPage","_allPages","lastPageParam","pageInfo","queryArg","pageParam","api","projectName","entityType","search","parentIds","cursor","variables","result","projectData","entityData","entities","node","taskNode","folderNode","productNode","versionNode","representationNode","workfileNode","error","cacheDataLoaded","cacheEntryRemoved","dispatch","token","handlePubSub","_topic","message","inputId","outputId","PubSub","useGetSearchedEntitiesLinksInfiniteQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const L=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const O=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const E=require("../../../util/thumbnailWebsocket.cjs.js"),_=require("../../../util/pubsub.cjs.js"),A=require("../columnStats/columnStats.cjs.js"),N=require("../columnStats/metricTargets.cjs.js"),x=t=>{try{return JSON.parse(t)}catch{return{}}},G=t=>{if(!t.project)return[];const e=[];for(const{node:s}of t.project.tasks.edges)e.push({...s,folderId:s.folderId||"root",attrib:x(s.allAttrib),entityId:s.id,entityType:"task",links:[]});return e},C=(t=[],e,s)=>{const a=t?.map(l=>({type:"overviewTask",id:l.id}))||[],i=s?(Array.isArray(s)?s:[s]).map(l=>({type:"overviewTask",id:l})):[];return[...a,...i,{type:"overviewTask",id:e},{type:"overviewTask",id:"LIST"}]},w=L.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:G,providesTags:(t,e,{parentIds:s,projectName:a})=>C(t,a,s)},GetTasksList:{transformResponse:t=>({tasks:G(t),pageInfo:t.project.tasks.pageInfo}),providesTags:(t,e,{projectName:s})=>C(t?.tasks||[],s)},GetFolderColumnStats:{transformResponse:t=>A.normalizeFieldStats(t?.project?.folders?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:t,...e}})=>e,merge:(t,e)=>A.mergeFieldStats(e,t),forceRefetch:({currentArg:t,previousArg:e})=>N.hasNewTargetFields(t,e),providesTags:(t,e,{projectName:s})=>[{type:"folderColumnStats",id:s}]},GetTaskColumnStats:{transformResponse:t=>A.normalizeFieldStats(t?.project?.tasks?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:t,...e}})=>e,merge:(t,e)=>A.mergeFieldStats(e,t),forceRefetch:({currentArg:t,previousArg:e})=>N.hasNewTargetFields(t,e),providesTags:(t,e,{projectName:s})=>[{type:"taskColumnStats",id:s}]}}}),B=O.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),P=100,Q=w.injectEndpoints({endpoints:t=>({getOverviewTasksByFolders:t.query({async queryFn({projectName:e,parentIds:s,filter:a,folderFilter:i,search:l,showComments:q},{dispatch:g,forced:v}){try{const h=[];for(let d=0;d<s.length;d+=20){const S=s.slice(d,d+20),n=(await Promise.all(S.map(async r=>g(w.endpoints.GetTasksByParent.initiate({projectName:e,parentIds:[r],filter:a,folderFilter:i,search:l,showComments:!!q},{forceRefetch:v}))))).filter(r=>!!r.data).flatMap(r=>r.data);h.push(...n)}return{data:h}}catch(b){return console.error(b),{error:{status:"FETCH_ERROR",error:b.message}}}},serializeQueryArgs:({queryArgs:{parentIds:e,...s}})=>({...s}),forceRefetch({currentArg:e,previousArg:s}){return JSON.stringify(e)!==JSON.stringify(s)},providesTags:(e,s,{parentIds:a,projectName:i})=>C(e,i,a),async onCacheEntryAdded({projectName:e,parentIds:s,filter:a,search:i,showComments:l},{cacheDataLoaded:q,cacheEntryRemoved:g,updateCachedData:v,dispatch:b}){let h;const d=new Set,S=100,I=500;let n=!1;const r=()=>{n||(n=!0,setTimeout(m,I))},m=async()=>{if(n=!1,!d.size)return;const u=Array.from(d).slice(0,S);u.forEach(o=>d.delete(o));try{const f=(await b(w.endpoints.GetTasksList.initiate({projectName:e,taskIds:u,showComments:!!l},{forceRefetch:!0})).unwrap()).tasks||[],p=new Map(f.map(c=>[c.id,c]));v(c=>{for(const k of f){const F=c.findIndex(T=>T.id===k.id);F>-1?c[F]=k:c.push(k)}for(const k of u)if(!p.has(k)){const F=c.findIndex(T=>T.id===k);F>-1&&c.splice(F,1)}})}catch(o){console.error("Realtime overview batch update failed",o)}finally{d.size&&r()}};let y;try{await q,y=E.subscribeToThumbnailUpdates(o=>{v(f=>{o.forEach(p=>{if(p.summary.entityType==="task"&&p.summary.thumbnailHash){const c=f.findIndex(k=>k.id===p.summary.entityId);c>-1&&(f[c].thumbnailHash=p.summary.thumbnailHash)}})})},["task"]);const u=async(o,f)=>{const p=f?.summary?.entityId,c=f?.summary?.parentId;!p||!c||s.includes(c)&&(d.add(p),r())};h=_.subscribe("entity.task",u)}catch{}await g,h&&_.unsubscribe(h),y&&y()}}),getSearchFolders:t.query({async queryFn({projectName:e,folderSearchRequest:s},{dispatch:a}){try{return{data:(await a(B.endpoints.searchFolders.initiate({projectName:e,folderSearchRequest:s}))).data?.folderIds||[]}}catch(i){return console.error(i),{error:{status:"FETCH_ERROR",error:i.message}}}},providesTags:(e,s,{projectName:a})=>[{type:"tasksFolder",id:a}]}),getTasksListInfinite:t.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,s,a,i)=>{const l=e.pageInfo;if(!(!(a.desc?l.hasPreviousPage:l.hasNextPage)||!l.endCursor))return{cursor:l.endCursor,desc:a.desc}}},queryFn:async({queryArg:e,pageParam:s},a)=>{try{const{projectName:i,filter:l,folderFilter:q,search:g,folderIds:v,taskIds:b,sortBy:h,desc:d,showComments:S}=e,{cursor:I}=s,n={projectName:i,filter:l,folderFilter:q,search:g,folderIds:v,taskIds:b,showComments:!!S};h?(n.sortBy=h,d?(n.before=I||void 0,n.last=P):(n.after=I||void 0,n.first=P)):(n.after=I||void 0,n.first=P);const r=await a.dispatch(w.endpoints.GetTasksList.initiate(n,{forceRefetch:!0}));if(r.error)throw r.error;const m={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:r.data||m}}catch(i){return console.error("Error in getTasksListInfinite queryFn:",i),{error:{status:"FETCH_ERROR",error:i.message}}}},providesTags:(e,s,{projectName:a})=>C(e?.pages.flatMap(i=>i.tasks)||[],a),async onCacheEntryAdded(e,{cacheDataLoaded:s,cacheEntryRemoved:a,updateCachedData:i,dispatch:l}){let q;const g=new Set,v=100,b=500;let h=!1;const d=()=>{h||(h=!0,setTimeout(S,b))},S=async()=>{if(h=!1,!g.size)return;const n=Array.from(g).slice(0,v);n.forEach(r=>g.delete(r));try{const m=(await l(w.endpoints.GetTasksList.initiate({projectName:e.projectName,taskIds:n,folderIds:e.folderIds,showComments:!!e.showComments},{forceRefetch:!0})).unwrap()).tasks||[],y=new Map(m.map(u=>[u.id,u]));i(u=>{for(const o of m){let f=!1;for(const p of u.pages){const c=p.tasks.findIndex(k=>k.id===o.id);if(c!==-1){p.tasks[c]=o,f=!0;break}}f||(u.pages.length?u.pages[0].tasks.unshift(o):u.pages.push({tasks:[o],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const o of n)if(!y.has(o))for(const f of u.pages){const p=f.tasks.findIndex(c=>c.id===o);if(p!==-1){f.tasks.splice(p,1);break}}})}catch(r){console.error("Realtime infinite tasks batch update failed",r)}finally{g.size&&d()}};let I;try{await s,I=E.subscribeToThumbnailUpdates(r=>{i(m=>{r.forEach(y=>{if(y.summary.entityType==="task"&&y.summary.thumbnailHash)for(const u of m.pages){const o=u.tasks.findIndex(f=>f.id===y.summary.entityId);if(o>-1){u.tasks[o].thumbnailHash=y.summary.thumbnailHash;break}}})})},["task"]);const n=async(r,m)=>{const y=m?.summary?.entityId;y&&(g.add(y),d())};q=_.subscribe("entity.task",n)}catch{}await a,q&&_.unsubscribe(q),I&&I()}}),getGroupedTasksList:t.query({queryFn:async({projectName:e,groups:s,search:a,folderFilter:i,folderIds:l,desc:q,sortBy:g,groupCount:v,showComments:b},h)=>{try{let d=[];const S=new Set(["folderType"]);for(const r of s){const m=v||r.count||500;let y=r.filter,u=i;if(r.filter)try{const p=JSON.parse(r.filter),c=p.conditions||[],k=c.filter(T=>!S.has(T.key)),F=c.filter(T=>S.has(T.key));if(F.length>0){y=k.length?JSON.stringify({...p,conditions:k}):void 0;const T=i?JSON.parse(i):null,R=[...T&&Array.isArray(T.conditions)?T.conditions:[],...F];u=JSON.stringify(T?{...T,conditions:R}:{conditions:R})}}catch{}const o={projectName:e,filter:y,folderFilter:u,search:a,folderIds:l,sortBy:g,showComments:!!b,group:r.value};q?o.last=m:o.first=m;const f=h.dispatch(w.endpoints.GetTasksList.initiate(o,{forceRefetch:!0}));d.push(f)}const I=await Promise.all(d),n=[];for(const r of I){if(r.error)throw r.error;const m=r.originalArgs?.group,y=r.data?.pageInfo?.hasNextPage||r.data?.pageInfo?.hasPreviousPage||!1,u=r.data?.tasks.map((o,f,p)=>({...o,groups:[{value:m,hasNextPage:f===p.length-1&&y?m:void 0}]}))||[];n.push(...u)}return{data:{tasks:n}}}catch(d){return console.error("Error in getGroupedTasksList queryFn:",d),{error:{status:"FETCH_ERROR",error:d.message}}}},providesTags:(e,s,{projectName:a})=>C(e?.tasks,a)})})}),{useGetOverviewTasksByFoldersQuery:H,useGetSearchFoldersQuery:j,useGetTasksListQuery:z,useGetTasksListInfiniteInfiniteQuery:M,useLazyGetTasksByParentQuery:J,useGetGroupedTasksListQuery:U,useGetFolderColumnStatsQuery:K,useGetTaskColumnStatsQuery:V}=Q;exports.TASKS_INFINITE_QUERY_COUNT=P;exports.default=Q;exports.parseAllAttribs=x;exports.useGetFolderColumnStatsQuery=K;exports.useGetGroupedTasksListQuery=U;exports.useGetOverviewTasksByFoldersQuery=H;exports.useGetSearchFoldersQuery=j;exports.useGetTaskColumnStatsQuery=V;exports.useGetTasksListInfiniteInfiniteQuery=M;exports.useGetTasksListQuery=z;exports.useLazyGetTasksByParentQuery=J;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("../../base/client.cjs.js");const L=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const O=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const E=require("../../../util/thumbnailWebsocket.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.cjs.js");require("../activities/updateActivities.cjs.js");require("../activities/updateReaction.cjs.js");require("../activities/getMentions.cjs.js");require("../activities/getCategories.cjs.js");require("../addons/getAddons.cjs.js");require("../addons/updateAddons.cjs.js");require("../attributes/getAttributes.cjs.js");require("../attributes/updateAttributes.cjs.js");require("../authentication/getAuthentication.cjs.js");require("../cloud/cloud.cjs.js");const _=require("../columnStats/columnStats.cjs.js"),N=require("../columnStats/metricTargets.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.cjs.js");require("./updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../links/getEntityLinks.cjs.js");require("../entities/updateEntity.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/listItemsColumnStats.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../folders/getFolderDeleteInfo.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../products/getFolderProducts.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../projectFolders/projectFolders.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");require("../tasks/getTasks.cjs.js");require("../tasks/updateTasks.cjs.js");require("../teams/getTeams.cjs.js");require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const A=require("../../../util/pubsub.cjs.js"),x=s=>{try{return JSON.parse(s)}catch{return{}}},G=s=>{if(!s.project)return[];const e=[];for(const{node:r}of s.project.tasks.edges)e.push({...r,folderId:r.folderId||"root",attrib:x(r.allAttrib),entityId:r.id,entityType:"task",links:[]});return e},C=(s=[],e,r)=>{const i=s?.map(l=>({type:"overviewTask",id:l.id}))||[],a=r?(Array.isArray(r)?r:[r]).map(l=>({type:"overviewTask",id:l})):[];return[...i,...a,{type:"overviewTask",id:e},{type:"overviewTask",id:"LIST"}]},w=L.api.enhanceEndpoints({endpoints:{GetTasksByParent:{transformResponse:G,providesTags:(s,e,{parentIds:r,projectName:i})=>C(s,i,r)},GetTasksList:{transformResponse:s=>({tasks:G(s),pageInfo:s.project.tasks.pageInfo}),providesTags:(s,e,{projectName:r})=>C(s?.tasks||[],r)},GetFolderColumnStats:{transformResponse:s=>_.normalizeFieldStats(s?.project?.folders?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:s,...e}})=>e,merge:(s,e)=>_.mergeFieldStats(e,s),forceRefetch:({currentArg:s,previousArg:e})=>N.hasNewTargetFields(s,e),providesTags:(s,e,{projectName:r})=>[{type:"folderColumnStats",id:r}]},GetTaskColumnStats:{transformResponse:s=>_.normalizeFieldStats(s?.project?.tasks?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:s,...e}})=>e,merge:(s,e)=>_.mergeFieldStats(e,s),forceRefetch:({currentArg:s,previousArg:e})=>N.hasNewTargetFields(s,e),providesTags:(s,e,{projectName:r})=>[{type:"taskColumnStats",id:r}]}}}),B=O.api.enhanceEndpoints({endpoints:{searchFolders:{}}}),P=100,Q=w.injectEndpoints({endpoints:s=>({getOverviewTasksByFolders:s.query({async queryFn({projectName:e,parentIds:r,filter:i,folderFilter:a,search:l,showComments:T},{dispatch:m,forced:v}){try{const q=[];for(let d=0;d<r.length;d+=20){const S=r.slice(d,d+20),n=(await Promise.all(S.map(async t=>m(w.endpoints.GetTasksByParent.initiate({projectName:e,parentIds:[t],filter:i,folderFilter:a,search:l,showComments:!!T},{forceRefetch:v}))))).filter(t=>!!t.data).flatMap(t=>t.data);q.push(...n)}return{data:q}}catch(b){return console.error(b),{error:{status:"FETCH_ERROR",error:b.message}}}},serializeQueryArgs:({queryArgs:{parentIds:e,...r}})=>({...r}),forceRefetch({currentArg:e,previousArg:r}){return JSON.stringify(e)!==JSON.stringify(r)},providesTags:(e,r,{parentIds:i,projectName:a})=>C(e,a,i),async onCacheEntryAdded({projectName:e,parentIds:r,filter:i,search:a,showComments:l},{cacheDataLoaded:T,cacheEntryRemoved:m,updateCachedData:v,dispatch:b}){let q;const d=new Set,S=100,I=500;let n=!1;const t=()=>{n||(n=!0,setTimeout(h,I))},h=async()=>{if(n=!1,!d.size)return;const u=Array.from(d).slice(0,S);u.forEach(o=>d.delete(o));try{const f=(await b(w.endpoints.GetTasksList.initiate({projectName:e,taskIds:u,showComments:!!l},{forceRefetch:!0})).unwrap()).tasks||[],p=new Map(f.map(c=>[c.id,c]));v(c=>{for(const g of f){const F=c.findIndex(k=>k.id===g.id);F>-1?c[F]=g:c.push(g)}for(const g of u)if(!p.has(g)){const F=c.findIndex(k=>k.id===g);F>-1&&c.splice(F,1)}})}catch(o){console.error("Realtime overview batch update failed",o)}finally{d.size&&t()}};let y;try{await T,y=E.subscribeToThumbnailUpdates(o=>{v(f=>{o.forEach(p=>{if(p.summary.entityType==="task"&&p.summary.thumbnailHash){const c=f.findIndex(g=>g.id===p.summary.entityId);c>-1&&(f[c].thumbnailHash=p.summary.thumbnailHash)}})})},["task"]);const u=async(o,f)=>{const p=f?.summary?.entityId,c=f?.summary?.parentId;!p||!c||r.includes(c)&&(d.add(p),t())};q=A.subscribe("entity.task",u)}catch{}await m,q&&A.unsubscribe(q),y&&y()}}),getSearchFolders:s.query({async queryFn({projectName:e,folderSearchRequest:r},{dispatch:i}){try{return{data:(await i(B.endpoints.searchFolders.initiate({projectName:e,folderSearchRequest:r}))).data?.folderIds||[]}}catch(a){return console.error(a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(e,r,{projectName:i})=>[{type:"tasksFolder",id:i}]}),getTasksListInfinite:s.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,r,i,a)=>{const l=e.pageInfo;if(!(!(i.desc?l.hasPreviousPage:l.hasNextPage)||!l.endCursor))return{cursor:l.endCursor,desc:i.desc}}},queryFn:async({queryArg:e,pageParam:r},i)=>{try{const{projectName:a,filter:l,folderFilter:T,search:m,folderIds:v,taskIds:b,sortBy:q,desc:d,showComments:S}=e,{cursor:I}=r,n={projectName:a,filter:l,folderFilter:T,search:m,folderIds:v,taskIds:b,showComments:!!S};q?(n.sortBy=q,d?(n.before=I||void 0,n.last=P):(n.after=I||void 0,n.first=P)):(n.after=I||void 0,n.first=P);const t=await i.dispatch(w.endpoints.GetTasksList.initiate(n,{forceRefetch:!0}));if(t.error)throw t.error;const h={tasks:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:t.data||h}}catch(a){return console.error("Error in getTasksListInfinite queryFn:",a),{error:{status:"FETCH_ERROR",error:a.message}}}},providesTags:(e,r,{projectName:i})=>C(e?.pages.flatMap(a=>a.tasks)||[],i),async onCacheEntryAdded(e,{cacheDataLoaded:r,cacheEntryRemoved:i,updateCachedData:a,dispatch:l}){let T;const m=new Set,v=100,b=500;let q=!1;const d=()=>{q||(q=!0,setTimeout(S,b))},S=async()=>{if(q=!1,!m.size)return;const n=Array.from(m).slice(0,v);n.forEach(t=>m.delete(t));try{const h=(await l(w.endpoints.GetTasksList.initiate({projectName:e.projectName,taskIds:n,folderIds:e.folderIds,showComments:!!e.showComments},{forceRefetch:!0})).unwrap()).tasks||[],y=new Map(h.map(u=>[u.id,u]));a(u=>{for(const o of h){let f=!1;for(const p of u.pages){const c=p.tasks.findIndex(g=>g.id===o.id);if(c!==-1){p.tasks[c]=o,f=!0;break}}f||(u.pages.length?u.pages[0].tasks.unshift(o):u.pages.push({tasks:[o],pageInfo:{startCursor:null,endCursor:null,hasNextPage:!1,hasPreviousPage:!1}}))}for(const o of n)if(!y.has(o))for(const f of u.pages){const p=f.tasks.findIndex(c=>c.id===o);if(p!==-1){f.tasks.splice(p,1);break}}})}catch(t){console.error("Realtime infinite tasks batch update failed",t)}finally{m.size&&d()}};let I;try{await r,I=E.subscribeToThumbnailUpdates(t=>{a(h=>{t.forEach(y=>{if(y.summary.entityType==="task"&&y.summary.thumbnailHash)for(const u of h.pages){const o=u.tasks.findIndex(f=>f.id===y.summary.entityId);if(o>-1){u.tasks[o].thumbnailHash=y.summary.thumbnailHash;break}}})})},["task"]);const n=async(t,h)=>{const y=h?.summary?.entityId;y&&(m.add(y),d())};T=A.subscribe("entity.task",n)}catch{}await i,T&&A.unsubscribe(T),I&&I()}}),getGroupedTasksList:s.query({queryFn:async({projectName:e,groups:r,search:i,folderFilter:a,folderIds:l,desc:T,sortBy:m,groupCount:v,showComments:b},q)=>{try{let d=[];const S=new Set(["folderType"]);for(const t of r){const h=v||t.count||500;let y=t.filter,u=a;if(t.filter)try{const p=JSON.parse(t.filter),c=p.conditions||[],g=c.filter(k=>!S.has(k.key)),F=c.filter(k=>S.has(k.key));if(F.length>0){y=g.length?JSON.stringify({...p,conditions:g}):void 0;const k=a?JSON.parse(a):null,R=[...k&&Array.isArray(k.conditions)?k.conditions:[],...F];u=JSON.stringify(k?{...k,conditions:R}:{conditions:R})}}catch{}const o={projectName:e,filter:y,folderFilter:u,search:i,folderIds:l,sortBy:m,showComments:!!b,group:t.value};T?o.last=h:o.first=h;const f=q.dispatch(w.endpoints.GetTasksList.initiate(o,{forceRefetch:!0}));d.push(f)}const I=await Promise.all(d),n=[];for(const t of I){if(t.error)throw t.error;const h=t.originalArgs?.group,y=t.data?.pageInfo?.hasNextPage||t.data?.pageInfo?.hasPreviousPage||!1,u=t.data?.tasks.map((o,f,p)=>({...o,groups:[{value:h,hasNextPage:f===p.length-1&&y?h:void 0}]}))||[];n.push(...u)}return{data:{tasks:n}}}catch(d){return console.error("Error in getGroupedTasksList queryFn:",d),{error:{status:"FETCH_ERROR",error:d.message}}}},providesTags:(e,r,{projectName:i})=>C(e?.tasks,i)})})}),{useGetOverviewTasksByFoldersQuery:H,useGetSearchFoldersQuery:j,useGetTasksListQuery:z,useGetTasksListInfiniteInfiniteQuery:M,useLazyGetTasksByParentQuery:J,useGetGroupedTasksListQuery:U,useGetFolderColumnStatsQuery:K,useGetTaskColumnStatsQuery:V}=Q;exports.TASKS_INFINITE_QUERY_COUNT=P;exports.default=Q;exports.parseAllAttribs=x;exports.useGetFolderColumnStatsQuery=K;exports.useGetGroupedTasksListQuery=U;exports.useGetOverviewTasksByFoldersQuery=H;exports.useGetSearchFoldersQuery=j;exports.useGetTaskColumnStatsQuery=V;exports.useGetTasksListInfiniteInfiniteQuery=M;exports.useGetTasksListQuery=z;exports.useLazyGetTasksByParentQuery=J;
2
2
  //# sourceMappingURL=getOverview.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n GetFolderColumnStatsQuery,\n GetTaskColumnStatsQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport type { FieldStats } from '../columnStats'\nimport { normalizeFieldStats, mergeFieldStats, hasNewTargetFields } from '../columnStats'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n taskIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n groupCount?: number // optional override for all groups\n showComments?: boolean\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n GetFolderColumnStats: OverrideResultType<Definitions['GetFolderColumnStats'], FieldStats[]>\n GetTaskColumnStats: OverrideResultType<Definitions['GetTaskColumnStats'], FieldStats[]>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetFolderColumnStats: {\n transformResponse: (res: GetFolderColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.folders?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'folderColumnStats', id: projectName }],\n },\n GetTaskColumnStats: {\n transformResponse: (res: GetTaskColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.tasks?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'taskColumnStats', id: projectName }],\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n showComments?: boolean\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search, showComments },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n showComments: !!showComments,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search, showComments },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n showComments: !!showComments,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: EditorTaskNode[]) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n const idx = draft.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n draft[idx].thumbnailHash = message.summary.thumbnailHash\n }\n }\n })\n })\n },\n ['task'],\n )\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n providesTags: (_r, _e, { projectName }) => [{ type: 'tasksFolder', id: projectName }],\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n sortBy,\n desc,\n showComments,\n } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n showComments: !!showComments,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n showComments: !!arg.showComments,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n page.tasks[idx].thumbnailHash = message.summary.thumbnailHash\n break\n }\n }\n }\n })\n })\n },\n ['task'],\n )\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n search,\n folderFilter,\n folderIds,\n desc,\n sortBy,\n groupCount,\n showComments,\n },\n api,\n ) => {\n try {\n let promises = []\n // Folder-level filter keys that must go in folderFilter, not task filter\n const folderFilterKeys = new Set(['folderType'])\n\n for (const group of groups) {\n // Determine count for this group - use argument override, else group count, else default\n const count = groupCount || group.count || 500\n\n // Separate folder-level conditions from task-level conditions in the group filter\n let taskFilter = group.filter\n let mergedFolderFilter = folderFilter\n if (group.filter) {\n try {\n const parsed = JSON.parse(group.filter)\n const conditions = parsed.conditions || []\n const taskConditions = conditions.filter((c: any) => !folderFilterKeys.has(c.key))\n const folderConditions = conditions.filter((c: any) => folderFilterKeys.has(c.key))\n\n if (folderConditions.length > 0) {\n taskFilter = taskConditions.length\n ? JSON.stringify({ ...parsed, conditions: taskConditions })\n : undefined\n // Merge folder conditions with existing folderFilter, preserving metadata\n const existingFolderFilter = folderFilter ? JSON.parse(folderFilter) : null\n const existingConditions =\n existingFolderFilter && Array.isArray(existingFolderFilter.conditions)\n ? existingFolderFilter.conditions\n : []\n const allFolderConditions = [...existingConditions, ...folderConditions]\n mergedFolderFilter = JSON.stringify(\n existingFolderFilter\n ? { ...existingFolderFilter, conditions: allFolderConditions }\n : { conditions: allFolderConditions },\n )\n }\n } catch {\n // If parsing fails, use the original filter as-is\n }\n }\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: taskFilter,\n folderFilter: mergedFolderFilter,\n search,\n folderIds,\n sortBy: sortBy,\n showComments: !!showComments,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n useGetFolderColumnStatsQuery,\n useGetTaskColumnStatsQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","res","normalizeFieldStats","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","showComments","dispatch","forced","allTasks","i","batchParentIds","batchTasks","parentId","e","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","message","handlePubSub","_topic","taskId","PubSub","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","taskIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","groupValue","hasNextPage","groupTasks","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery","useGetFolderColumnStatsQuery","useGetTaskColumnStatsQuery"],"mappings":"wjEAsBaA,EAAmBC,GAAsB,CACpD,GAAI,CACF,OAAO,KAAK,MAAMA,CAAS,CAC7B,MAAY,CACV,MAAO,CAAA,CACT,CACF,EAEMC,EAAqCC,GAAsD,CAC/F,GAAI,CAACA,EAAS,QACZ,MAAO,CAAA,EAGT,MAAMC,EAA0B,CAAA,EAChC,SAAW,CAAE,KAAMC,CAAA,IAAcF,EAAS,QAAQ,MAAM,MACtDC,EAAM,KAAK,CACT,GAAGC,EACH,SAAUA,EAAS,UAAY,OAC/B,OAAQL,EAAgBK,EAAS,SAAS,EAC1C,SAAUA,EAAS,GACnB,WAAY,OACZ,MAAO,CAAA,CAAC,CACT,EAGH,OAAOD,CACT,EAEME,EAAsB,CAC1BC,EAAuC,GACvCC,EACAC,IACG,CACH,MAAMC,EAAWH,GAAQ,IAAKI,IAAU,CAAE,KAAM,eAAgB,GAAIA,EAAK,EAAA,EAAK,GAAK,CAAA,EAE7EC,EAAaH,GACd,MAAM,QAAQA,CAAS,EAAIA,EAAY,CAACA,CAAS,GAAG,IAAKI,IAAQ,CAChE,KAAM,eACN,GAAAA,CAAA,EACA,EACF,CAAA,EAEJ,MAAO,CACL,GAAGH,EACH,GAAGE,EACH,CAAE,KAAM,eAAgB,GAAIJ,CAAA,EAC5B,CAAE,KAAM,eAAgB,GAAI,MAAA,CAAO,CAEvC,EAkDMM,EAAcC,EAAAA,IAAO,iBAA+C,CACxE,UAAW,CAIT,iBAAkB,CAChB,kBAAmBb,EACnB,aAAc,CAACK,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,CAAA,EAEtD,aAAc,CACZ,kBAAoBF,IAA+B,CACjD,MAAOL,EAAkCK,CAAM,EAC/C,SAAUA,EAAO,QAAQ,MAAM,QAAA,GAEjC,aAAc,CAACA,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,OAAS,CAAA,EAAIC,CAAW,CAAA,EAIxD,qBAAsB,CACpB,kBAAoBS,GAClBC,sBAAoBD,GAAK,SAAS,SAAS,YAAc,EAAE,EAC7D,mBAAoB,CAAC,CAAE,UAAW,CAAE,QAASE,EAAI,GAAGC,CAAA,CAAK,IAAQA,EACjE,MAAO,CAACC,EAAOC,IAAaC,EAAAA,gBAAgBD,EAAUD,CAAK,EAC3D,aAAc,CAAC,CAAE,WAAAG,EAAY,YAAAC,KAAkBC,EAAAA,mBAAmBF,EAAYC,CAAW,EACzF,aAAc,CAACE,EAAIX,EAAI,CAAE,YAAAR,CAAA,IAAkB,CAAC,CAAE,KAAM,oBAAqB,GAAIA,EAAa,CAAA,EAE5F,mBAAoB,CAClB,kBAAoBS,GAClBC,sBAAoBD,GAAK,SAAS,OAAO,YAAc,EAAE,EAC3D,mBAAoB,CAAC,CAAE,UAAW,CAAE,QAASE,EAAI,GAAGC,CAAA,CAAK,IAAQA,EACjE,MAAO,CAACC,EAAOC,IAAaC,EAAAA,gBAAgBD,EAAUD,CAAK,EAC3D,aAAc,CAAC,CAAE,WAAAG,EAAY,YAAAC,KAAkBC,EAAAA,mBAAmBF,EAAYC,CAAW,EACzF,aAAc,CAACE,EAAIX,EAAI,CAAE,YAAAR,CAAA,IAAkB,CAAC,CAAE,KAAM,kBAAmB,GAAIA,EAAa,CAAA,CAC1F,CAEJ,CAAC,EAGKoB,EAAqBC,EAAAA,IAAW,iBAAiB,CACrD,UAAW,CACT,cAAe,CAAA,CAAC,CAEpB,CAAC,EAEYC,EAA6B,IAEpCC,EAAcjB,EAAY,gBAAgB,CAC9C,UAAYkB,IAAW,CAMrB,0BAA2BA,EAAM,MAU/B,CACA,MAAM,QACJ,CAAE,YAAAxB,EAAa,UAAAC,EAAW,OAAAwB,EAAQ,aAAAC,EAAc,OAAAC,EAAQ,aAAAC,CAAA,EACxD,CAAE,SAAAC,EAAU,OAAAC,GACZ,CACA,GAAI,CAGF,MAAMC,EAA6B,CAAA,EAGnC,QAASC,EAAI,EAAGA,EAAI/B,EAAU,OAAQ+B,GAAK,GAAY,CACrD,MAAMC,EAAiBhC,EAAU,MAAM+B,EAAGA,EAAI,EAAU,EAsBlDE,GAnBe,MAAM,QAAQ,IACjCD,EAAe,IAAI,MAAOE,GACxBN,EACEvB,EAAY,UAAU,iBAAiB,SACrC,CACE,YAAAN,EACA,UAAW,CAACmC,CAAQ,EACpB,OAAAV,EACA,aAAAC,EACA,OAAAC,EACA,aAAc,CAAC,CAACC,CAAA,EAElB,CAAE,aAAcE,CAAA,CAAO,CACzB,CACF,CACF,GAKC,OAAQ,GAAM,CAAC,CAAC,EAAE,IAAI,EACtB,QAAS/B,GAAWA,EAAO,IAAwB,EAEtDgC,EAAS,KAAK,GAAGG,CAAU,CAC7B,CAEA,MAAO,CAAE,KAAMH,CAAA,CACjB,OAASK,EAAQ,CAEf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,EAEA,mBAAoB,CAAC,CAAE,UAAW,CAAE,UAAAnC,EAAW,GAAGW,CAAA,MAAc,CAC9D,GAAGA,CAAA,GAGL,aAAa,CAAE,WAAAI,EAAY,YAAAC,GAAe,CACxC,OAAO,KAAK,UAAUD,CAAU,IAAM,KAAK,UAAUC,CAAW,CAClE,EACA,aAAc,CAAClB,EAAQS,EAAI,CAAE,UAAAP,EAAW,YAAAD,CAAA,IACtCF,EAAoBC,EAAQC,EAAaC,CAAS,EACpD,MAAM,kBACJ,CAAE,YAAAD,EAAa,UAAAC,EAAW,OAAAwB,EAAQ,OAAAE,EAAQ,aAAAC,CAAA,EAC1C,CAAE,gBAAAS,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAV,GACxD,CACA,IAAIW,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAAS1C,GAAOoC,EAAe,OAAOpC,CAAE,CAAC,EAClD,GAAI,CAWF,MAAM2C,GAVM,MAAMnB,EAChBvB,EAAY,UAAU,aAAa,SACjC,CACE,YAAAN,EACA,QAAS+C,EACT,aAAc,CAAC,CAACnB,CAAA,EAElB,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GACmB,OAAS,CAAA,EACxBqB,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA4B,CAE5C,UAAWhD,KAAQ6C,EAAU,CAC3B,MAAMI,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAO/C,EAAK,EAAE,EAC/CiD,EAAM,GAAID,EAAMC,CAAG,EAAIjD,EACtBgD,EAAM,KAAKhD,CAAI,CACtB,CAEA,UAAWE,KAAM0C,EACf,GAAI,CAACE,EAAY,IAAI5C,CAAE,EAAG,CACxB,MAAM+C,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAO7C,CAAE,EAC1C+C,EAAM,IAAID,EAAM,OAAOC,EAAK,CAAC,CACnC,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,wCAAyCA,CAAG,CAC5D,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,IAAIS,EACJ,GAAI,CACF,MAAMjB,EAENiB,EAAwBC,EAAAA,4BACrBC,GAAuC,CACtCjB,EAAkBY,GAA4B,CAC5CK,EAAS,QAASC,GAAY,CAC5B,GAAIA,EAAQ,QAAQ,aAAe,QAAUA,EAAQ,QAAQ,cAAe,CAC1E,MAAML,EAAMD,EAAM,UAAWD,GAAMA,EAAE,KAAOO,EAAQ,QAAQ,QAAQ,EAChEL,EAAM,KACRD,EAAMC,CAAG,EAAE,cAAgBK,EAAQ,QAAQ,cAE/C,CACF,CAAC,CACH,CAAC,CACH,EACA,CAAC,MAAM,CAAA,EAGT,MAAMC,EAAe,MAAOC,EAAgBF,IAAiB,CAC3D,MAAMG,EAASH,GAAS,SAAS,SAC3BtB,EAAWsB,GAAS,SAAS,SAC/B,CAACG,GAAU,CAACzB,GAEXlC,EAAU,SAASkC,CAAQ,IAChCM,EAAe,IAAImB,CAAM,EACzBf,EAAA,EACF,EAKAL,EAAQqB,EAAO,UAAU,cAAeH,CAAY,CACtD,MAAY,CAEZ,CAEA,MAAMpB,EACFE,GAAOqB,EAAO,YAAYrB,CAAK,EAC/Bc,GAAuBA,EAAA,CAC7B,CAAA,CACD,EAGD,iBAAkB9B,EAAM,MAAqC,CAC3D,MAAM,QAAQ,CAAE,YAAAxB,EAAa,oBAAA8D,GAAuB,CAAE,SAAAjC,GAAY,CAChE,GAAI,CAUF,MAAO,CAAE,MATM,MAAMA,EACnBT,EAAmB,UAAU,cAAc,SAAS,CAClD,YAAApB,EACA,oBAAA8D,CAAA,CACD,CAAA,GAGiB,MAAM,WAAa,CAAA,CAE9B,CACX,OAAS1B,EAAQ,CACf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAA,CACvC,CACX,CACF,EACA,aAAc,CAACjB,EAAIX,EAAI,CAAE,YAAAR,CAAA,IAAkB,CAAC,CAAE,KAAM,cAAe,GAAIA,EAAa,CAAA,CACrF,EAED,qBAAsBwB,EAAM,cAI1B,CACA,qBAAsB,CACpB,iBAAkB,CAAE,OAAQ,GAAI,KAAM,EAAA,EAEtC,iBAAkB,CAACuC,EAAUC,EAAWC,EAAeC,IAAmB,CAExE,MAAMC,EAAWJ,EAAS,SAI1B,GAAI,IAHSE,EAAc,KACAE,EAAS,gBAAkBA,EAAS,cAE3C,CAACA,EAAS,WAE9B,MAAO,CACL,OAAQA,EAAS,UACjB,KAAMF,EAAc,IAAA,CAExB,CAAA,EAEF,QAAS,MAAO,CAAE,SAAAG,EAAU,UAAAC,CAAA,EAAaC,IAAQ,CAC/C,GAAI,CACF,KAAM,CACJ,YAAAtE,EACA,OAAAyB,EACA,aAAAC,EACA,OAAAC,EACA,UAAA4C,EACA,QAAAC,EACA,OAAAC,EACA,KAAAC,EACA,aAAA9C,CAAA,EACEwC,EACE,CAAE,OAAAO,GAAWN,EAGbO,EAAmB,CACvB,YAAA5E,EACA,OAAAyB,EACA,aAAAC,EACA,OAAAC,EACA,UAAA4C,EACA,QAAAC,EACA,aAAc,CAAC,CAAC5C,CAAA,EAId6C,GACFG,EAAY,OAASH,EACjBC,GACFE,EAAY,OAASD,GAAU,OAC/BC,EAAY,KAAOtD,IAEnBsD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQtD,KAGtBsD,EAAY,MAAQD,GAAU,OAC9BC,EAAY,MAAQtD,GAItB,MAAMvB,EAAS,MAAMuE,EAAI,SACvBhE,EAAY,UAAU,aAAa,SAASsE,EAAa,CAAE,aAAc,GAAM,CAAA,EAGjF,GAAI7E,EAAO,MAAO,MAAMA,EAAO,MAC/B,MAAM8E,EAAW,CACf,MAAO,CAAA,EACP,SAAU,CACR,YAAa,GACb,UAAW,KACX,YAAa,KACb,gBAAiB,EAAA,CACnB,EAIF,MAAO,CACL,KAAM9E,EAAO,MAAQ8E,CAAA,CAEzB,OAASzC,EAAQ,CACf,eAAQ,MAAM,yCAA0CA,CAAC,EAClD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAE,QAAQ,CAC5D,CACF,EACA,aAAc,CAACrC,EAAQS,EAAI,CAAE,YAAAR,CAAA,IAC3BF,EAAoBC,GAAQ,MAAM,QAAS+E,GAAMA,EAAE,KAAK,GAAK,CAAA,EAAI9E,CAAW,EAC9E,MAAM,kBACJ+E,EACA,CAAE,gBAAA1C,EAAiB,kBAAAC,EAAmB,iBAAAC,EAAkB,SAAAV,GACxD,CACA,IAAIW,EACJ,MAAMC,MAAqB,IACrBC,EAAY,IACZC,EAAW,IACjB,IAAIC,EAAY,GAEhB,MAAMC,EAAW,IAAM,CACjBD,IACJA,EAAY,GACZ,WAAWE,EAAOH,CAAQ,EAC5B,EAEMG,EAAQ,SAAY,CAExB,GADAF,EAAY,GACR,CAACH,EAAe,KAAM,OAC1B,MAAMM,EAAW,MAAM,KAAKN,CAAc,EAAE,MAAM,EAAGC,CAAS,EAC9DK,EAAS,QAAS1C,GAAOoC,EAAe,OAAOpC,CAAE,CAAC,EAClD,GAAI,CAaF,MAAM2C,GAZM,MAAMnB,EAChBvB,EAAY,UAAU,aAAa,SACjC,CACE,YAAayE,EAAI,YACjB,QAAShC,EACT,UAAWgC,EAAI,UACf,aAAc,CAAC,CAACA,EAAI,YAAA,EAEtB,CAAE,aAAc,EAAA,CAAK,CACvB,EACA,OAAA,GAEmB,OAAS,CAAA,EACxB9B,EAAc,IAAI,IAAID,EAAS,IAAKE,GAAsB,CAACA,EAAE,GAAIA,CAAC,CAAC,CAAC,EAE1EX,EAAkBY,GAA8D,CAE9E,UAAWhD,KAAQ6C,EAAU,CAC3B,IAAIgC,EAAU,GACd,UAAWC,KAAQ9B,EAAM,MAAO,CAC9B,MAAMC,EAAM6B,EAAK,MAAM,UAAW/B,GAAMA,EAAE,KAAO/C,EAAK,EAAE,EACxD,GAAIiD,IAAQ,GAAI,CACd6B,EAAK,MAAM7B,CAAG,EAAIjD,EAClB6E,EAAU,GACV,KACF,CACF,CACKA,IACC7B,EAAM,MAAM,OAAQA,EAAM,MAAM,CAAC,EAAE,MAAM,QAAQhD,CAAI,EAEvDgD,EAAM,MAAM,KAAK,CACf,MAAO,CAAChD,CAAI,EACZ,SAAU,CACR,YAAa,KACb,UAAW,KACX,YAAa,GACb,gBAAiB,EAAA,CACnB,CACD,EAEP,CAEA,UAAWE,KAAM0C,EACf,GAAI,CAAAE,EAAY,IAAI5C,CAAE,EACtB,UAAW4E,KAAQ9B,EAAM,MAAO,CAC9B,MAAMC,EAAM6B,EAAK,MAAM,UAAW/B,GAAMA,EAAE,KAAO7C,CAAE,EACnD,GAAI+C,IAAQ,GAAI,CACd6B,EAAK,MAAM,OAAO7B,EAAK,CAAC,EACxB,KACF,CACF,CAEJ,CAAC,CACH,OAASC,EAAK,CACZ,QAAQ,MAAM,8CAA+CA,CAAG,CAClE,QAAA,CACMZ,EAAe,MAAMI,EAAA,CAC3B,CACF,EACA,IAAIS,EACJ,GAAI,CACF,MAAMjB,EAENiB,EAAwBC,EAAAA,4BACrBC,GAAuC,CACtCjB,EAAkBY,GAA8D,CAC9EK,EAAS,QAASC,GAAY,CAC5B,GAAIA,EAAQ,QAAQ,aAAe,QAAUA,EAAQ,QAAQ,cAC3D,UAAWwB,KAAQ9B,EAAM,MAAO,CAC9B,MAAMC,EAAM6B,EAAK,MAAM,UAAW/B,GAAMA,EAAE,KAAOO,EAAQ,QAAQ,QAAQ,EACzE,GAAIL,EAAM,GAAI,CACZ6B,EAAK,MAAM7B,CAAG,EAAE,cAAgBK,EAAQ,QAAQ,cAChD,KACF,CACF,CAEJ,CAAC,CACH,CAAC,CACH,EACA,CAAC,MAAM,CAAA,EAGT,MAAMC,EAAe,MAAOC,EAAgBF,IAAiB,CAC3D,MAAMG,EAASH,GAAS,SAAS,SAC5BG,IACLnB,EAAe,IAAImB,CAAM,EACzBf,EAAA,EACF,EAEAL,EAAQqB,EAAO,UAAU,cAAeH,CAAY,CACtD,MAAY,CAEZ,CACA,MAAMpB,EACFE,GAAOqB,EAAO,YAAYrB,CAAK,EAC/Bc,GAAuBA,EAAA,CAC7B,CAAA,CACD,EACD,oBAAqB9B,EAAM,MAA0D,CACnF,QAAS,MACP,CACE,YAAAxB,EACA,OAAAkF,EACA,OAAAvD,EACA,aAAAD,EACA,UAAA6C,EACA,KAAAG,EACA,OAAAD,EACA,WAAAU,EACA,aAAAvD,CAAA,EAEF0C,IACG,CACH,GAAI,CACF,IAAIc,EAAW,CAAA,EAEf,MAAMC,EAAmB,IAAI,IAAI,CAAC,YAAY,CAAC,EAE/C,UAAWC,KAASJ,EAAQ,CAE1B,MAAMK,EAAQJ,GAAcG,EAAM,OAAS,IAG3C,IAAIE,EAAaF,EAAM,OACnBG,EAAqB/D,EACzB,GAAI4D,EAAM,OACR,GAAI,CACF,MAAMI,EAAS,KAAK,MAAMJ,EAAM,MAAM,EAChCK,EAAaD,EAAO,YAAc,CAAA,EAClCE,EAAiBD,EAAW,OAAQE,GAAW,CAACR,EAAiB,IAAIQ,EAAE,GAAG,CAAC,EAC3EC,EAAmBH,EAAW,OAAQE,GAAWR,EAAiB,IAAIQ,EAAE,GAAG,CAAC,EAElF,GAAIC,EAAiB,OAAS,EAAG,CAC/BN,EAAaI,EAAe,OACxB,KAAK,UAAU,CAAE,GAAGF,EAAQ,WAAYE,CAAA,CAAgB,EACxD,OAEJ,MAAMG,EAAuBrE,EAAe,KAAK,MAAMA,CAAY,EAAI,KAKjEsE,EAAsB,CAAC,GAH3BD,GAAwB,MAAM,QAAQA,EAAqB,UAAU,EACjEA,EAAqB,WACrB,CAAA,EAC8C,GAAGD,CAAgB,EACvEL,EAAqB,KAAK,UACxBM,EACI,CAAE,GAAGA,EAAsB,WAAYC,CAAA,EACvC,CAAE,WAAYA,CAAA,CAAoB,CAE1C,CACF,MAAQ,CAER,CAGF,MAAMpB,EAA0C,CAC9C,YAAA5E,EACA,OAAQwF,EACR,aAAcC,EACd,OAAA9D,EACA,UAAA4C,EACA,OAAAE,EACA,aAAc,CAAC,CAAC7C,EAEhB,MAAO0D,EAAM,KAAA,EAEXZ,EACFE,EAAY,KAAOW,EAEnBX,EAAY,MAAQW,EAGtB,MAAMU,EAAU3B,EAAI,SAClBhE,EAAY,UAAU,aAAa,SAASsE,EAAa,CAAE,aAAc,GAAM,CAAA,EAEjFQ,EAAS,KAAKa,CAAO,CACvB,CAEA,MAAMlG,EAAS,MAAM,QAAQ,IAAIqF,CAAQ,EACnCxF,EAA0B,CAAA,EAChC,UAAWa,KAAOV,EAAQ,CACxB,GAAIU,EAAI,MAAO,MAAMA,EAAI,MAGzB,MAAMyF,EAAazF,EAAI,cAAc,MAE/B0F,EACJ1F,EAAI,MAAM,UAAU,aAAeA,EAAI,MAAM,UAAU,iBAAmB,GACtE2F,EACJ3F,EAAI,MAAM,MAAM,IAAI,CAACN,EAAM6B,EAAGqE,KAAO,CACnC,GAAGlG,EACH,OAAQ,CACN,CACE,MAAO+F,EACP,YAAalE,IAAMqE,EAAE,OAAS,GAAKF,EAAcD,EAAa,MAAA,CAChE,CACF,EACA,GAAK,CAAA,EAETtG,EAAM,KAAK,GAAGwG,CAAU,CAC1B,CAGA,MAAO,CACL,KAAM,CACJ,MAAAxG,CAAA,CACF,CAEJ,OAAS0G,EAAY,CACnB,eAAQ,MAAM,wCAAyCA,CAAK,EACrD,CAAE,MAAO,CAAE,OAAQ,cAAe,MAAOA,EAAM,QAAQ,CAChE,CACF,EACA,aAAc,CAACvG,EAAQS,EAAI,CAAE,YAAAR,KAC3BF,EAAoBC,GAAQ,MAAOC,CAAW,CAAA,CACjD,CAAA,EAEL,CAAC,EAEY,CACX,kCAAAuG,EACA,yBAAAC,EACA,qBAAAC,EACA,qCAAAC,EACA,6BAAAC,EACA,4BAAAC,EACA,6BAAAC,EACA,2BAAAC,CACF,EAAIvF"}
1
+ {"version":3,"file":"getOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n GetFolderColumnStatsQuery,\n GetTaskColumnStatsQuery,\n foldersApi,\n SearchFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport type { FieldStats } from '../columnStats'\nimport { normalizeFieldStats, mergeFieldStats, hasNewTargetFields } from '../columnStats'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n links: [],\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n const parentTags = parentIds\n ? (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n : []\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n folderFilter?: string\n search?: string\n folderIds?: string[]\n taskIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n groupCount?: number // optional override for all groups\n showComments?: boolean\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n GetFolderColumnStats: OverrideResultType<Definitions['GetFolderColumnStats'], FieldStats[]>\n GetTaskColumnStats: OverrideResultType<Definitions['GetTaskColumnStats'], FieldStats[]>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetFolderColumnStats: {\n transformResponse: (res: GetFolderColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.folders?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'folderColumnStats', id: projectName }],\n },\n GetTaskColumnStats: {\n transformResponse: (res: GetTaskColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.tasks?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'taskColumnStats', id: projectName }],\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = foldersApi.enhanceEndpoints({\n endpoints: {\n searchFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n {\n projectName: string\n parentIds: string[]\n filter?: string\n folderFilter?: string\n search?: string\n showComments?: boolean\n }\n >({\n async queryFn(\n { projectName, parentIds, filter, folderFilter, search, showComments },\n { dispatch, forced },\n ) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n folderFilter,\n search,\n showComments: !!showComments,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n async onCacheEntryAdded(\n { projectName, parentIds, filter, search, showComments },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName,\n taskIds: batchIds,\n showComments: !!showComments,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: EditorTaskNode[]) => {\n // update or add\n for (const task of returned) {\n const idx = draft.findIndex((t) => t.id === task.id)\n if (idx > -1) draft[idx] = task\n else draft.push(task)\n }\n // remove missing\n for (const id of batchIds) {\n if (!returnedMap.has(id)) {\n const idx = draft.findIndex((t) => t.id === id)\n if (idx > -1) draft.splice(idx, 1)\n }\n }\n })\n } catch (err) {\n console.error('Realtime overview batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: EditorTaskNode[]) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n const idx = draft.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n draft[idx].thumbnailHash = message.summary.thumbnailHash\n }\n }\n })\n })\n },\n ['task'],\n )\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n const parentId = message?.summary?.parentId\n if (!taskId || !parentId) return\n // Only react if the parent folder is part of the current expanded set\n if (!parentIds.includes(parentId)) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n // Subscribe to task entity updates\n // NOTE: backend emits topics like 'entity.task.assignees_changed'.\n // Assuming PubSub supports prefix matching when subscribing without the suffix.\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n },\n }),\n // searchFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getSearchFolders: build.query<string[], SearchFoldersApiArg>({\n async queryFn({ projectName, folderSearchRequest }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.searchFolders.initiate({\n projectName,\n folderSearchRequest,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n providesTags: (_r, _e, { projectName }) => [{ type: 'tasksFolder', id: projectName }],\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n sortBy,\n desc,\n showComments,\n } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n folderFilter,\n search,\n folderIds,\n taskIds,\n showComments: !!showComments,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n async onCacheEntryAdded(\n arg,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const pendingTaskIds = new Set<string>()\n const MAX_BATCH = 100\n const INTERVAL = 500\n let scheduled = false\n\n const schedule = () => {\n if (scheduled) return\n scheduled = true\n setTimeout(flush, INTERVAL)\n }\n\n const flush = async () => {\n scheduled = false\n if (!pendingTaskIds.size) return\n const batchIds = Array.from(pendingTaskIds).slice(0, MAX_BATCH)\n batchIds.forEach((id) => pendingTaskIds.delete(id))\n try {\n const res = await dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(\n {\n projectName: arg.projectName,\n taskIds: batchIds,\n folderIds: arg.folderIds,\n showComments: !!arg.showComments,\n } as any,\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const returned = res.tasks || []\n const returnedMap = new Map(returned.map((t: EditorTaskNode) => [t.id, t]))\n\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n // update/insert\n for (const task of returned) {\n let located = false\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === task.id)\n if (idx !== -1) {\n page.tasks[idx] = task\n located = true\n break\n }\n }\n if (!located) {\n if (draft.pages.length) draft.pages[0].tasks.unshift(task)\n else\n draft.pages.push({\n tasks: [task],\n pageInfo: {\n startCursor: null,\n endCursor: null,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n })\n }\n }\n // remove any requested but missing tasks\n for (const id of batchIds) {\n if (returnedMap.has(id)) continue\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === id)\n if (idx !== -1) {\n page.tasks.splice(idx, 1)\n break\n }\n }\n }\n })\n } catch (err) {\n console.error('Realtime infinite tasks batch update failed', err)\n } finally {\n if (pendingTaskIds.size) schedule()\n }\n }\n let unsubscribeThumbnails: (() => void) | undefined\n try {\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n updateCachedData((draft: { pages: GetTasksListResult[]; pageParams: any[] }) => {\n messages.forEach((message) => {\n if (message.summary.entityType === 'task' && message.summary.thumbnailHash) {\n for (const page of draft.pages) {\n const idx = page.tasks.findIndex((t) => t.id === message.summary.entityId)\n if (idx > -1) {\n page.tasks[idx].thumbnailHash = message.summary.thumbnailHash\n break\n }\n }\n }\n })\n })\n },\n ['task'],\n )\n\n const handlePubSub = async (_topic: string, message: any) => {\n const taskId = message?.summary?.entityId\n if (!taskId) return\n pendingTaskIds.add(taskId)\n schedule()\n }\n\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (_) {\n // ignore\n }\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n },\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n search,\n folderFilter,\n folderIds,\n desc,\n sortBy,\n groupCount,\n showComments,\n },\n api,\n ) => {\n try {\n let promises = []\n // Folder-level filter keys that must go in folderFilter, not task filter\n const folderFilterKeys = new Set(['folderType'])\n\n for (const group of groups) {\n // Determine count for this group - use argument override, else group count, else default\n const count = groupCount || group.count || 500\n\n // Separate folder-level conditions from task-level conditions in the group filter\n let taskFilter = group.filter\n let mergedFolderFilter = folderFilter\n if (group.filter) {\n try {\n const parsed = JSON.parse(group.filter)\n const conditions = parsed.conditions || []\n const taskConditions = conditions.filter((c: any) => !folderFilterKeys.has(c.key))\n const folderConditions = conditions.filter((c: any) => folderFilterKeys.has(c.key))\n\n if (folderConditions.length > 0) {\n taskFilter = taskConditions.length\n ? JSON.stringify({ ...parsed, conditions: taskConditions })\n : undefined\n // Merge folder conditions with existing folderFilter, preserving metadata\n const existingFolderFilter = folderFilter ? JSON.parse(folderFilter) : null\n const existingConditions =\n existingFolderFilter && Array.isArray(existingFolderFilter.conditions)\n ? existingFolderFilter.conditions\n : []\n const allFolderConditions = [...existingConditions, ...folderConditions]\n mergedFolderFilter = JSON.stringify(\n existingFolderFilter\n ? { ...existingFolderFilter, conditions: allFolderConditions }\n : { conditions: allFolderConditions },\n )\n }\n } catch {\n // If parsing fails, use the original filter as-is\n }\n }\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: taskFilter,\n folderFilter: mergedFolderFilter,\n search,\n folderIds,\n sortBy: sortBy,\n showComments: !!showComments,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetSearchFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n useGetFolderColumnStatsQuery,\n useGetTaskColumnStatsQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","_e","res","normalizeFieldStats","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","injectedApi","build","filter","folderFilter","search","showComments","dispatch","forced","allTasks","i","batchParentIds","batchTasks","parentId","r","e","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","pendingTaskIds","MAX_BATCH","INTERVAL","scheduled","schedule","flush","batchIds","returned","returnedMap","t","draft","idx","err","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","message","handlePubSub","_topic","taskId","PubSub","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","taskIds","sortBy","desc","cursor","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","groupValue","hasNextPage","groupTasks","a","error","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery","useGetFolderColumnStatsQuery","useGetTaskColumnStatsQuery"],"mappings":"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"}