@ynput/ayon-frontend-shared 0.3.46 → 0.3.48

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 (761) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +38 -35
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +231 -228
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +193 -25
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/Views.cjs.js +1 -1
  11. package/dist/Views.es.js +27 -26
  12. package/dist/_virtual/index.cjs15.js +1 -1
  13. package/dist/_virtual/index.cjs18.js +1 -1
  14. package/dist/_virtual/index.cjs19.js +1 -1
  15. package/dist/_virtual/index.cjs22.js +1 -1
  16. package/dist/_virtual/index.cjs23.js +1 -1
  17. package/dist/_virtual/index.cjs24.js +1 -1
  18. package/dist/_virtual/index.cjs4.js +1 -1
  19. package/dist/_virtual/index.cjs5.js +1 -1
  20. package/dist/_virtual/index.cjs6.js +1 -1
  21. package/dist/_virtual/index.cjs8.js +1 -1
  22. package/dist/_virtual/index.cjs9.js +1 -1
  23. package/dist/_virtual/index.es10.js +2 -2
  24. package/dist/_virtual/index.es11.js +2 -2
  25. package/dist/_virtual/index.es13.js +2 -2
  26. package/dist/_virtual/index.es14.js +2 -2
  27. package/dist/_virtual/index.es15.js +2 -2
  28. package/dist/_virtual/index.es16.js +2 -2
  29. package/dist/_virtual/index.es17.js +2 -2
  30. package/dist/_virtual/index.es18.js +5 -2
  31. package/dist/_virtual/index.es18.js.map +1 -1
  32. package/dist/_virtual/index.es19.js +2 -2
  33. package/dist/_virtual/index.es22.js +3 -3
  34. package/dist/_virtual/index.es23.js +5 -5
  35. package/dist/_virtual/index.es24.js +5 -5
  36. package/dist/_virtual/index.es4.js +2 -5
  37. package/dist/_virtual/index.es4.js.map +1 -1
  38. package/dist/_virtual/index.es5.js +5 -2
  39. package/dist/_virtual/index.es5.js.map +1 -1
  40. package/dist/_virtual/index.es6.js +2 -2
  41. package/dist/_virtual/index.es8.js +2 -2
  42. package/dist/_virtual/index.es9.js +2 -5
  43. package/dist/_virtual/index.es9.js.map +1 -1
  44. package/dist/api.cjs.js +1 -1
  45. package/dist/api.es.js +347 -344
  46. package/dist/api.es.js.map +1 -1
  47. package/dist/components.cjs.js +1 -1
  48. package/dist/components.es.js +41 -39
  49. package/dist/components.es.js.map +1 -1
  50. package/dist/context.cjs.js +1 -1
  51. package/dist/context.es.js +55 -48
  52. package/dist/context.es.js.map +1 -1
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.es.js +24 -21
  55. package/dist/index.es.js.map +1 -1
  56. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  57. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  58. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  59. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  60. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  61. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  62. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  63. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  64. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  65. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  66. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  67. package/dist/node_modules/remove-accents/index.es.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  79. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  80. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  82. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  83. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  84. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  85. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  86. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  87. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  88. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  89. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  90. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  91. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  92. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  93. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  94. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  95. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  96. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  97. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  98. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  99. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  100. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  101. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  102. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  103. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  104. package/dist/shared/src/api/generated/graphql.cjs.js +3 -3
  105. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  106. package/dist/shared/src/api/generated/graphql.es.js +3 -3
  107. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js +2 -0
  109. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js.map +1 -0
  110. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js +42 -0
  111. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js.map +1 -0
  112. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/activities/getActivities.es.js +121 -156
  115. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +93 -68
  119. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  121. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  122. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +63 -56
  123. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  124. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  125. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  126. package/dist/shared/src/api/queries/entities/updateEntity.es.js +120 -119
  127. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  128. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  129. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  130. package/dist/shared/src/api/queries/entityLists/getLists.es.js +70 -62
  131. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +85 -85
  137. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js +267 -259
  141. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  142. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  143. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  144. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +85 -79
  145. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  146. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  147. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +170 -2
  149. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  151. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +18 -15
  153. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +165 -2
  157. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  159. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +164 -2
  161. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +174 -2
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  166. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  167. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  168. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +173 -2
  169. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  175. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +16 -13
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  178. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  179. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  180. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +168 -2
  181. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  182. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  183. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  184. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +260 -89
  185. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  186. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  187. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  188. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +44 -78
  189. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  190. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  191. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  192. package/dist/shared/src/components/LinksManager/LinksManager.es.js +172 -2
  193. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  194. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  195. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  196. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  197. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  198. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  199. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  200. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +173 -2
  201. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  202. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  203. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  204. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +158 -2
  205. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  206. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  207. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  208. package/dist/shared/src/components/Menu/Menu.es.js +171 -2
  209. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  210. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  211. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  212. package/dist/shared/src/components/Menu/MenuItem.es.js +167 -0
  213. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  214. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  215. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  216. package/dist/shared/src/components/Menu/MenuList.es.js +209 -40
  217. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  218. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  219. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  220. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +171 -2
  221. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  222. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  223. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  224. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +170 -2
  225. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  226. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  227. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  228. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +16 -13
  229. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  230. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  231. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  232. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +82 -79
  233. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  234. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  235. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  236. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +169 -3
  237. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  238. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  239. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  240. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +12 -9
  241. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  242. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  243. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  244. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -2
  245. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  246. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  247. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  248. package/dist/shared/src/components/RenameForm/RenameForm.es.js +5 -2
  249. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  252. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +41 -38
  253. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  254. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  255. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  256. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +19 -16
  257. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  258. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  259. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +17 -14
  261. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  263. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  264. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +18 -15
  265. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  268. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +453 -284
  269. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  270. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -2
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  272. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +172 -2
  273. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  274. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  276. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +18 -15
  277. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  278. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  279. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  280. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +18 -15
  281. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  282. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +52 -0
  283. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -0
  284. package/dist/shared/src/components/SyncButton/SyncButton.es.js +265 -0
  285. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -0
  286. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  287. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  288. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +171 -2
  289. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  290. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  291. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  292. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +18 -15
  293. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  294. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  295. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  296. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +20 -17
  297. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  298. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  299. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +18 -15
  301. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  302. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  303. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/Actions/Actions.es.js +213 -44
  305. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  306. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  307. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +18 -15
  309. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  310. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +39 -36
  313. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  314. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +18 -15
  317. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +19 -16
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +51 -48
  325. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +173 -3
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +18 -15
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +18 -15
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +168 -2
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +32 -29
  345. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  346. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +18 -15
  349. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  350. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +81 -78
  353. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +144 -2
  357. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +174 -2
  361. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  362. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +18 -15
  365. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  366. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  367. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  368. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +18 -15
  369. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  370. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  371. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +18 -15
  373. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  374. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  375. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +18 -15
  377. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  378. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  379. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +178 -7
  381. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  382. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  383. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/Feed/Feed.es.js +206 -59
  385. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  386. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  387. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +18 -15
  389. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  391. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +19 -16
  393. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  395. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -15
  397. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  399. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +16 -16
  401. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  403. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +30 -17
  405. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js +11 -0
  407. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js.map +1 -0
  408. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js +27 -0
  409. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js.map +1 -0
  410. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  411. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +20 -17
  413. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  414. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  415. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +218 -39
  417. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  418. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  419. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +78 -75
  421. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  422. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  423. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  424. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +22 -19
  425. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  427. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +173 -2
  429. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  431. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +173 -2
  433. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  434. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  435. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  436. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +181 -14
  437. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  438. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  439. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  440. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +169 -2
  441. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  443. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +80 -77
  445. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  446. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  447. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +197 -26
  449. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  450. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  451. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +9 -8
  453. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  454. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  455. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/ListTable/ListTable.es.js +24 -21
  457. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  458. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  459. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +18 -15
  461. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  462. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  463. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +17 -14
  465. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +5 -2
  469. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +18 -15
  473. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +5 -2
  477. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +84 -81
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +17 -14
  485. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +18 -15
  489. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  491. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +508 -321
  493. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +18 -15
  497. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +175 -4
  501. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +176 -6
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +18 -15
  509. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +174 -2
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +21 -18
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +18 -15
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +18 -15
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +18 -15
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +18 -15
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +5 -2
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +406 -396
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +18 -15
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +18 -15
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +19 -17
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -15
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +18 -15
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +265 -95
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +29 -26
  577. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +18 -15
  581. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  583. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +94 -91
  585. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +3 -3
  587. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +25 -22
  589. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +20 -17
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +4 -4
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +188 -34
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +18 -15
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +25 -22
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +2 -2
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +225 -61
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  610. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  611. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +18 -15
  613. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  614. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  615. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +21 -18
  617. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  618. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  619. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +37 -37
  621. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  622. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  623. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +353 -51
  625. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  626. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  627. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +172 -2
  629. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  630. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  631. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +18 -15
  633. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  634. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  635. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +216 -45
  637. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  638. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  639. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +185 -13
  641. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  642. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +174 -2
  645. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  646. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +40 -289
  649. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  650. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  651. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +174 -2
  653. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  654. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  655. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +173 -2
  657. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  658. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  659. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +174 -2
  661. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  663. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +174 -2
  665. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  666. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  667. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +227 -53
  669. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  670. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  671. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +176 -6
  673. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  674. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  675. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -2
  677. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  678. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  679. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  680. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +185 -18
  681. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  682. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  683. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  684. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +209 -38
  685. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  686. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  687. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  688. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +180 -10
  689. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  690. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  691. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  692. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +107 -73
  693. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  694. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  695. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  696. package/dist/shared/src/context/DetailsPanelContext.es.js +210 -38
  697. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  698. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +2 -0
  699. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -0
  700. package/dist/shared/src/context/EntityUpdatesContext.es.js +392 -0
  701. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -0
  702. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js +2 -0
  703. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js.map +1 -0
  704. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js +6 -0
  705. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js.map +1 -0
  706. package/dist/shared/src/context/MenuContext.es.js +3 -3
  707. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  708. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  709. package/dist/shared/src/context/PowerpackContext.es.js +178 -6
  710. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  711. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  712. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  713. package/dist/shared/src/context/ProjectFoldersContext.es.js +196 -24
  714. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  715. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  716. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  717. package/dist/shared/src/context/SubtasksModulesContext.es.js +176 -4
  718. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  719. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  720. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  721. package/dist/shared/src/context/WebsocketContext.es.js +52 -45
  722. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  723. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  724. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  725. package/dist/shared/src/hooks/useEntityUpdate.es.js +174 -2
  726. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  727. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  728. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  729. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +174 -2
  730. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  731. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  732. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  733. package/dist/shared/src/hooks/useHierarchyTable.es.js +174 -2
  734. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  735. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  736. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  737. package/dist/shared/src/hooks/useUserProjectConfig.es.js +174 -2
  738. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  739. package/dist/types/api/generated/graphql.d.ts +3 -3
  740. package/dist/types/api/queries/actions/index.d.ts +1 -0
  741. package/dist/types/api/queries/actions/refreshActiveAndPurgeOthers.d.ts +11 -0
  742. package/dist/types/api/queries/activities/getActivities.d.ts +65 -855
  743. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +19 -0
  744. package/dist/types/api/queries/links/getEntityLinks.d.ts +4 -2
  745. package/dist/types/components/SyncButton/SyncButton.d.ts +11 -0
  746. package/dist/types/components/SyncButton/index.d.ts +1 -0
  747. package/dist/types/components/index.d.ts +1 -0
  748. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.d.ts +7 -0
  749. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +3 -0
  750. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -42
  751. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -4
  752. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +10 -2
  753. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +9 -2
  754. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  755. package/dist/types/containers/Slicer/hooks/useSelectedEntityIds.d.ts +7 -1
  756. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -0
  757. package/dist/types/context/EntityUpdatesContext.d.ts +44 -0
  758. package/dist/types/context/EntityUpdatesContextInstance.d.ts +2 -0
  759. package/dist/types/context/ProjectFoldersContext.d.ts +2 -2
  760. package/dist/types/context/index.d.ts +1 -0
  761. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getOverview.es.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 from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport type { FieldStats } from '../columnStats'\nimport {\n normalizeFieldStats,\n mergeFieldStats,\n hasNewTargetFields,\n transformStatsError,\n} 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}\nexport type GetTasksByParentResult = {\n pageInfo: GetTasksByParentQuery['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 showComments?: boolean\n includeFolderChildren?: boolean\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'], GetTasksByParentResult>\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: (res: GetTasksByParentQuery) => ({\n pageInfo: res?.project?.tasks?.pageInfo ?? { hasNextPage: false, endCursor: null },\n tasks: transformFilteredEntitiesByParent(res),\n }),\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result?.tasks || [], 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 transformErrorResponse: (error: any) => transformStatsError(error, 'folder'),\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 transformErrorResponse: (error: any) => transformStatsError(error, 'task'),\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\n// --- TRACKING REGISTRY FOR EMPTY FOLDERS (FILTER-AWARE) ---\nconst queriedFoldersRegistry: Record<string, Set<string>> = {}\n\nconst getCacheKey = (\n projectName: string,\n filter?: string,\n folderFilter?: string,\n search?: string,\n showComments?: boolean,\n) => {\n return JSON.stringify({ projectName, filter, folderFilter, search, showComments })\n}\n\nconst markFoldersAsQueried = (cacheKey: string, folderIds: string[]) => {\n if (!queriedFoldersRegistry[cacheKey]) {\n queriedFoldersRegistry[cacheKey] = new Set()\n }\n folderIds.forEach((id) => queriedFoldersRegistry[cacheKey].add(id))\n}\n\nconst getQueriedFolders = (cacheKey: string): Set<string> => {\n return queriedFoldersRegistry[cacheKey] || new Set()\n}\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, getState },\n ) {\n try {\n const state = getState()\n const cacheArgs = { projectName, filter, folderFilter, search, showComments }\n\n // Select current flat cache state\n const currentCache = (injectedApi.endpoints as any).getOverviewTasksByFolders.select(\n cacheArgs,\n )(state)\n const cacheData: EditorTaskNode[] = currentCache?.data || []\n\n // 1. Generate a stable cache key matching RTK Query's serialization\n const cacheKey = getCacheKey(projectName, filter, folderFilter, search, showComments)\n\n // 2. Fetch our registry specific to THIS combination of search/filters\n const alreadyQueriedFolders = getQueriedFolders(cacheKey)\n\n // 3. Diffing: Only request folders that haven't hit the network under these specific filters\n const newFolderIds = parentIds.filter((id) => !alreadyQueriedFolders.has(id))\n\n // Short-circuit if all expanded folders have been evaluated for this filter setup\n if (newFolderIds.length === 0) {\n return { data: cacheData }\n }\n\n const allNewTasks: EditorTaskNode[] = []\n const BATCH_SIZE = 100\n const TASK_PER_FOLDER = 20\n const MAX_PAGES_PER_BATCH = 10\n const MAX_FOLDERS = 1000\n const TASKS_PER_PAGE = BATCH_SIZE * TASK_PER_FOLDER\n\n if (newFolderIds.length > MAX_FOLDERS) {\n throw new Error(\n `Exceeded maximum folders count limit ${MAX_FOLDERS} (${newFolderIds.length}). Please reduce the number of expanded folders.`,\n )\n }\n\n // 5. Batch folder IDs into groups and process them sequentially\n for (let i = 0; i < newFolderIds.length; i += BATCH_SIZE) {\n const batchFolderIds = newFolderIds.slice(i, i + BATCH_SIZE)\n\n let hasNextPage = true\n let cursor: string | undefined = undefined\n let pageCount = 0\n\n while (hasNextPage && pageCount < MAX_PAGES_PER_BATCH) {\n pageCount++\n\n if (pageCount === MAX_PAGES_PER_BATCH) {\n throw new Error(\n `Exceeded maximum tasks count limit ${MAX_PAGES_PER_BATCH * TASKS_PER_PAGE}.`,\n )\n }\n\n const result = await dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: batchFolderIds,\n filter,\n folderFilter,\n search,\n showComments: !!showComments,\n first: TASKS_PER_PAGE,\n after: cursor,\n },\n { forceRefetch: true },\n ),\n )\n\n if (result.error) throw result.error\n const data = result.data as GetTasksByParentResult\n\n const fetchedTasks = data?.tasks || []\n allNewTasks.push(...fetchedTasks)\n\n const pageInfo = data?.pageInfo\n hasNextPage = pageInfo?.hasNextPage || false\n cursor = pageInfo?.endCursor || undefined\n }\n }\n\n // 4. Only mark folders as queried if the network loops complete successfully\n markFoldersAsQueried(cacheKey, newFolderIds)\n\n // 5. Append new tasks to the existing flat array cache with task ID deduplication\n const finalTasks = [...cacheData, ...allNewTasks]\n const uniqueTasksMap = new Map(finalTasks.map((task) => [task.id, task]))\n\n return {\n data: Array.from(uniqueTasksMap.values()),\n }\n } catch (e: any) {\n console.error(e)\n const errorMessage =\n e.message || e.data?.message || JSON.stringify(e) || 'Unknown Fetch Error'\n return { error: { status: 'FETCH_ERROR', error: errorMessage } as FetchBaseQueryError }\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, folderFilter, 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\n // Evict tracking map memory entry completely when this RTK Query cache entry expires\n const deadCacheKey = getCacheKey(projectName, filter, folderFilter, search, showComments)\n delete queriedFoldersRegistry[deadCacheKey]\n\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 includeFolderChildren,\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 includeFolderChildren: includeFolderChildren !== false, // default to true\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: string | undefined = 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","res","_e","normalizeFieldStats","error","transformStatsError","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","queriedFoldersRegistry","getCacheKey","filter","folderFilter","search","showComments","markFoldersAsQueried","cacheKey","folderIds","getQueriedFolders","injectedApi","build","dispatch","getState","state","cacheArgs","cacheData","alreadyQueriedFolders","newFolderIds","allNewTasks","BATCH_SIZE","TASK_PER_FOLDER","MAX_PAGES_PER_BATCH","MAX_FOLDERS","TASKS_PER_PAGE","i","batchFolderIds","hasNextPage","cursor","pageCount","data","fetchedTasks","pageInfo","finalTasks","uniqueTasksMap","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","parentId","PubSub","deadCacheKey","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","queryArg","pageParam","api","taskIds","sortBy","desc","includeFolderChildren","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","groupValue","groupTasks","a","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery","useGetFolderColumnStatsQuery","useGetTaskColumnStatsQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getOverview.es.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 from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport type { FieldStats } from '../columnStats'\nimport {\n normalizeFieldStats,\n mergeFieldStats,\n hasNewTargetFields,\n transformStatsError,\n} from '../columnStats'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\nconst CACHE_TIME = 10 // seconds\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}\nexport type GetTasksByParentResult = {\n pageInfo: GetTasksByParentQuery['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 showComments?: boolean\n includeFolderChildren?: boolean\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'], GetTasksByParentResult>\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: (res: GetTasksByParentQuery) => ({\n pageInfo: res?.project?.tasks?.pageInfo ?? { hasNextPage: false, endCursor: null },\n tasks: transformFilteredEntitiesByParent(res),\n }),\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName, parentIds),\n keepUnusedDataFor: CACHE_TIME,\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 keepUnusedDataFor: CACHE_TIME,\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 transformErrorResponse: (error: any) => transformStatsError(error, 'folder'),\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 keepUnusedDataFor: CACHE_TIME,\n },\n GetTaskColumnStats: {\n transformResponse: (res: GetTaskColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.tasks?.fieldStats ?? []),\n transformErrorResponse: (error: any) => transformStatsError(error, 'task'),\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 keepUnusedDataFor: CACHE_TIME,\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\n// --- TRACKING REGISTRY FOR EMPTY FOLDERS (FILTER-AWARE) ---\nconst queriedFoldersRegistry: Record<string, Set<string>> = {}\n\nconst getCacheKey = (\n projectName: string,\n filter?: string,\n folderFilter?: string,\n search?: string,\n showComments?: boolean,\n) => {\n return JSON.stringify({ projectName, filter, folderFilter, search, showComments })\n}\n\nconst markFoldersAsQueried = (cacheKey: string, folderIds: string[]) => {\n if (!queriedFoldersRegistry[cacheKey]) {\n queriedFoldersRegistry[cacheKey] = new Set()\n }\n folderIds.forEach((id) => queriedFoldersRegistry[cacheKey].add(id))\n}\n\nconst getQueriedFolders = (cacheKey: string): Set<string> => {\n return queriedFoldersRegistry[cacheKey] || new Set()\n}\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, getState, forced },\n ) {\n try {\n const state = getState()\n const cacheArgs = { projectName, filter, folderFilter, search, showComments }\n\n // Select current flat cache state\n const currentCache = (injectedApi.endpoints as any).getOverviewTasksByFolders.select(\n cacheArgs,\n )(state)\n const cacheData: EditorTaskNode[] = currentCache?.data || []\n\n // 1. Generate a stable cache key matching RTK Query's serialization\n const cacheKey = getCacheKey(projectName, filter, folderFilter, search, showComments)\n\n // 2. Fetch our registry specific to THIS combination of search/filters\n const alreadyQueriedFolders = getQueriedFolders(cacheKey)\n\n // 3. Diffing: Only request folders that haven't hit the network under these specific filters\n // If forced, we ignore the registry and fetch all folders again, like a refresh\n const newFolderIds = forced\n ? parentIds\n : parentIds.filter((id) => !alreadyQueriedFolders.has(id))\n\n // Short-circuit if all expanded folders have been evaluated for this filter setup\n if (newFolderIds.length === 0) {\n return { data: cacheData }\n }\n\n const allNewTasks: EditorTaskNode[] = []\n const BATCH_SIZE = 100\n const TASK_PER_FOLDER = 20\n const MAX_PAGES_PER_BATCH = 10\n const MAX_FOLDERS = 1000\n const TASKS_PER_PAGE = BATCH_SIZE * TASK_PER_FOLDER\n\n if (newFolderIds.length > MAX_FOLDERS) {\n throw new Error(\n `Exceeded maximum folders count limit ${MAX_FOLDERS} (${newFolderIds.length}). Please reduce the number of expanded folders.`,\n )\n }\n\n // 5. Batch folder IDs into groups and process them sequentially\n for (let i = 0; i < newFolderIds.length; i += BATCH_SIZE) {\n const batchFolderIds = newFolderIds.slice(i, i + BATCH_SIZE)\n\n let hasNextPage = true\n let cursor: string | undefined = undefined\n let pageCount = 0\n\n while (hasNextPage && pageCount < MAX_PAGES_PER_BATCH) {\n pageCount++\n\n if (pageCount === MAX_PAGES_PER_BATCH) {\n throw new Error(\n `Exceeded maximum tasks count limit ${MAX_PAGES_PER_BATCH * TASKS_PER_PAGE}.`,\n )\n }\n\n const result = await dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: batchFolderIds,\n filter,\n folderFilter,\n search,\n showComments: !!showComments,\n first: TASKS_PER_PAGE,\n after: cursor,\n },\n { forceRefetch: true },\n ),\n )\n\n if (result.error) throw result.error\n const data = result.data as GetTasksByParentResult\n\n const fetchedTasks = data?.tasks || []\n allNewTasks.push(...fetchedTasks)\n\n const pageInfo = data?.pageInfo\n hasNextPage = pageInfo?.hasNextPage || false\n cursor = pageInfo?.endCursor || undefined\n }\n }\n\n // 4. Only mark folders as queried if the network loops complete successfully\n markFoldersAsQueried(cacheKey, newFolderIds)\n\n // 5. Append new tasks to the existing flat array cache with task ID deduplication\n const finalTasks = [...cacheData, ...allNewTasks]\n const uniqueTasksMap = new Map(finalTasks.map((task) => [task.id, task]))\n\n return {\n data: Array.from(uniqueTasksMap.values()),\n }\n } catch (e: any) {\n console.error(e)\n const errorMessage =\n e.message || e.data?.message || JSON.stringify(e) || 'Unknown Fetch Error'\n return { error: { status: 'FETCH_ERROR', error: errorMessage } as FetchBaseQueryError }\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, folderFilter, 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\n // Evict tracking map memory entry completely when this RTK Query cache entry expires\n const deadCacheKey = getCacheKey(projectName, filter, folderFilter, search, showComments)\n delete queriedFoldersRegistry[deadCacheKey]\n\n if (token) PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) unsubscribeThumbnails()\n },\n keepUnusedDataFor: CACHE_TIME,\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 keepUnusedDataFor: CACHE_TIME,\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 includeFolderChildren,\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 includeFolderChildren: includeFolderChildren !== false, // default to true\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 keepUnusedDataFor: CACHE_TIME,\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: string | undefined = 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 keepUnusedDataFor: CACHE_TIME,\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":["CACHE_TIME","parseAllAttribs","allAttrib","transformFilteredEntitiesByParent","response","tasks","taskNode","getOverviewTaskTags","result","projectName","parentIds","taskTags","task","parentTags","id","enhancedApi","gqlApi","res","_e","normalizeFieldStats","error","transformStatsError","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","foldersApiEnhanced","foldersApi","TASKS_INFINITE_QUERY_COUNT","queriedFoldersRegistry","getCacheKey","filter","folderFilter","search","showComments","markFoldersAsQueried","cacheKey","folderIds","getQueriedFolders","injectedApi","build","dispatch","getState","forced","state","cacheArgs","cacheData","alreadyQueriedFolders","newFolderIds","allNewTasks","BATCH_SIZE","TASK_PER_FOLDER","MAX_PAGES_PER_BATCH","MAX_FOLDERS","TASKS_PER_PAGE","i","batchFolderIds","hasNextPage","cursor","pageCount","data","fetchedTasks","pageInfo","finalTasks","uniqueTasksMap","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","parentId","PubSub","deadCacheKey","folderSearchRequest","lastPage","_allPages","lastPageParam","_allPageParams","queryArg","pageParam","api","taskIds","sortBy","desc","includeFolderChildren","queryParams","fallback","p","arg","located","page","groups","groupCount","promises","folderFilterKeys","group","count","taskFilter","mergedFolderFilter","parsed","conditions","taskConditions","c","folderConditions","existingFolderFilter","allFolderConditions","promise","groupValue","groupTasks","a","useGetOverviewTasksByFoldersQuery","useGetSearchFoldersQuery","useGetTasksListQuery","useGetTasksListInfiniteInfiniteQuery","useLazyGetTasksByParentQuery","useGetGroupedTasksListQuery","useGetFolderColumnStatsQuery","useGetTaskColumnStatsQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const Q=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");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");const g=require("./getVersionsProductsUtils.cjs.js"),k=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../links/getEntityLinks.cjs.js");const P=require("../../../util/pubsub.cjs.js");require("lodash");require("react-toastify");require("uuid");const A=require("../../../util/thumbnailWebsocket.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.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("../bundles/getBundles.cjs.js");require("../bundles/updateBundles.cjs.js");require("../cloud/cloud.cjs.js");const E=require("../columnStats/columnStats.cjs.js"),G=require("../columnStats/metricTargets.cjs.js");require("../columnStats/groupCounts.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.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("./updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");function x(v,e,d,I){for(let p=0;p<v.length;p++){const c=e[d],y=v[p][d];if(I?c>y:c<y)return p}return v.length}function C(v,e,d,I,p,c){for(const y of v){const l=y[I],f=l.findIndex(n=>n.id===e);if(f!==-1){d?l[f]=d:l.splice(f,1);return}}if(d&&v.length>0){const y=v[0][I],l=x(y,d,p,c);y.splice(l,0,d)}}const F=Q.api.enhanceEndpoints({endpoints:{GetVersions:{transformResponse:g.transformVersionsResponse,providesTags:g.provideTagsForVersionsResult},GetVersionsByProductId:{transformResponse:g.transformVersionsResponse,providesTags:g.provideTagsForVersionsResult},GetProducts:{transformResponse:g.transformProductsResponse,providesTags:g.provideTagsForProductsResult},GetProductsColumnStats:{transformResponse:v=>E.normalizeFieldStats(v?.project?.products?.fieldStats??[]),transformErrorResponse:v=>E.transformStatsError(v,"product"),serializeQueryArgs:({queryArgs:{targets:v,...e}})=>e,merge:(v,e)=>E.mergeFieldStats(e,v),forceRefetch:({currentArg:v,previousArg:e})=>G.hasNewTargetFields(v,e),providesTags:(v,e,{projectName:d})=>[{type:"productColumnStats",id:d}]},GetVersionsColumnStats:{transformResponse:v=>E.normalizeFieldStats(v?.project?.versions?.fieldStats??[]),transformErrorResponse:v=>E.transformStatsError(v,"version"),serializeQueryArgs:({queryArgs:{targets:v,...e}})=>e,merge:(v,e)=>E.mergeFieldStats(e,v),forceRefetch:({currentArg:v,previousArg:e})=>G.hasNewTargetFields(v,e),providesTags:(v,e,{projectName:d})=>[{type:"versionColumnStats",id:d}]}}}),V=250,w=1e3,U=10,j=5e3,O=1e3,S=3e4,M=1500;function N(v,e,d){let I=[],p=null,c=new Set,y=null;const l=async()=>{const n=[...I];I=[],p=null;const r=[],t=[],i=new Set;for(const{topic:s,message:a}of n){const u=a.summary?.entityId,h=a.summary?.parentId;if(u){if(s==="entity.version.deleted")r.push({entityId:u,parentId:h});else if(s.startsWith("entity.version.")&&s.endsWith("_changed")){if(!d.checkVersionInCache(u,h))continue;const m=s.split(".")[2].split("_changed")[0];if(m==="attrib"){i.add(u);continue}const R=["status","tags"].includes(m),T=a.summary?.value;if(!T||!R){c.add(u);continue}let _=T;m==="status"?_=String(T):m==="tags"&&(_=Array.isArray(T)?T:[]),t.push({entityId:u,field:m,value:_,parentId:h})}}}c.size>0&&!y&&(y=setTimeout(f,S));const o=[];if(i.size>0&&e)try{await new Promise(u=>setTimeout(u,Math.random()*O));const s=Array.from(i),a=await e(F.endpoints.GetVersionsAttribs.initiate({projectName:v,versionIds:s},{forceRefetch:!0}));if(a.data?.project?.versions?.edges)for(const u of a.data.project.versions.edges){const h=u.node;h&&o.push({entityId:h.id,allAttrib:h.allAttrib,parsedAttrib:k.parseAllAttribs(h.allAttrib)})}}catch(s){console.error("Failed to fetch patched version attribs",s)}(r.length>0||t.length>0||o.length>0)&&d.onBatchUpdate({deleted:r,patched:t,attribPatched:o})},f=async()=>{const n=Array.from(c);if(c.clear(),y=null,!(n.length===0||!e))try{await new Promise(i=>setTimeout(i,Math.random()*M));const r=d.getBaseFilters?.()||{},t=await e(F.endpoints.GetVersions.initiate({...r,projectName:v,versionIds:n}));t.data?.versions&&d.onBatchUpdate({fullUpdated:t.data.versions})}catch(r){console.error("Failed to fetch full version data batch",r)}};return(n,r)=>{if(r.project!==v)return;const i=r.summary?.entityId;i&&(n==="entity.version.created"?(c.add(i),y||(y=setTimeout(f,S))):(I.push({topic:n,message:r}),p&&clearTimeout(p),p=setTimeout(l,j)))}}const B=F.injectEndpoints({endpoints:v=>({getVersionsInfinite:v.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,d,I,p)=>{const c=e.pageInfo;if(!(!(I.desc?c?.hasPreviousPage:c?.hasNextPage)||!c?.endCursor))return{cursor:c?.endCursor,desc:I.desc}}},queryFn:async({queryArg:e,pageParam:d},I)=>{try{const{sortBy:p,desc:c,folderIds:y,...l}=e,{cursor:f}=d,n={...l};p?(n.sortBy=p,c?(n.before=f||void 0,n.last=V):(n.after=f||void 0,n.first=V)):(n.after=f||void 0,n.first=V),y&&y.length&&(n.folderIds=y);const r=await I.dispatch(F.endpoints.GetVersions.initiate(n,{forceRefetch:!0}));if(r.error)throw r.error;const t={versions:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:r.data||t}}catch(p){return console.error("Error in getVersionsInfiniteQuery queryFn:",p),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(p.message)}}}},providesTags:g.provideTagsForVersionsInfinite,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{getCacheEntry:d,updateCachedData:I,cacheEntryRemoved:p,dispatch:c})=>{let y;y=A.subscribeToThumbnailUpdates(f=>{const n=f.filter(r=>r.project===e.projectName);n.length&&I(r=>{n.forEach(t=>{t.summary.entityType==="version"&&r.pages.forEach(i=>{const o=i.versions.findIndex(s=>s.id===t.summary.entityId);o!==-1&&(i.versions[o].thumbnailHash=t.summary.thumbnailHash||"")})})})},["version"]);const l=P.subscribe("entity.version",N(e.projectName,c,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,featuredOnly:e.featuredOnly,hasReviewables:e.hasReviewables,sortBy:e.sortBy}),checkVersionInCache:f=>{const n=d().data;if(!n)return!1;for(const r of n.pages||[])if(r.versions.some(t=>t.id===f))return!0;return!1},onBatchUpdate:({deleted:f,patched:n,attribPatched:r,fullUpdated:t})=>{I(i=>{for(const o of i?.pages||[]){if(f)for(const{entityId:s}of f){const a=o.versions.findIndex(u=>u.id===s);a!==-1&&o.versions.splice(a,1)}if(n)for(const{entityId:s,field:a,value:u}of n){const h=o.versions.find(q=>q.id===s);h&&(h[a]=u)}if(r)for(const{entityId:s,allAttrib:a,parsedAttrib:u}of r){const h=o.versions.find(q=>q.id===s);h&&(h.allAttrib=a,h.attrib=u)}if(t)for(const s of t){const a=o.versions.findIndex(u=>u.id===s.id);if(a!==-1)o.versions[a]=s;else{const u=e.sortBy||"createdAt",h=x(o.versions,s,u,e.desc||!1);o===i.pages[0]&&o.versions.splice(h,0,s)}}}})}}));await p,P.unsubscribe(l),y&&y()}}),getVersionsByProducts:v.query({queryFn:async(e,{dispatch:d,forced:I})=>{const{productIds:p=[],desc:c,...y}=e,l=async(i,o)=>{const s={...y,productIds:[i]};return c?(o&&(s.before=o),s.last=w):(o&&(s.after=o),s.first=w),d(F.endpoints.GetVersionsByProductId.initiate(s,{forceRefetch:I}))},f=p.map(i=>l(i)),n=await Promise.allSettled(f),r=[],t=[];for(let i=0;i<n.length;i++){const o=n[i],s=p[i];if(o.status==="rejected"){console.error(`Error fetching versions for product ${s}:`,o.reason),t.push({productId:s,error:g.parseGQLErrorMessage(o.reason)});continue}const a=o.value;if(a.error){console.error(`Error fetching versions for product ${s}:`,a.error),t.push({productId:s,error:g.parseGQLErrorMessage(a.error?.message||"Unknown error")});continue}if(!a.data)continue;r.push(...a.data.versions);let u=a.data.pageInfo,h=1;for(;u&&h<U;){const q=c?u.hasPreviousPage:u.hasNextPage,m=u.endCursor;if(!q||!m)break;const b=await l(s,m);if(b.error){console.error(`Error fetching versions page ${h+1} for product ${s}:`,b.error),t.push({productId:s,error:b.error});break}if(!b.data)break;r.push(...b.data.versions),u=b.data.pageInfo,h++}}return t.length>0&&console.warn(`Partial success: ${t.length} of ${p.length} products failed to fetch versions`,t),{data:{versions:r,pageInfo:void 0,errors:t.length>0?t:void 0}}},keepUnusedDataFor:30,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=A.subscribeToThumbnailUpdates(l=>{const f=l.filter(n=>n.project===e.projectName);f.length&&d(n=>{f.forEach(r=>{if(r.summary.entityType==="version"){const t=n.versions.findIndex(i=>i.id===r.summary.entityId);t!==-1&&(n.versions[t].thumbnailHash=r.summary.thumbnailHash||"")}})})},["version"]);const y=P.subscribe("entity.version",N(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,taskFilter:e.taskFilter,productIds:e.productIds}),checkVersionInCache:(l,f)=>{if(!f||!e.productIds.includes(f))return!1;let n=!1;return d(r=>{n=r.versions.some(t=>t.id===l)}),n},onBatchUpdate:({deleted:l,patched:f,attribPatched:n,fullUpdated:r})=>{d(t=>{if(l)for(const{entityId:i}of l){const o=t.versions.findIndex(s=>s.id===i);o!==-1&&t.versions.splice(o,1)}if(f)for(const{entityId:i,field:o,value:s}of f){const a=t.versions.find(u=>u.id===i);a&&(a[o]=s)}if(n)for(const{entityId:i,allAttrib:o,parsedAttrib:s}of n){const a=t.versions.find(u=>u.id===i);a&&(a.allAttrib=o,a.attrib=s)}if(r)for(const i of r){const o=t.versions.findIndex(s=>s.id===i.id);if(o!==-1)t.versions[o]=i;else{const s=e.sortBy||"createdAt",a=x(t.versions,i,s,e.desc||!1);t.versions.splice(a,0,i)}}})}}));await I,P.unsubscribe(y),c&&c()},providesTags:g.provideTagsForVersionsResult}),getProductsInfinite:v.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,d,I,p)=>{const c=e.pageInfo;if(!(!(I.desc?c?.hasPreviousPage:c?.hasNextPage)||!c?.endCursor))return{cursor:c?.endCursor,desc:I.desc}}},queryFn:async({queryArg:e,pageParam:d},I)=>{let p;try{const{sortBy:c,desc:y,folderIds:l,...f}=e,{cursor:n}=d,r={...f};if(c?(r.sortBy=c,y?(r.before=n||void 0,r.last=V):(r.after=n||void 0,r.first=V)):(r.after=n||void 0,r.first=V),l&&l.length&&(r.folderIds=l),p=await I.dispatch(F.endpoints.GetProducts.initiate(r,{forceRefetch:!0})),p.error)throw p.error;const t={products:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:p.data||t}}catch(c){return console.error("Error in getProductsInfiniteQuery queryFn:",c),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(c.message)}}}},providesTags:g.provideTagsForProductsInfinite,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=A.subscribeToThumbnailUpdates(r=>{const t=r.filter(i=>i.project===e.projectName);t.length&&d(i=>{t.forEach(o=>{o.summary.entityType==="version"&&i.pages.forEach(s=>{s.products.forEach(a=>{a.featuredVersion?.id===o.summary.entityId&&(a.featuredVersion.thumbnailHash=o.summary.thumbnailHash||"")})})})})},["version"]);const y=async r=>{const t={projectName:e.projectName,productIds:[r],productFilter:e.productFilter,versionFilter:e.versionFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,first:1},i=await p(F.endpoints.GetProducts.initiate(t,{forceRefetch:!0}));i.error||d(o=>{const s=i.data?.products?.[0];C(o.pages,r,s,"products",e.sortBy||"createdAt",e.desc||!1)})},l=P.subscribe("entity.product",async(r,t)=>{try{const i=t.summary?.entityId;if(!i)return;let o=!1;if(d(s=>{o=s.pages.some(a=>a.products.some(u=>u.id===i))}),!o&&r!=="entity.product.created")return;await y(i)}catch{}}),f=P.subscribe("entity.version",N(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0}),checkVersionInCache:(r,t)=>{let i=!1;return d(o=>{i=o.pages.some(s=>s.products.some(a=>a.id===t&&a.featuredVersion?.id===r))}),i},onBatchUpdate:({deleted:r,patched:t,attribPatched:i,fullUpdated:o})=>{d(s=>{for(const a of s?.pages||[])for(const u of a.products){const h=u.featuredVersion?.id;if(h){if(r&&r.some(q=>q.entityId===h&&q.parentId===u.id)&&n.add(u.id),t)for(const{entityId:q,field:m,value:b,parentId:R}of t)u.id===R&&h===q&&u.featuredVersion&&(u.featuredVersion[m]=b);if(i)for(const{entityId:q,allAttrib:m,parsedAttrib:b}of i)h===q&&u.featuredVersion&&(u.featuredVersion.allAttrib=m,u.featuredVersion.attrib=b);if(o)for(const q of o)h===q.id&&u.featuredVersion&&(u.featuredVersion=q)}}});for(const s of n)y(s);n.clear()}})),n=new Set;await I,P.unsubscribe(l),P.unsubscribe(f),c&&c()}}),getGroupedVersionsList:v.query({queryFn:async({projectName:e,groups:d,groupFilterKey:I="versionFilter",versionFilter:p,productFilter:c,taskFilter:y,folderIds:l,desc:f,sortBy:n,featuredOnly:r,hasReviewables:t},i)=>{try{const o=[];for(const u of d){const h=u.count||500,q={projectName:e,productFilter:c,taskFilter:y,versionFilter:p,[I]:u.filter,folderIds:l?.length?l:void 0,sortBy:n,featuredOnly:r,hasReviewables:t,group:u.value};f?q.last=h:q.first=h;const m=i.dispatch(F.endpoints.GetVersions.initiate(q,{forceRefetch:!0}));o.push(m)}const s=await Promise.all(o),a=[];for(const u of s){if(u.error)throw u.error;const h=u.originalArgs?.group,q=u.data?.pageInfo?.hasNextPage||u.data?.pageInfo?.hasPreviousPage||!1,m=u.data?.versions.map((b,R,T)=>({...b,groups:[{value:h,hasNextPage:R===T.length-1&&q?h:void 0}]}))||[];a.push(...m)}return{data:{versions:a}}}catch(o){return console.error("Error in getGroupedVersionsList queryFn:",o),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(o.message)}}}},providesTags:g.provideTagsForVersionsResult,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=A.subscribeToThumbnailUpdates(l=>{const f=l.filter(n=>n.project===e.projectName);f.length&&d(n=>{f.forEach(r=>{if(r.summary.entityType==="version"){const t=n.versions.findIndex(i=>i.id===r.summary.entityId);t!==-1&&(n.versions[t].thumbnailHash=r.summary.thumbnailHash||"")}})})},["version"]);const y=P.subscribe("entity.version",N(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,sortBy:e.sortBy,featuredOnly:e.featuredOnly,hasReviewables:e.hasReviewables}),checkVersionInCache:l=>{let f=!1;return d(n=>{f=n.versions.some(r=>r.id===l)}),f},onBatchUpdate:({deleted:l,patched:f,attribPatched:n,fullUpdated:r})=>{d(t=>{if(l)for(const{entityId:i}of l){const o=t.versions.findIndex(s=>s.id===i);o!==-1&&t.versions.splice(o,1)}if(f)for(const{entityId:i,field:o,value:s}of f){const a=t.versions.find(u=>u.id===i);a&&(a[o]=s)}if(n)for(const{entityId:i,allAttrib:o,parsedAttrib:s}of n){const a=t.versions.find(u=>u.id===i);a&&(a.allAttrib=o,a.attrib=s)}if(r)for(const i of r){const o=t.versions.findIndex(s=>s.id===i.id);if(o!==-1){const s=t.versions[o].groups;t.versions[o]={...i,groups:s}}}})}}));await I,P.unsubscribe(y),c&&c()}})})}),{useGetVersionsQuery:H,useGetProductsColumnStatsQuery:L,useGetVersionsColumnStatsQuery:z}=F,{useGetVersionsInfiniteInfiniteQuery:D,useGetVersionsByProductsQuery:$,useGetProductsInfiniteInfiniteQuery:W,useGetGroupedVersionsListQuery:Y}=B;exports.VP_INFINITE_QUERY_COUNT=V;exports.enhancedVersionsPageApi=F;exports.injectedVersionsPageApi=B;exports.useGetGroupedVersionsListQuery=Y;exports.useGetProductsColumnStatsQuery=L;exports.useGetProductsInfiniteQuery=W;exports.useGetVersionsByProductsQuery=$;exports.useGetVersionsColumnStatsQuery=z;exports.useGetVersionsInfiniteQuery=D;exports.useGetVersionsQuery=H;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const S=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");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");const g=require("./getVersionsProductsUtils.cjs.js"),B=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../links/getEntityLinks.cjs.js");const P=require("../../../util/pubsub.cjs.js");require("lodash");require("react-toastify");require("uuid");const N=require("../../../util/thumbnailWebsocket.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.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("../bundles/getBundles.cjs.js");require("../bundles/updateBundles.cjs.js");require("../cloud/cloud.cjs.js");const R=require("../columnStats/columnStats.cjs.js"),k=require("../columnStats/metricTargets.cjs.js");require("../columnStats/groupCounts.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.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("./updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const T=10;function G(v,e,d,I){for(let p=0;p<v.length;p++){const c=e[d],y=v[p][d];if(I?c>y:c<y)return p}return v.length}function Q(v,e,d,I,p,c){for(const y of v){const l=y[I],f=l.findIndex(n=>n.id===e);if(f!==-1){d?l[f]=d:l.splice(f,1);return}}if(d&&v.length>0){const y=v[0][I],l=G(y,d,p,c);y.splice(l,0,d)}}const F=S.api.enhanceEndpoints({endpoints:{GetVersions:{transformResponse:g.transformVersionsResponse,providesTags:g.provideTagsForVersionsResult,keepUnusedDataFor:T},GetVersionsByProductId:{transformResponse:g.transformVersionsResponse,providesTags:g.provideTagsForVersionsResult,keepUnusedDataFor:T},GetProducts:{transformResponse:g.transformProductsResponse,providesTags:g.provideTagsForProductsResult,keepUnusedDataFor:T},GetProductsColumnStats:{transformResponse:v=>R.normalizeFieldStats(v?.project?.products?.fieldStats??[]),transformErrorResponse:v=>R.transformStatsError(v,"product"),serializeQueryArgs:({queryArgs:{targets:v,...e}})=>e,merge:(v,e)=>R.mergeFieldStats(e,v),forceRefetch:({currentArg:v,previousArg:e})=>k.hasNewTargetFields(v,e),providesTags:(v,e,{projectName:d})=>[{type:"productColumnStats",id:d}],keepUnusedDataFor:T},GetVersionsColumnStats:{transformResponse:v=>R.normalizeFieldStats(v?.project?.versions?.fieldStats??[]),transformErrorResponse:v=>R.transformStatsError(v,"version"),serializeQueryArgs:({queryArgs:{targets:v,...e}})=>e,merge:(v,e)=>R.mergeFieldStats(e,v),forceRefetch:({currentArg:v,previousArg:e})=>k.hasNewTargetFields(v,e),providesTags:(v,e,{projectName:d})=>[{type:"versionColumnStats",id:d}],keepUnusedDataFor:T}}}),E=250,w=1e3,j=10,O=5e3,M=1e3,U=3e4,H=1500;function _(v,e,d){let I=[],p=null,c=new Set,y=null;const l=async()=>{const n=[...I];I=[],p=null;const r=[],t=[],i=new Set;for(const{topic:s,message:a}of n){const u=a.summary?.entityId,h=a.summary?.parentId;if(u){if(s==="entity.version.deleted")r.push({entityId:u,parentId:h});else if(s.startsWith("entity.version.")&&s.endsWith("_changed")){if(!d.checkVersionInCache(u,h))continue;const m=s.split(".")[2].split("_changed")[0];if(m==="attrib"){i.add(u);continue}const A=["status","tags"].includes(m),V=a.summary?.value;if(!V||!A){c.add(u);continue}let x=V;m==="status"?x=String(V):m==="tags"&&(x=Array.isArray(V)?V:[]),t.push({entityId:u,field:m,value:x,parentId:h})}}}c.size>0&&!y&&(y=setTimeout(f,U));const o=[];if(i.size>0&&e)try{await new Promise(u=>setTimeout(u,Math.random()*M));const s=Array.from(i),a=await e(F.endpoints.GetVersionsAttribs.initiate({projectName:v,versionIds:s},{forceRefetch:!0}));if(a.data?.project?.versions?.edges)for(const u of a.data.project.versions.edges){const h=u.node;h&&o.push({entityId:h.id,allAttrib:h.allAttrib,parsedAttrib:B.parseAllAttribs(h.allAttrib)})}}catch(s){console.error("Failed to fetch patched version attribs",s)}(r.length>0||t.length>0||o.length>0)&&d.onBatchUpdate({deleted:r,patched:t,attribPatched:o})},f=async()=>{const n=Array.from(c);if(c.clear(),y=null,!(n.length===0||!e))try{await new Promise(i=>setTimeout(i,Math.random()*H));const r=d.getBaseFilters?.()||{},t=await e(F.endpoints.GetVersions.initiate({...r,projectName:v,versionIds:n}));t.data?.versions&&d.onBatchUpdate({fullUpdated:t.data.versions})}catch(r){console.error("Failed to fetch full version data batch",r)}};return(n,r)=>{if(r.project!==v)return;const i=r.summary?.entityId;i&&(n==="entity.version.created"?(c.add(i),y||(y=setTimeout(f,U))):(I.push({topic:n,message:r}),p&&clearTimeout(p),p=setTimeout(l,O)))}}const C=F.injectEndpoints({endpoints:v=>({getVersionsInfinite:v.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,d,I,p)=>{const c=e.pageInfo;if(!(!(I.desc?c?.hasPreviousPage:c?.hasNextPage)||!c?.endCursor))return{cursor:c?.endCursor,desc:I.desc}}},queryFn:async({queryArg:e,pageParam:d},I)=>{try{const{sortBy:p,desc:c,folderIds:y,...l}=e,{cursor:f}=d,n={...l};p?(n.sortBy=p,c?(n.before=f||void 0,n.last=E):(n.after=f||void 0,n.first=E)):(n.after=f||void 0,n.first=E),y&&y.length&&(n.folderIds=y);const r=await I.dispatch(F.endpoints.GetVersions.initiate(n,{forceRefetch:!0}));if(r.error)throw r.error;const t={versions:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:r.data||t}}catch(p){return console.error("Error in getVersionsInfiniteQuery queryFn:",p),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(p.message)}}}},providesTags:g.provideTagsForVersionsInfinite,onCacheEntryAdded:async(e,{getCacheEntry:d,updateCachedData:I,cacheEntryRemoved:p,dispatch:c})=>{let y;y=N.subscribeToThumbnailUpdates(f=>{const n=f.filter(r=>r.project===e.projectName);n.length&&I(r=>{n.forEach(t=>{t.summary.entityType==="version"&&r.pages.forEach(i=>{const o=i.versions.findIndex(s=>s.id===t.summary.entityId);o!==-1&&(i.versions[o].thumbnailHash=t.summary.thumbnailHash||"")})})})},["version"]);const l=P.subscribe("entity.version",_(e.projectName,c,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,featuredOnly:e.featuredOnly,hasReviewables:e.hasReviewables,sortBy:e.sortBy}),checkVersionInCache:f=>{const n=d().data;if(!n)return!1;for(const r of n.pages||[])if(r.versions.some(t=>t.id===f))return!0;return!1},onBatchUpdate:({deleted:f,patched:n,attribPatched:r,fullUpdated:t})=>{I(i=>{for(const o of i?.pages||[]){if(f)for(const{entityId:s}of f){const a=o.versions.findIndex(u=>u.id===s);a!==-1&&o.versions.splice(a,1)}if(n)for(const{entityId:s,field:a,value:u}of n){const h=o.versions.find(q=>q.id===s);h&&(h[a]=u)}if(r)for(const{entityId:s,allAttrib:a,parsedAttrib:u}of r){const h=o.versions.find(q=>q.id===s);h&&(h.allAttrib=a,h.attrib=u)}if(t)for(const s of t){const a=o.versions.findIndex(u=>u.id===s.id);if(a!==-1)o.versions[a]=s;else{const u=e.sortBy||"createdAt",h=G(o.versions,s,u,e.desc||!1);o===i.pages[0]&&o.versions.splice(h,0,s)}}}})}}));await p,P.unsubscribe(l),y&&y()},keepUnusedDataFor:T}),getVersionsByProducts:v.query({queryFn:async(e,{dispatch:d,forced:I})=>{const{productIds:p=[],desc:c,...y}=e,l=async(i,o)=>{const s={...y,productIds:[i]};return c?(o&&(s.before=o),s.last=w):(o&&(s.after=o),s.first=w),d(F.endpoints.GetVersionsByProductId.initiate(s,{forceRefetch:I}))},f=p.map(i=>l(i)),n=await Promise.allSettled(f),r=[],t=[];for(let i=0;i<n.length;i++){const o=n[i],s=p[i];if(o.status==="rejected"){console.error(`Error fetching versions for product ${s}:`,o.reason),t.push({productId:s,error:g.parseGQLErrorMessage(o.reason)});continue}const a=o.value;if(a.error){console.error(`Error fetching versions for product ${s}:`,a.error),t.push({productId:s,error:g.parseGQLErrorMessage(a.error?.message||"Unknown error")});continue}if(!a.data)continue;r.push(...a.data.versions);let u=a.data.pageInfo,h=1;for(;u&&h<j;){const q=c?u.hasPreviousPage:u.hasNextPage,m=u.endCursor;if(!q||!m)break;const b=await l(s,m);if(b.error){console.error(`Error fetching versions page ${h+1} for product ${s}:`,b.error),t.push({productId:s,error:b.error});break}if(!b.data)break;r.push(...b.data.versions),u=b.data.pageInfo,h++}}return t.length>0&&console.warn(`Partial success: ${t.length} of ${p.length} products failed to fetch versions`,t),{data:{versions:r,pageInfo:void 0,errors:t.length>0?t:void 0}}},onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=N.subscribeToThumbnailUpdates(l=>{const f=l.filter(n=>n.project===e.projectName);f.length&&d(n=>{f.forEach(r=>{if(r.summary.entityType==="version"){const t=n.versions.findIndex(i=>i.id===r.summary.entityId);t!==-1&&(n.versions[t].thumbnailHash=r.summary.thumbnailHash||"")}})})},["version"]);const y=P.subscribe("entity.version",_(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,taskFilter:e.taskFilter,productIds:e.productIds}),checkVersionInCache:(l,f)=>{if(!f||!e.productIds.includes(f))return!1;let n=!1;return d(r=>{n=r.versions.some(t=>t.id===l)}),n},onBatchUpdate:({deleted:l,patched:f,attribPatched:n,fullUpdated:r})=>{d(t=>{if(l)for(const{entityId:i}of l){const o=t.versions.findIndex(s=>s.id===i);o!==-1&&t.versions.splice(o,1)}if(f)for(const{entityId:i,field:o,value:s}of f){const a=t.versions.find(u=>u.id===i);a&&(a[o]=s)}if(n)for(const{entityId:i,allAttrib:o,parsedAttrib:s}of n){const a=t.versions.find(u=>u.id===i);a&&(a.allAttrib=o,a.attrib=s)}if(r)for(const i of r){const o=t.versions.findIndex(s=>s.id===i.id);if(o!==-1)t.versions[o]=i;else{const s=e.sortBy||"createdAt",a=G(t.versions,i,s,e.desc||!1);t.versions.splice(a,0,i)}}})}}));await I,P.unsubscribe(y),c&&c()},providesTags:g.provideTagsForVersionsResult,keepUnusedDataFor:T}),getProductsInfinite:v.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,d,I,p)=>{const c=e.pageInfo;if(!(!(I.desc?c?.hasPreviousPage:c?.hasNextPage)||!c?.endCursor))return{cursor:c?.endCursor,desc:I.desc}}},queryFn:async({queryArg:e,pageParam:d},I)=>{let p;try{const{sortBy:c,desc:y,folderIds:l,...f}=e,{cursor:n}=d,r={...f};if(c?(r.sortBy=c,y?(r.before=n||void 0,r.last=E):(r.after=n||void 0,r.first=E)):(r.after=n||void 0,r.first=E),l&&l.length&&(r.folderIds=l),p=await I.dispatch(F.endpoints.GetProducts.initiate(r,{forceRefetch:!0})),p.error)throw p.error;const t={products:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:p.data||t}}catch(c){return console.error("Error in getProductsInfiniteQuery queryFn:",c),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(c.message)}}}},providesTags:g.provideTagsForProductsInfinite,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=N.subscribeToThumbnailUpdates(r=>{const t=r.filter(i=>i.project===e.projectName);t.length&&d(i=>{t.forEach(o=>{o.summary.entityType==="version"&&i.pages.forEach(s=>{s.products.forEach(a=>{a.featuredVersion?.id===o.summary.entityId&&(a.featuredVersion.thumbnailHash=o.summary.thumbnailHash||"")})})})})},["version"]);const y=async r=>{const t={projectName:e.projectName,productIds:[r],productFilter:e.productFilter,versionFilter:e.versionFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,first:1},i=await p(F.endpoints.GetProducts.initiate(t,{forceRefetch:!0}));i.error||d(o=>{const s=i.data?.products?.[0];Q(o.pages,r,s,"products",e.sortBy||"createdAt",e.desc||!1)})},l=P.subscribe("entity.product",async(r,t)=>{try{const i=t.summary?.entityId;if(!i)return;let o=!1;if(d(s=>{o=s.pages.some(a=>a.products.some(u=>u.id===i))}),!o&&r!=="entity.product.created")return;await y(i)}catch{}}),f=P.subscribe("entity.version",_(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0}),checkVersionInCache:(r,t)=>{let i=!1;return d(o=>{i=o.pages.some(s=>s.products.some(a=>a.id===t&&a.featuredVersion?.id===r))}),i},onBatchUpdate:({deleted:r,patched:t,attribPatched:i,fullUpdated:o})=>{d(s=>{for(const a of s?.pages||[])for(const u of a.products){const h=u.featuredVersion?.id;if(h){if(r&&r.some(q=>q.entityId===h&&q.parentId===u.id)&&n.add(u.id),t)for(const{entityId:q,field:m,value:b,parentId:A}of t)u.id===A&&h===q&&u.featuredVersion&&(u.featuredVersion[m]=b);if(i)for(const{entityId:q,allAttrib:m,parsedAttrib:b}of i)h===q&&u.featuredVersion&&(u.featuredVersion.allAttrib=m,u.featuredVersion.attrib=b);if(o)for(const q of o)h===q.id&&u.featuredVersion&&(u.featuredVersion=q)}}});for(const s of n)y(s);n.clear()}})),n=new Set;await I,P.unsubscribe(l),P.unsubscribe(f),c&&c()},keepUnusedDataFor:T}),getGroupedVersionsList:v.query({queryFn:async({projectName:e,groups:d,groupFilterKey:I="versionFilter",versionFilter:p,productFilter:c,taskFilter:y,folderIds:l,desc:f,sortBy:n,featuredOnly:r,hasReviewables:t},i)=>{try{const o=[];for(const u of d){const h=u.count||500,q={projectName:e,productFilter:c,taskFilter:y,versionFilter:p,[I]:u.filter,folderIds:l?.length?l:void 0,sortBy:n,featuredOnly:r,hasReviewables:t,group:u.value};f?q.last=h:q.first=h;const m=i.dispatch(F.endpoints.GetVersions.initiate(q,{forceRefetch:!0}));o.push(m)}const s=await Promise.all(o),a=[];for(const u of s){if(u.error)throw u.error;const h=u.originalArgs?.group,q=u.data?.pageInfo?.hasNextPage||u.data?.pageInfo?.hasPreviousPage||!1,m=u.data?.versions.map((b,A,V)=>({...b,groups:[{value:h,hasNextPage:A===V.length-1&&q?h:void 0}]}))||[];a.push(...m)}return{data:{versions:a}}}catch(o){return console.error("Error in getGroupedVersionsList queryFn:",o),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(o.message)}}}},providesTags:g.provideTagsForVersionsResult,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=N.subscribeToThumbnailUpdates(l=>{const f=l.filter(n=>n.project===e.projectName);f.length&&d(n=>{f.forEach(r=>{if(r.summary.entityType==="version"){const t=n.versions.findIndex(i=>i.id===r.summary.entityId);t!==-1&&(n.versions[t].thumbnailHash=r.summary.thumbnailHash||"")}})})},["version"]);const y=P.subscribe("entity.version",_(e.projectName,p,{getBaseFilters:()=>({versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,sortBy:e.sortBy,featuredOnly:e.featuredOnly,hasReviewables:e.hasReviewables}),checkVersionInCache:l=>{let f=!1;return d(n=>{f=n.versions.some(r=>r.id===l)}),f},onBatchUpdate:({deleted:l,patched:f,attribPatched:n,fullUpdated:r})=>{d(t=>{if(l)for(const{entityId:i}of l){const o=t.versions.findIndex(s=>s.id===i);o!==-1&&t.versions.splice(o,1)}if(f)for(const{entityId:i,field:o,value:s}of f){const a=t.versions.find(u=>u.id===i);a&&(a[o]=s)}if(n)for(const{entityId:i,allAttrib:o,parsedAttrib:s}of n){const a=t.versions.find(u=>u.id===i);a&&(a.allAttrib=o,a.attrib=s)}if(r)for(const i of r){const o=t.versions.findIndex(s=>s.id===i.id);if(o!==-1){const s=t.versions[o].groups;t.versions[o]={...i,groups:s}}}})}}));await I,P.unsubscribe(y),c&&c()},keepUnusedDataFor:T})})}),{useGetVersionsQuery:D,useGetProductsColumnStatsQuery:L,useGetVersionsColumnStatsQuery:z}=F,{useGetVersionsInfiniteInfiniteQuery:$,useGetVersionsByProductsQuery:W,useGetProductsInfiniteInfiniteQuery:Y,useGetGroupedVersionsListQuery:J}=C;exports.VP_INFINITE_QUERY_COUNT=E;exports.enhancedVersionsPageApi=F;exports.injectedVersionsPageApi=C;exports.useGetGroupedVersionsListQuery=J;exports.useGetProductsColumnStatsQuery=L;exports.useGetProductsInfiniteQuery=Y;exports.useGetVersionsByProductsQuery=W;exports.useGetVersionsColumnStatsQuery=z;exports.useGetVersionsInfiniteQuery=$;exports.useGetVersionsQuery=D;
2
2
  //# sourceMappingURL=getVersionsProducts.cjs.js.map