@ynput/ayon-frontend-shared 0.3.41 → 0.3.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -27
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +224 -223
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +25 -16
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs6.js +1 -1
  11. package/dist/_virtual/index.cjs8.js +1 -1
  12. package/dist/_virtual/index.es6.js +2 -2
  13. package/dist/_virtual/index.es8.js +2 -2
  14. package/dist/api.cjs.js +1 -1
  15. package/dist/api.es.js +420 -419
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +15 -14
  18. package/dist/index.es.js.map +1 -1
  19. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  20. package/dist/node_modules/remove-accents/index.es.js +1 -1
  21. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  22. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  23. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  24. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  25. package/dist/shared/src/api/generated/graphql.cjs.js +41 -27
  26. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/graphql.es.js +259 -97
  28. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  29. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  30. package/dist/shared/src/api/generated/graphqlLinks.es.js +70 -19
  31. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/updateActivities.es.js +40 -43
  35. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  37. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  38. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +149 -55
  39. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +105 -51
  45. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entityLists/getLists.es.js +174 -124
  49. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  51. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +94 -40
  53. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  55. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  56. package/dist/shared/src/api/queries/folders/getFolders.es.js +109 -55
  57. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  58. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  59. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  60. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +117 -63
  61. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/links/getLinks.es.js +108 -54
  65. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/overview/getOverview.es.js +220 -167
  69. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +133 -80
  73. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/review/getReview.es.js +127 -75
  77. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +142 -90
  81. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
  83. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  85. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +537 -331
  89. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  90. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  91. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  92. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +124 -29
  93. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  94. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  95. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  96. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +140 -45
  97. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  98. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  99. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  100. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +8 -7
  101. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  102. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  103. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -4
  104. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  105. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  106. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -18
  107. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  108. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  109. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  110. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +108 -13
  111. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  112. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  113. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -3
  114. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  115. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  116. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +119 -24
  117. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  118. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  119. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  120. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +97 -2
  121. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  122. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  123. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  124. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +8 -7
  125. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  126. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  127. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  128. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +8 -7
  129. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  130. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  131. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -5
  132. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  133. package/dist/shared/src/components/LinksManager/LinksManager.es.js +9 -9
  134. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  135. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  136. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -7
  137. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  138. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  139. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -4
  140. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  141. package/dist/shared/src/components/Menu/Menu.es.js +7 -7
  142. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  143. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  144. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +22 -21
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  146. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  147. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +56 -55
  149. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  150. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  151. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  152. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +16 -14
  153. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  154. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  155. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  156. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +9 -8
  157. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  158. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  159. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  160. package/dist/shared/src/components/RenameForm/RenameForm.es.js +8 -7
  161. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  162. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  163. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  164. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -7
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +9 -8
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  170. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  171. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  172. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -7
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  174. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  175. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  176. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +8 -7
  177. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  178. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  179. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -1
  180. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  181. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  182. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +10 -9
  183. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  184. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  185. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  186. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -7
  187. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  188. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  189. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  190. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +122 -27
  191. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  192. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  193. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  194. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +117 -22
  195. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  196. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  197. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  198. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -7
  199. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  200. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  201. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  202. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +12 -11
  203. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  204. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  205. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -7
  207. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  208. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  209. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/Actions/Actions.es.js +42 -42
  211. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  212. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  213. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
  215. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  216. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
  217. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
  219. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  220. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  221. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -7
  223. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -7
  227. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  228. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -7
  231. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  232. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  233. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +8 -7
  235. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  236. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  237. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +30 -29
  239. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  240. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  241. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +12 -11
  243. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  244. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  245. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +115 -20
  247. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  248. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +8 -7
  251. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  252. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -21
  255. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  256. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -7
  259. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  261. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -7
  263. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  264. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  265. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +105 -10
  267. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  268. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  269. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -2
  270. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  271. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +30 -29
  273. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  274. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  275. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -7
  277. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  278. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  279. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -7
  281. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  282. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  283. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -7
  285. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  286. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  287. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +106 -11
  289. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  290. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  291. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  292. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +122 -27
  293. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  294. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  295. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -7
  297. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  298. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  299. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +90 -80
  301. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  302. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  303. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +8 -7
  305. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  306. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +119 -24
  309. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  310. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  311. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +28 -29
  313. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  314. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  315. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -7
  317. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  318. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +12 -11
  321. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  322. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  323. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +104 -9
  325. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  326. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  327. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +1 -1
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  329. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -7
  331. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  332. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
  333. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
  334. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
  335. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
  336. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  337. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +185 -87
  339. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  340. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  341. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +105 -10
  343. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  344. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  345. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +108 -13
  347. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  348. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  349. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ListTable/ListTable.es.js +21 -20
  351. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  352. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  353. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -7
  355. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  356. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  357. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +8 -7
  359. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +428 -424
  363. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +71 -70
  367. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -7
  371. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +8 -7
  375. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -7
  379. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -7
  383. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +22 -21
  387. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +8 -7
  391. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +178 -83
  395. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  396. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +30 -29
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +23 -22
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -7
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -7
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +25 -24
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -7
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +72 -72
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +25 -24
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +24 -23
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -7
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -7
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -8
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +23 -22
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +13 -16
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +47 -42
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +37 -36
  459. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +8 -7
  463. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +9 -8
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +8 -7
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +10 -9
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +4 -4
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +24 -23
  481. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -7
  485. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +4 -4
  488. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  489. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +175 -80
  491. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  493. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +107 -12
  495. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  496. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  497. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +41 -40
  499. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  500. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  501. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -7
  503. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  504. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  505. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  506. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
  507. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  508. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  509. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -7
  511. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  512. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  513. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  514. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +273 -124
  515. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  516. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
  517. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
  518. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
  519. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
  520. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  521. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  522. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  523. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  524. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
  525. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
  526. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +156 -0
  527. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
  528. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
  529. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
  530. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +187 -0
  531. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
  532. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
  533. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
  534. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +143 -0
  535. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
  536. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  537. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +47 -43
  539. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  540. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
  541. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +8 -13
  543. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  544. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +2 -0
  545. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +1 -0
  546. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +8 -0
  547. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +1 -0
  548. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  549. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +124 -29
  551. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  552. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  553. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +2 -2
  554. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  555. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +7 -6
  557. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  558. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  559. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +113 -18
  561. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  562. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  563. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +140 -45
  565. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  566. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  567. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +2 -2
  568. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  570. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  571. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  572. package/dist/shared/src/context/DetailsPanelContext.es.js +64 -63
  573. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  574. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  575. package/dist/shared/src/context/PowerpackContext.es.js +2 -2
  576. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  577. package/dist/shared/src/context/ProjectFoldersContext.es.js +2 -2
  578. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  579. package/dist/shared/src/context/SubtasksModulesContext.es.js +2 -2
  580. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  581. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  582. package/dist/shared/src/context/UriContext.es.js +1 -1
  583. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  584. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  585. package/dist/shared/src/context/WebsocketContext.es.js +17 -16
  586. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  587. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  588. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  589. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +2 -2
  590. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  591. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  592. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +115 -20
  593. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  594. package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
  595. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
  596. package/dist/shared/src/util/getBundleMode.es.js +118 -0
  597. package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
  598. package/dist/types/api/generated/graphql.d.ts +639 -853
  599. package/dist/types/api/generated/graphqlLinks.d.ts +190 -284
  600. package/dist/types/api/queries/activities/getActivities.d.ts +144 -137
  601. package/dist/types/api/queries/activities/updateActivities.d.ts +288 -274
  602. package/dist/types/api/queries/columnStats/columnStats.d.ts +3 -21
  603. package/dist/types/api/queries/entities/getEntity.d.ts +144 -137
  604. package/dist/types/api/queries/entities/getEntityPanel.d.ts +144 -137
  605. package/dist/types/api/queries/entities/updateEntity.d.ts +144 -137
  606. package/dist/types/api/queries/entityLists/getLists.d.ts +1388 -1381
  607. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  608. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +66 -66
  609. package/dist/types/api/queries/overview/getOverview.d.ts +630 -623
  610. package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
  611. package/dist/types/api/queries/project/getProject.d.ts +264 -257
  612. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +192 -185
  613. package/dist/types/api/queries/users/getUsers.d.ts +177 -170
  614. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +784 -770
  615. package/dist/types/api/queries/versions/updateVersions.d.ts +106 -143
  616. package/dist/types/containers/Actions/Actions.d.ts +3 -2
  617. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
  618. package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
  619. package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -2
  620. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
  621. package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
  622. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -19
  623. package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
  624. package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
  625. package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
  626. package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +20 -0
  627. package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
  628. package/dist/types/containers/Slicer/types.d.ts +7 -0
  629. package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +5 -3
  630. package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
  631. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  632. package/dist/types/context/DetailsPanelContext.d.ts +2 -1
  633. package/dist/types/util/getBundleMode.d.ts +4 -0
  634. package/dist/types/util/index.d.ts +1 -0
  635. package/dist/util.cjs.js +1 -1
  636. package/dist/util.es.js +33 -30
  637. package/dist/util.es.js.map +1 -1
  638. package/package.json +3 -3
  639. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
  640. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
  641. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
  642. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
  643. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,MAAMA,IAAkB,CAACC,MACvBA,EAAS,OAAO,MACb,IAAI,CAAC,EAAE,MAAAC,EAAA,MAAWA,CAAI,EACtB,KAAK,CAACC,GAAGC,MAAM;AACd,QAAMC,IAASF,EAAE,SAASA,EAAE,MACtBG,IAASF,EAAE,SAASA,EAAE;AAC5B,SAAOC,EAAO,cAAcC,CAAM;AACpC,CAAC,GAECC,IAAoB,CAACC,GAAuCC,GAAaC,MAC7EF,GAAQ,SACJ;AAAA,EACE,EAAE,MAAM,cAAc,IAAI,OAAA;AAAA,EAC1B,GAAGA,EAAO,QAAQ,CAAC,EAAE,IAAAG,GAAI,aAAAC,GAAa,WAAAC,QAAgB;AAAA,IACpD,EAAE,MAAM,QAAQ,IAAAF,EAAA;AAAA,IAChB,EAAE,MAAM,UAAU,IAAI,aAAaC,EAAA;AAAA,IACnC,GAAGC,EAAU,IAAI,CAACC,OAAc,EAAE,MAAM,UAAU,IAAI,UAAUA,EAAA,EAAW;AAAA,IAC3E,GAAGD,EAAU,IAAI,CAACC,OAAc;AAAA,MAC9B,MAAM;AAAA,MACN,IAAI,UAAUA,IAAW,cAAcF;AAAA,IAAA,EACvC;AAAA,IACF,EAAE,MAAM,UAAU,IAAI,KAAK,UAAUF,CAAI,EAAA;AAAA,EAAE,CAC5C;AACH,IACA,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ,GAE5BK,IAAiB,OAC5B;AAAA,EACE,UAAAC,IAAW,CAAA;AAAA,EACX,SAAAC,IAAU,CAAA;AACZ,GAIAC,MACG;AACH,MAAI;AAEF,UAAMjB,IAAW,MAAMiB;AAAA,MACrBC,EAA4B,UAAU,eAAe;AAAA,QACnD,EAAE,UAAAH,GAAU,SAAAC,EAAA;AAAA,QACZ,EAAE,cAAc,GAAA;AAAA,MAAK;AAAA,IACvB;AAGF,QAAIhB,EAAS,WAAW,cAAc,CAACA,EAAS;AAC9C,oBAAQ,MAAM,kBAAkBgB,CAAO,GACjC,IAAI,MAAM,kBAAkBA,EAAQ,KAAK,IAAI,CAAC,EAAE;AAGxD,WAAIhB,EAAS,WAAW,cAAoB,CAAA,IAErCA,EAAS;AAAA,EAClB,SAASmB,GAAO;AACd,mBAAQ,MAAMA,CAAK,GACZ,CAAA;AAAA,EACT;AACF,GAEMD,IAA8BE,EAAO,iBAA+C;AAAA,EACxF,WAAW;AAAA,IACT,WAAW;AAAA,MACT,mBAAmBrB;AAAA,MACnB,cAAcO;AAAA,MACd,MAAM,kBACJ,EAAE,WAAAM,IAAY,CAAA,GAAI,UAAAG,IAAW,CAAA,EAAC,IAAM,IACpC,EAAE,kBAAAM,GAAkB,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAN,GAAU,eAAAO,KAClE;AACA,YAAIC,GACAC,GACAC,IAA0D,CAAA,GAC1DC,IAAoB;AACxB,YAAI;AAEF,gBAAMN,GAENI,IAAwBG;AAAA,YACtB,CAACC,MAAuC;AACtC,oBAAMC,IAAaP,IAAgB,QAAQ,CAAA;AAC3C,kBAAI,CAACO,EAAW,OAAQ;AAExB,oBAAMC,IAAkBF,EAAS;AAAA,gBAAO,CAACG,MACvCF,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOD,EAAE,QAAQ,YAAYC,EAAE,gBAAgBD,EAAE,OAAO;AAAA,cAAA;AAEnF,cAAID,EAAgB,WAAW,KAE/BX,EAAiB,CAACc,MAAU;AAC1B,gBAAAH,EAAgB,QAAQ,CAACI,MAAY;AACnC,wBAAMC,IAAcF,EAAM,UAAU,CAAC,MAAM,EAAE,OAAOC,EAAQ,QAAQ,QAAQ;AAC5E,kBAAIC,MAAgB,MAAMF,EAAME,CAAW,KAAKD,EAAQ,QAAQ,kBAC9DD,EAAME,CAAW,EAAE,gBAAgBD,EAAQ,QAAQ;AAAA,gBAEvD,CAAC;AAAA,cACH,CAAC;AAAA,YACH;AAAA,YACA,CAAC,MAAM;AAAA,UAAA;AAGT,gBAAME,IAAoB,YAAY;AACpC,kBAAMC,IAAQ,CAAC,GAAGZ,CAAU;AAC5B,YAAAA,IAAa,CAAA,GACbC,IAAe;AAEf,kBAAMZ,IAAU,MAAM,KAAK,IAAI,IAAIuB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,OAAO,CAAC,CAAC,GAC7DY,IAAW,MAAM,KAAK,IAAI,IAAIwB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,QAAQ,CAAC,CAAC;AAErE,gBAAIa,EAAQ,WAAW,EAAG;AAE1B,kBAAMwB,IAAQ,MAAM1B,EAAe,EAAE,UAAAC,GAAU,SAAAC,EAAA,GAAWC,CAAQ,GAG5DwB,IAAwBD,EAAM;AAAA,cAAO,CAACE,MAC1CA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA,GAG3D8B,IAA2BH,EAAM;AAAA,cACrC,CAACE,MAAS,CAACA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA;AAI5E,YAAAQ,EAAiB,CAACc,MAAU;AAE1B,cAAAM,EAAsB,QAAQ,CAACC,MAAS;AACtC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,KACZT,EAAM,KAAKO,CAAI,IAGfP,EAAMS,CAAK,IAAIF;AAAA,cAEnB,CAAC,GAEDC,EAAyB,QAAQ,CAACD,MAAS;AACzC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,MACZT,EAAM,OAAOS,GAAO,CAAC;AAAA,cAEzB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,GAEMC,IAAkB,CAAC;AAAA,YACvB,UAAA9B,IAAW,CAAA;AAAA,YACX,SAAAC,IAAU,CAAA;AAAA,YACV,SAAA8B;AAAA,UAAA,MAKI;AACJ,gBAAIC,IAAa;AA8BjB,gBA5BID,IACFzB,EAAiB,CAACc,MAAU;AAC1B,cAAAnB,EAAQ,QAAQ,CAACN,MAAO;AACtB,sBAAMkC,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOxB,CAAE;AAChD,gBAAIkC,MAAU,MAEZ,OAAO,OAAOT,EAAMS,CAAK,GAAGE,CAAO,GAG/BA,EAAQ,cAER,CAAClC,GAAW,UAAUkC,EAAQ,UAAU,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,KAE1EiC,EAAM,OAAOS,GAAO,CAAC,MAKrBE,EAAQ,WAAW,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,MACvD6C,IAAa;AAAA,cAGnB,CAAC;AAAA,YACH,CAAC,IAEDA,IAAa,IAGX,EAACA,MAGLpB,EAAW,KAAK,EAAE,UAAAZ,GAAU,SAAAC,GAAS,GAGjC,CAACY,IAAc;AACjB,oBAAMoB,IAAQ,KAAK,OAAA,IAAW;AAC9B,cAAApB,IAAe,WAAWU,GAAmBU,CAAK;AAAA,YACpD;AAAA,UACF,GAEMC,IAAe,OAAOC,GAAgBd,MAAqB;AAC/D,kBAAMe,IAAUf,EAAQ;AAExB,gBAAI,CAACrB,GAAU,SAASoC,CAAO,EAAG,QAAO,QAAQ,IAAI,sBAAsB;AAE3E,kBAAMC,IAAWhB,EAAQ,QAAQ;AACjC,gBAAI,CAACgB,EAAU,QAAO,QAAQ,IAAI,oBAAoB;AAGtD,kBAAMrB,IAAaP,IAAgB,QAAQ,CAAA,GAErC6B,IAAQjB,EAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;AAG7D,gBAAI,CAAC,CAAC,UAAU,WAAW,EAAE,SAASiB,CAAK,EAAG;AAE9C,kBAAMC,IAAQlB,EAAQ,QAAQ;AAE9B,gBAAImB,IAAiBD;AACrB,YAAID,MAAU,WACZE,IAAY,OAAOD,CAAK,IACfD,MAAU,gBACnBE,IAAY,MAAM,QAAQD,CAAK,IAAKA,IAAqB,CAAA;AAI3D,kBAAME,IAAkBzB,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOkB,CAAQ,GAE1DK,IACJJ,MAAU,eAAgBE,EAAuB,KAAK,CAACrD,MAAMU,GAAW,SAASV,CAAC,CAAC;AAErF,YAAI,CAACsD,KAAmB,CAACC,KAEzBZ,EAAgB;AAAA,cACd,SAAS,CAACO,CAAQ;AAAA,cAClB,UAAU,CAACD,CAAO;AAAA,cAClB,SAAS,EAAE,CAACE,CAAK,GAAGE,EAAA;AAAA,YAAU,CAC/B;AAAA,UACH;AAGA,UAAA9B,IAAQiC,EAAO,UAAU,eAAeT,CAAY;AAAA,QACtD,SAAS9B,GAAO;AACd,kBAAQ,MAAMA,CAAK;AAAA,QAGrB;AAEA,cAAMI,GAENmC,EAAO,YAAYjC,CAAK,GACpBC,KACFA,EAAA,GAEEE,kBAA2BA,CAAY;AAAA,MAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA;AAAA;AAAA,IAeF,gBAAgB;AAAA,MACd,mBAAmB7B;AAAA,MACnB,cAAcO;AAAA,IAAA;AAAA;AAAA,IAGhB,uBAAuB;AAAA,MACrB,mBAAmB,CAACN,GAAsC2D,GAAO,EAAE,UAAA5C,MAAa,CAAA,MAC9Ef,EAAS,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM4D,QAAW;AAC3C,cAAMC,IAAeC,EAAwBF,EAAK,YAAY;AAI9D,YAAIG,IAFW,CAACH,EAAK,aAAa,CAACA,EAAK,UAEVI,EAAsBH,CAAY,IAAI9C;AACpE,SAAI,OAAOgD,KAAmB,YAAY,CAACA,WAAiC,CAAA;AAG5E,cAAME,IAAY,cAAcL,EAAK,IAAI;AAEzC,eAAO;AAAA,UACL,GAAGA;AAAA,UACH,cAAAC;AAAA,UACA,UAAUE;AAAA,UACV,WAAAE;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,MACH,cAAc,CAAC1D,MACbA,GAAQ,SACJ;AAAA,QACE,EAAE,MAAM,QAAQ,IAAI,OAAA;AAAA,QACpB,GAAGA,EAAO,IAAI,CAAC,EAAE,MAAA2D,EAAA,OAAY,EAAE,MAAM,QAAQ,IAAIA,IAAO;AAAA,MAAA,IAE1D,CAAC,EAAE,MAAM,QAAQ,IAAI,QAAQ;AAAA,IAAA;AAAA,EACrC;AAEJ,CAAC,GAEY,EAAE,mBAAAC,IAAmB,+BAAAC,OAAkClD,GAW9DmD,IAA2BnD,EAA4B,gBAAgB;AAAA,EAC3E,WAAW,CAACoD,OAAW;AAAA,IACrB,iBAAiBA,EAAM,MAAsD;AAAA,MAC3E,MAAM,QAAQ,EAAE,UAAAvD,IAAW,CAAA,GAAI,SAAAwD,IAAU,GAAA,GAAQ,EAAE,UAAAtD,KAAY;AAC7D,YAAI;AAEF,gBAAMuD,IAAkE,CAAA;AACxE,qBAAWrB,KAAWpC,GAAU;AAC9B,kBAAMJ,IAAcwC,GAGdsB,IAAY;AAAA,cAChBxD,EAASyD,EAAe,UAAU,WAAW,SAAS,EAAE,aAAA/D,EAAA,CAAa,CAAC,EAAE,OAAA;AAAA,cACxE,GAAI4D,IACA;AAAA,gBACEtD;AAAA,kBACEyD,EAAe,UAAU,kBAAkB,SAAS,EAAE,aAAA/D,GAAa;AAAA,gBAAA,EACnE,OAAA;AAAA,cAAO,IAEX,CAAA;AAAA,YAAC,GAGDgE,IAAU,MAAM,QAAQ,WAAWF,CAAS,GAE5CG,IAAoBD,EAAQ,CAAC,GAC7BE,IACJD,EAAkB,WAAW,cACxBA,EAAkB,QACnB,QACAE,IACJP,KAAWI,EAAQ,CAAC,GAAG,WAAW,cAC7BA,EAAQ,CAAC,EAAE,QACZ;AAEN,YAAIE,MACFL,EAAY7D,CAAW,IAAI;AAAA,cACzB,GAAGkE;AAAA,cACH,SAASC;AAAA,YAAA;AAAA,UAGf;AAEA,iBAAO,EAAE,MAAMN,GAAa,MAAM,QAAW,OAAO,OAAA;AAAA,QACtD,SAASrD,GAAY;AACnB,yBAAQ,MAAMA,CAAK,GACZ,EAAE,OAAAA,GAAO,MAAM,QAAW,MAAM,OAAA;AAAA,QACzC;AAAA,MACF;AAAA,MACA,cAAc,CAAC4D,GAAMvE,GAAQ,EAAE,UAAAO,QAC7BA,EAAS,IAAI,CAACJ,OAAiB,EAAE,MAAM,WAAW,IAAIA,IAAc;AAAA,IAAA,CACvE;AAAA,EAAA;AAEL,CAAC,GAEY,EAAE,yBAAAqE,OAA4BX;"}
1
+ {"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const a=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");const n=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 i=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../links/getEntityLinks.cjs.js");const o=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const a=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");const n=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 u=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../links/getEntityLinks.cjs.js");const o=`
2
2
  query UserList($name:String!) {
3
3
  users(name: $name) {
4
4
  edges {
@@ -8,6 +8,7 @@
8
8
  isManager
9
9
  isService
10
10
  isDeveloper
11
+ isStagingAllowed
11
12
  isGuest
12
13
  active
13
14
  accessGroups
@@ -29,6 +30,7 @@
29
30
  isManager
30
31
  isService
31
32
  isDeveloper
33
+ isStagingAllowed
32
34
  isGuest
33
35
  active
34
36
  userPool
@@ -70,5 +72,5 @@ query Assignees($projectName: String) {
70
72
  }
71
73
  }
72
74
  }
73
- }`,m=n.api.enhanceEndpoints({endpoints:{getCurrentUser:{providesTags:[{type:"user",id:"LIST"}]},getUser:{providesTags:r=>r?[{type:"user",id:r.name}]:[{type:"user",id:"LIST"}]},getUserSessions:{transformResponse:r=>r?.sessions,providesTags:(r,e,{userName:s})=>[{type:"session",id:s}]}}}),y=a.api.injectEndpoints({endpoints:r=>({getUsers:r.query({query:()=>({url:"/graphql",method:"POST",body:{query:d,variables:{}}}),transformResponse:(e,s,{selfName:u})=>{if(e?.errors)throw console.log(e.errors),new Error(e.errors[0].message);return e?.data?.users.edges.filter(t=>t.node.name!=="CloudServiceWorker").map(t=>({...t.node,self:t.node.name===u,avatarUrl:`/api/users/${t.node.name}/avatar`,accessGroups:t.node.accessGroups?JSON.parse(t.node.accessGroups):{},attrib:i.parseAllAttribs(t.node.allAttrib)}))},providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:[{type:"user",id:"LIST"}]}),getUserByName:r.query({query:({name:e})=>({url:"/graphql",method:"POST",body:{query:o,variables:{name:e}}}),transformResponse:e=>e?.data?.users.edges.map(s=>({...s.node,avatarUrl:`/api/users/${s.node?.name}/avatar`,attrib:i.parseAllAttribs(s.node.allAttrib)})),providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:["user",{type:"user",id:"LIST"}]}),getUsersAssignee:r.query({query:({names:e,projectName:s})=>({url:"/graphql",method:"POST",body:{query:e?p:l,variables:{names:e,projectName:s}}}),transformResponse:e=>e?.data?.users.edges.flatMap(s=>{if(!s.node)return[];const u=s.node;return{name:u.name,fullName:u.attrib?.fullName,avatarUrl:`/api/users/${u.name}/avatar`}}),providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:[{type:"user",id:"LIST"}]})}),overrideExisting:!0}),q=y.enhanceEndpoints({endpoints:{GetAllProjectUsersAsAssignee:{transformResponse:r=>r.users.edges.map(e=>({name:e.node.name,fullName:e.node.attrib.fullName,updatedAt:e.node.updatedAt})),providesTags:r=>r?[{type:"user",id:"LIST"},...r.map(e=>({type:"user",id:e.name}))]:[{type:"user",id:"LIST"}]},GetActiveUsersCount:{transformResponse:r=>r.users.edges.filter(e=>e.node.active&&!e.node.isGuest).length,providesTags:[{type:"user",id:"LIST"}]},GetAllAssignees:{transformResponse:r=>r.users.edges.map(e=>({name:e.node.name,fullName:e.node.attrib.fullName,updatedAt:e.node.updatedAt})),providesTags:r=>r?[{type:"user",id:"LIST"},...r.map(e=>({type:"user",id:e.name}))]:[{type:"user",id:"LIST"}]}}}),{useGetAllProjectUsersAsAssigneeQuery:g,useLazyGetAllProjectUsersAsAssigneeQuery:A,useGetActiveUsersCountQuery:c,useGetAllAssigneesQuery:S,useGetUsersQuery:U,useGetUserByNameQuery:v,useGetUsersAssigneeQuery:G}=q,{useGetUserSessionsQuery:f,useGetCurrentUserQuery:T,useGetUserQuery:Q}=m;exports.useGetActiveUsersCountQuery=c;exports.useGetAllAssigneesQuery=S;exports.useGetAllProjectUsersAsAssigneeQuery=g;exports.useGetCurrentUserQuery=T;exports.useGetUserByNameQuery=v;exports.useGetUserQuery=Q;exports.useGetUserSessionsQuery=f;exports.useGetUsersAssigneeQuery=G;exports.useGetUsersQuery=U;exports.useLazyGetAllProjectUsersAsAssigneeQuery=A;
75
+ }`,m=n.api.enhanceEndpoints({endpoints:{getCurrentUser:{providesTags:[{type:"user",id:"LIST"}]},getUser:{providesTags:r=>r?[{type:"user",id:r.name}]:[{type:"user",id:"LIST"}]},getUserSessions:{transformResponse:r=>r?.sessions,providesTags:(r,e,{userName:s})=>[{type:"session",id:s}]}}}),y=a.api.injectEndpoints({endpoints:r=>({getUsers:r.query({query:()=>({url:"/graphql",method:"POST",body:{query:d,variables:{}}}),transformResponse:(e,s,{selfName:i})=>{if(e?.errors)throw console.log(e.errors),new Error(e.errors[0].message);return e?.data?.users.edges.filter(t=>t.node.name!=="CloudServiceWorker").map(t=>({...t.node,self:t.node.name===i,avatarUrl:`/api/users/${t.node.name}/avatar`,accessGroups:t.node.accessGroups?JSON.parse(t.node.accessGroups):{},attrib:u.parseAllAttribs(t.node.allAttrib)}))},providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:[{type:"user",id:"LIST"}]}),getUserByName:r.query({query:({name:e})=>({url:"/graphql",method:"POST",body:{query:o,variables:{name:e}}}),transformResponse:e=>e?.data?.users.edges.map(s=>({...s.node,avatarUrl:`/api/users/${s.node?.name}/avatar`,attrib:u.parseAllAttribs(s.node.allAttrib)})),providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:["user",{type:"user",id:"LIST"}]}),getUsersAssignee:r.query({query:({names:e,projectName:s})=>({url:"/graphql",method:"POST",body:{query:e?p:l,variables:{names:e,projectName:s}}}),transformResponse:e=>e?.data?.users.edges.flatMap(s=>{if(!s.node)return[];const i=s.node;return{name:i.name,fullName:i.attrib?.fullName,avatarUrl:`/api/users/${i.name}/avatar`}}),providesTags:e=>e?[...e.map(s=>({type:"user",id:s.name})),{type:"user",id:"LIST"}]:[{type:"user",id:"LIST"}]})}),overrideExisting:!0}),g=y.enhanceEndpoints({endpoints:{GetAllProjectUsersAsAssignee:{transformResponse:r=>r.users.edges.map(e=>({name:e.node.name,fullName:e.node.attrib.fullName,updatedAt:e.node.updatedAt})),providesTags:r=>r?[{type:"user",id:"LIST"},...r.map(e=>({type:"user",id:e.name}))]:[{type:"user",id:"LIST"}]},GetActiveUsersCount:{transformResponse:r=>r.users.edges.filter(e=>e.node.active&&!e.node.isGuest).length,providesTags:[{type:"user",id:"LIST"}]},GetAllAssignees:{transformResponse:r=>r.users.edges.map(e=>({name:e.node.name,fullName:e.node.attrib.fullName,updatedAt:e.node.updatedAt})),providesTags:r=>r?[{type:"user",id:"LIST"},...r.map(e=>({type:"user",id:e.name}))]:[{type:"user",id:"LIST"}]}}}),{useGetAllProjectUsersAsAssigneeQuery:q,useLazyGetAllProjectUsersAsAssigneeQuery:A,useGetActiveUsersCountQuery:c,useGetAllAssigneesQuery:S,useGetUsersQuery:U,useGetUserByNameQuery:v,useGetUsersAssigneeQuery:G}=g,{useGetUserSessionsQuery:f,useGetCurrentUserQuery:T,useGetUserQuery:Q}=m;exports.useGetActiveUsersCountQuery=c;exports.useGetAllAssigneesQuery=S;exports.useGetAllProjectUsersAsAssigneeQuery=q;exports.useGetCurrentUserQuery=T;exports.useGetUserByNameQuery=v;exports.useGetUserQuery=Q;exports.useGetUserSessionsQuery=f;exports.useGetUsersAssigneeQuery=G;exports.useGetUsersQuery=U;exports.useLazyGetAllProjectUsersAsAssigneeQuery=A;
74
76
  //# sourceMappingURL=getUsers.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport type {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '../overview'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000, isSupport: false) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n inviteSentAt\n inviteAcceptedAt\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges\n .filter((e: any) => e.node.name !== 'CloudServiceWorker')\n .map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignee = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}\nexport type Assignees = Assignee[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getUsers.cjs.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport type {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '../overview'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isStagingAllowed\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000, isSupport: false) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isStagingAllowed\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n inviteSentAt\n inviteAcceptedAt\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges\n .filter((e: any) => e.node.name !== 'CloudServiceWorker')\n .map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignee = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}\nexport type Assignees = Assignee[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
@@ -52,6 +52,7 @@ const n = `
52
52
  isManager
53
53
  isService
54
54
  isDeveloper
55
+ isStagingAllowed
55
56
  isGuest
56
57
  active
57
58
  accessGroups
@@ -73,6 +74,7 @@ const n = `
73
74
  isManager
74
75
  isService
75
76
  isDeveloper
77
+ isStagingAllowed
76
78
  isGuest
77
79
  active
78
80
  userPool
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport type {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '../overview'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000, isSupport: false) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n inviteSentAt\n inviteAcceptedAt\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges\n .filter((e: any) => e.node.name !== 'CloudServiceWorker')\n .map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignee = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}\nexport type Assignees = Assignee[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { GetCurrentUserApiResponse, gqlApi, usersApi } from '@shared/api/generated'\nimport type {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { parseAllAttribs } from '../overview'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isStagingAllowed\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000, isSupport: false) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isStagingAllowed\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n inviteSentAt\n inviteAcceptedAt\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName, isSupport: false) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\ninterface GetCurrentUserResult extends GetCurrentUserApiResponse {\n uiExposureLevel: number\n}\n\ntype RestDefinitions = DefinitionsFromApi<typeof usersApi>\ntype RestTagTypes = TagTypesFromApi<typeof usersApi>\n// update the definitions to include the new types\ntype RestUpdatedDefinitions = Omit<RestDefinitions, 'getCurrentUser'> & {\n getCurrentUser: OverrideResultType<RestDefinitions['getCurrentUser'], GetCurrentUserResult>\n}\n\nconst enhancedApi = usersApi.enhanceEndpoints<RestTagTypes, RestUpdatedDefinitions>({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges\n .filter((e: any) => e.node.name !== 'CloudServiceWorker')\n .map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignee = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}\nexport type Assignees = Assignee[]\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"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 C=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");require("lodash");require("react-toastify");require("uuid");const R=require("../../../util/thumbnailWebsocket.cjs.js"),q=require("../../../util/pubsub.cjs.js"),T=require("../columnStats/columnStats.cjs.js"),E=require("../columnStats/metricTargets.cjs.js");function Q(c,e,n,d){for(let u=0;u<c.length;u++){const o=e[n],p=c[u][n];if(d?o>p:o<p)return u}return c.length}function N(c,e,n,d,u,o){for(const p of c){const l=p[d],f=l.findIndex(r=>r.id===e);if(f!==-1){n?l[f]=n:l.splice(f,1);return}}if(n&&c.length>0){const p=c[0][d],l=Q(p,n,u,o);p.splice(l,0,n)}}function j(c,e,n){const d=c.findIndex(u=>u.id===e);return d!==-1?n?(c[d]=n,{index:d,action:"updated"}):(c.splice(d,1),{index:d,action:"deleted"}):n?(c.push(n),{index:c.length-1,action:"added"}):{index:-1,action:"none"}}const b=C.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:c=>T.normalizeFieldStats(c?.project?.products?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:c,...e}})=>e,merge:(c,e)=>T.mergeFieldStats(e,c),forceRefetch:({currentArg:c,previousArg:e})=>E.hasNewTargetFields(c,e),providesTags:(c,e,{projectName:n})=>[{type:"productColumnStats",id:n}]},GetVersionsColumnStats:{transformResponse:c=>T.normalizeFieldStats(c?.project?.versions?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:c,...e}})=>e,merge:(c,e)=>T.mergeFieldStats(e,c),forceRefetch:({currentArg:c,previousArg:e})=>E.hasNewTargetFields(c,e),providesTags:(c,e,{projectName:n})=>[{type:"versionColumnStats",id:n}]}}}),F=250,x=1e3,S=10,_=b.injectEndpoints({endpoints:c=>({getVersionsInfinite:c.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,n,d,u)=>{const o=e.pageInfo;if(!(!(d.desc?o?.hasPreviousPage:o?.hasNextPage)||!o?.endCursor))return{cursor:o?.endCursor,desc:d.desc}}},queryFn:async({queryArg:e,pageParam:n},d)=>{try{const{sortBy:u,desc:o,folderIds:p,...l}=e,{cursor:f}=n,r={...l};u?(r.sortBy=u,o?(r.before=f||void 0,r.last=F):(r.after=f||void 0,r.first=F)):(r.after=f||void 0,r.first=F),p&&p.length&&(r.folderIds=p);const t=await d.dispatch(b.endpoints.GetVersions.initiate(r,{forceRefetch:!0}));if(t.error)throw t.error;const s={versions:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:t.data||s}}catch(u){return console.error("Error in getVersionsInfiniteQuery queryFn:",u),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(u.message)}}}},providesTags:g.provideTagsForVersionsInfinite,onCacheEntryAdded:async(e,{updateCachedData:n,cacheEntryRemoved:d,dispatch:u})=>{let o;o=R.subscribeToThumbnailUpdates(l=>{const f=l.filter(r=>r.project===e.projectName);f.length&&n(r=>{f.forEach(t=>{t.summary.entityType==="version"&&r.pages.forEach(s=>{const i=s.versions.findIndex(a=>a.id===t.summary.entityId);i!==-1&&(s.versions[i].thumbnailHash=t.summary.thumbnailHash||"")})})})},["version"]);const p=q.subscribe("entity.version",async(l,f)=>{try{const r=f.summary?.entityId;if(!r)return;const t=await u(b.endpoints.GetVersions.initiate({projectName:e.projectName,versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,versionIds:[r],first:1},{forceRefetch:!0}));if(t.error)return;n(s=>{const i=t.data?.versions?.[0];N(s.pages,r,i,"versions",e.sortBy||"createdAt",e.desc||!1)})}catch{}});await d,q.unsubscribe(p),o&&o()}}),getVersionsByProducts:c.query({queryFn:async(e,{dispatch:n,forced:d})=>{const{productIds:u=[],desc:o,...p}=e,l=async(i,a)=>{const h={...p,productIds:[i]};return o?(a&&(h.before=a),h.last=x):(a&&(h.after=a),h.first=x),n(b.endpoints.GetVersionsByProductId.initiate(h,{forceRefetch:d}))},f=u.map(i=>l(i)),r=await Promise.allSettled(f),t=[],s=[];for(let i=0;i<r.length;i++){const a=r[i],h=u[i];if(a.status==="rejected"){console.error(`Error fetching versions for product ${h}:`,a.reason),s.push({productId:h,error:g.parseGQLErrorMessage(a.reason)});continue}const v=a.value;if(v.error){console.error(`Error fetching versions for product ${h}:`,v.error),s.push({productId:h,error:g.parseGQLErrorMessage(v.error?.message||"Unknown error")});continue}if(!v.data)continue;t.push(...v.data.versions);let y=v.data.pageInfo,m=1;for(;y&&m<S;){const P=o?y.hasPreviousPage:y.hasNextPage,V=y.endCursor;if(!P||!V)break;const I=await l(h,V);if(I.error){console.error(`Error fetching versions page ${m+1} for product ${h}:`,I.error),s.push({productId:h,error:I.error});break}if(!I.data)break;t.push(...I.data.versions),y=I.data.pageInfo,m++}}return s.length>0&&console.warn(`Partial success: ${s.length} of ${u.length} products failed to fetch versions`,s),{data:{versions:t,pageInfo:void 0,errors:s.length>0?s:void 0}}},onCacheEntryAdded:async(e,{updateCachedData:n,cacheEntryRemoved:d,dispatch:u})=>{let o;o=R.subscribeToThumbnailUpdates(l=>{const f=l.filter(r=>r.project===e.projectName);f.length&&n(r=>{f.forEach(t=>{if(t.summary.entityType==="version"){const s=r.versions.findIndex(i=>i.id===t.summary.entityId);s!==-1&&(r.versions[s].thumbnailHash=t.summary.thumbnailHash||"")}})})},["version"]);const p=q.subscribe("entity.version",async(l,f)=>{try{const r=f.summary?.entityId,t=f.summary?.parentId;if(!r||!t||!e.productIds.includes(t))return;const s=await u(b.endpoints.GetVersions.initiate({projectName:e.projectName,productIds:[t],versionIds:[r],versionFilter:e.versionFilter,taskFilter:e.taskFilter,first:1,...e.featuredOnly&&{featuredOnly:e.featuredOnly},...e.hasReviewables!==void 0&&{hasReviewables:e.hasReviewables}},{forceRefetch:!0}));if(s.error)return;n(i=>{const a=s.data?.versions?.[0];j(i.versions,r,a)})}catch{}});await d,q.unsubscribe(p),o&&o()},providesTags:g.provideTagsForVersionsResult}),getProductsInfinite:c.infiniteQuery({infiniteQueryOptions:{initialPageParam:{cursor:"",desc:!1},getNextPageParam:(e,n,d,u)=>{const o=e.pageInfo;if(!(!(d.desc?o?.hasPreviousPage:o?.hasNextPage)||!o?.endCursor))return{cursor:o?.endCursor,desc:d.desc}}},queryFn:async({queryArg:e,pageParam:n},d)=>{let u;try{const{sortBy:o,desc:p,folderIds:l,...f}=e,{cursor:r}=n,t={...f};if(o?(t.sortBy=o,p?(t.before=r||void 0,t.last=F):(t.after=r||void 0,t.first=F)):(t.after=r||void 0,t.first=F),l&&l.length&&(t.folderIds=l),u=await d.dispatch(b.endpoints.GetProducts.initiate(t,{forceRefetch:!0})),u.error)throw u.error;const s={products:[],pageInfo:{hasNextPage:!1,endCursor:null,startCursor:null,hasPreviousPage:!1}};return{data:u.data||s}}catch(o){return console.error("Error in getProductsInfiniteQuery queryFn:",o),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(o.message)}}}},providesTags:g.provideTagsForProductsInfinite,onCacheEntryAdded:async(e,{updateCachedData:n,cacheEntryRemoved:d,dispatch:u})=>{let o;o=R.subscribeToThumbnailUpdates(r=>{const t=r.filter(s=>s.project===e.projectName);t.length&&n(s=>{t.forEach(i=>{i.summary.entityType==="version"&&s.pages.forEach(a=>{a.products.forEach(h=>{h.featuredVersion?.id===i.summary.entityId&&(h.featuredVersion.thumbnailHash=i.summary.thumbnailHash||"")})})})})},["version"]);const p=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},s=await u(b.endpoints.GetProducts.initiate(t,{forceRefetch:!0}));s.error||n(i=>{const a=s.data?.products?.[0];N(i.pages,r,a,"products",e.sortBy||"createdAt",e.desc||!1)})},l=q.subscribe("entity.product",async(r,t)=>{try{const s=t.summary?.entityId;if(!s)return;await p(s)}catch{}}),f=q.subscribe("entity.version",async(r,t)=>{try{const s=t.summary?.parentId;if(!s)return;let i=!1;if(n(a=>{i=a.pages.some(h=>h.products.some(v=>v.id===s))}),!i)return;await p(s)}catch{}});await d,q.unsubscribe(l),q.unsubscribe(f),o&&o()}}),getGroupedVersionsList:c.query({queryFn:async({projectName:e,groups:n,groupFilterKey:d="versionFilter",versionFilter:u,productFilter:o,taskFilter:p,folderIds:l,desc:f,sortBy:r,featuredOnly:t,hasReviewables:s},i)=>{try{const a=[];for(const y of n){const m=y.count||500,P={projectName:e,productFilter:o,taskFilter:p,versionFilter:u,[d]:y.filter,folderIds:l?.length?l:void 0,sortBy:r,featuredOnly:t,hasReviewables:s,group:y.value};f?P.last=m:P.first=m;const V=i.dispatch(b.endpoints.GetVersions.initiate(P,{forceRefetch:!0}));a.push(V)}const h=await Promise.all(a),v=[];for(const y of h){if(y.error)throw y.error;const m=y.originalArgs?.group,P=y.data?.pageInfo?.hasNextPage||y.data?.pageInfo?.hasPreviousPage||!1,V=y.data?.versions.map((I,G,w)=>({...I,groups:[{value:m,hasNextPage:G===w.length-1&&P?m:void 0}]}))||[];v.push(...V)}return{data:{versions:v}}}catch(a){return console.error("Error in getGroupedVersionsList queryFn:",a),{error:{status:"FETCH_ERROR",error:g.parseGQLErrorMessage(a.message)}}}},providesTags:g.provideTagsForVersionsResult,onCacheEntryAdded:async(e,{updateCachedData:n,cacheEntryRemoved:d,dispatch:u})=>{let o;o=R.subscribeToThumbnailUpdates(l=>{const f=l.filter(r=>r.project===e.projectName);f.length&&n(r=>{f.forEach(t=>{if(t.summary.entityType==="version"){const s=r.versions.findIndex(i=>i.id===t.summary.entityId);s!==-1&&(r.versions[s].thumbnailHash=t.summary.thumbnailHash||"")}})})},["version"]);const p=q.subscribe("entity.version",async(l,f)=>{try{const r=f.summary?.entityId;if(!r)return;const t={projectName:e.projectName,versionFilter:e.versionFilter,productFilter:e.productFilter,taskFilter:e.taskFilter,folderIds:e.folderIds?.length?e.folderIds:void 0,versionIds:[r],first:1,...e.featuredOnly&&{featuredOnly:e.featuredOnly},...e.hasReviewables!==void 0&&{hasReviewables:e.hasReviewables}},s=[];let i=null;for(const a of e.groups){const v=(await u(b.endpoints.GetVersions.initiate({...t,[e.groupFilterKey]:a.filter,versionIds:[r]},{forceRefetch:!0}))).data?.versions?.[0];v&&(s.push({value:a.value,hasNextPage:void 0}),i=v)}n(a=>{const h=a.versions.findIndex(y=>y.id===r),v=h!==-1;if(s.length===0)v&&a.versions.splice(h,1);else if(i)if(v){const y=a.versions[h].groups||[],m=y.map(I=>I.value).sort(),P=s.map(I=>I.value).sort();m.length!==P.length||m.some((I,G)=>I!==P[G])?a.versions[h]={...i,groups:s}:a.versions[h]={...i,groups:y}}else{const y={...i,groups:s},m=e.sortBy||"createdAt",P=Q(a.versions,y,m,e.desc||!1);a.versions.splice(P,0,y)}})}catch{}});await d,q.unsubscribe(p),o&&o()}})})}),{useGetVersionsQuery:k,useGetProductsColumnStatsQuery:A,useGetVersionsColumnStatsQuery:O}=b,{useGetVersionsInfiniteInfiniteQuery:U,useGetVersionsByProductsQuery:B,useGetProductsInfiniteInfiniteQuery:H,useGetGroupedVersionsListQuery:M}=_;exports.VP_INFINITE_QUERY_COUNT=F;exports.enhancedVersionsPageApi=b;exports.injectedVersionsPageApi=_;exports.useGetGroupedVersionsListQuery=M;exports.useGetProductsColumnStatsQuery=A;exports.useGetProductsInfiniteQuery=H;exports.useGetVersionsByProductsQuery=B;exports.useGetVersionsColumnStatsQuery=O;exports.useGetVersionsInfiniteQuery=U;exports.useGetVersionsQuery=k;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const k=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 m=require("./getVersionsProductsUtils.cjs.js"),C=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../links/getEntityLinks.cjs.js");require("lodash");require("react-toastify");require("uuid");const R=require("../../../util/thumbnailWebsocket.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.cjs.js");require("../activities/updateActivities.cjs.js");require("../activities/updateReaction.cjs.js");require("../activities/getMentions.cjs.js");require("../activities/getCategories.cjs.js");require("../addons/getAddons.cjs.js");require("../addons/updateAddons.cjs.js");require("../attributes/getAttributes.cjs.js");require("../attributes/updateAttributes.cjs.js");require("../authentication/getAuthentication.cjs.js");require("../cloud/cloud.cjs.js");const A=require("../columnStats/columnStats.cjs.js"),G=require("../columnStats/metricTargets.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.cjs.js");require("../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 P=require("../../../util/pubsub.cjs.js");function x(h,e,d,I){for(let p=0;p<h.length;p++){const c=e[d],v=h[p][d];if(I?c>v:c<v)return p}return h.length}function S(h,e,d,I,p,c){for(const v of h){const l=v[I],f=l.findIndex(n=>n.id===e);if(f!==-1){d?l[f]=d:l.splice(f,1);return}}if(d&&h.length>0){const v=h[0][I],l=x(v,d,p,c);v.splice(l,0,d)}}const F=k.api.enhanceEndpoints({endpoints:{GetVersions:{transformResponse:m.transformVersionsResponse,providesTags:m.provideTagsForVersionsResult},GetVersionsByProductId:{transformResponse:m.transformVersionsResponse,providesTags:m.provideTagsForVersionsResult},GetProducts:{transformResponse:m.transformProductsResponse,providesTags:m.provideTagsForProductsResult},GetProductsColumnStats:{transformResponse:h=>A.normalizeFieldStats(h?.project?.products?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:h,...e}})=>e,merge:(h,e)=>A.mergeFieldStats(e,h),forceRefetch:({currentArg:h,previousArg:e})=>G.hasNewTargetFields(h,e),providesTags:(h,e,{projectName:d})=>[{type:"productColumnStats",id:d}]},GetVersionsColumnStats:{transformResponse:h=>A.normalizeFieldStats(h?.project?.versions?.fieldStats??[]),serializeQueryArgs:({queryArgs:{targets:h,...e}})=>e,merge:(h,e)=>A.mergeFieldStats(e,h),forceRefetch:({currentArg:h,previousArg:e})=>G.hasNewTargetFields(h,e),providesTags:(h,e,{projectName:d})=>[{type:"versionColumnStats",id:d}]}}}),V=250,w=1e3,U=10,j=5e3,O=1e3,B=3e4,M=1500;function N(h,e,d){let I=[],p=null,c=new Set,v=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,y=a.summary?.parentId;if(u){if(s==="entity.version.deleted")r.push({entityId:u,parentId:y});else if(s.startsWith("entity.version.")&&s.endsWith("_changed")){if(!d.checkVersionInCache(u,y))continue;const g=s.split(".")[2].split("_changed")[0];if(g==="attrib"){i.add(u);continue}const E=["status","tags"].includes(g),T=a.summary?.value;if(!T||!E){c.add(u);continue}let _=T;g==="status"?_=String(T):g==="tags"&&(_=Array.isArray(T)?T:[]),t.push({entityId:u,field:g,value:_,parentId:y})}}}c.size>0&&!v&&(v=setTimeout(f,B));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:h,versionIds:s},{forceRefetch:!0}));if(a.data?.project?.versions?.edges)for(const u of a.data.project.versions.edges){const y=u.node;y&&o.push({entityId:y.id,allAttrib:y.allAttrib,parsedAttrib:C.parseAllAttribs(y.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(),v=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:h,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!==h)return;const i=r.summary?.entityId;i&&(n==="entity.version.created"?(c.add(i),v||(v=setTimeout(f,B))):(I.push({topic:n,message:r}),p&&clearTimeout(p),p=setTimeout(l,j)))}}const Q=F.injectEndpoints({endpoints:h=>({getVersionsInfinite:h.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:v,...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),v&&v.length&&(n.folderIds=v);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:m.parseGQLErrorMessage(p.message)}}}},providesTags:m.provideTagsForVersionsInfinite,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{getCacheEntry:d,updateCachedData:I,cacheEntryRemoved:p,dispatch:c})=>{let v;v=R.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 y=o.versions.find(q=>q.id===s);y&&(y[a]=u)}if(r)for(const{entityId:s,allAttrib:a,parsedAttrib:u}of r){const y=o.versions.find(q=>q.id===s);y&&(y.allAttrib=a,y.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",y=x(o.versions,s,u,e.desc||!1);o===i.pages[0]&&o.versions.splice(y,0,s)}}}})}}));await p,P.unsubscribe(l),v&&v()}}),getVersionsByProducts:h.query({queryFn:async(e,{dispatch:d,forced:I})=>{const{productIds:p=[],desc:c,...v}=e,l=async(i,o)=>{const s={...v,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:m.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:m.parseGQLErrorMessage(a.error?.message||"Unknown error")});continue}if(!a.data)continue;r.push(...a.data.versions);let u=a.data.pageInfo,y=1;for(;u&&y<U;){const q=c?u.hasPreviousPage:u.hasNextPage,g=u.endCursor;if(!q||!g)break;const b=await l(s,g);if(b.error){console.error(`Error fetching versions page ${y+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,y++}}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=R.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 v=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(v),c&&c()},providesTags:m.provideTagsForVersionsResult}),getProductsInfinite:h.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:v,folderIds:l,...f}=e,{cursor:n}=d,r={...f};if(c?(r.sortBy=c,v?(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:m.parseGQLErrorMessage(c.message)}}}},providesTags:m.provideTagsForProductsInfinite,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=R.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 v=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];S(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 v(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 y=u.featuredVersion?.id;if(y){if(r&&r.some(q=>q.entityId===y&&q.parentId===u.id)&&n.add(u.id),t)for(const{entityId:q,field:g,value:b,parentId:E}of t)u.id===E&&y===q&&u.featuredVersion&&(u.featuredVersion[g]=b);if(i)for(const{entityId:q,allAttrib:g,parsedAttrib:b}of i)y===q&&u.featuredVersion&&(u.featuredVersion.allAttrib=g,u.featuredVersion.attrib=b);if(o)for(const q of o)y===q.id&&u.featuredVersion&&(u.featuredVersion=q)}}});for(const s of n)v(s);n.clear()}})),n=new Set;await I,P.unsubscribe(l),P.unsubscribe(f),c&&c()}}),getGroupedVersionsList:h.query({queryFn:async({projectName:e,groups:d,groupFilterKey:I="versionFilter",versionFilter:p,productFilter:c,taskFilter:v,folderIds:l,desc:f,sortBy:n,featuredOnly:r,hasReviewables:t},i)=>{try{const o=[];for(const u of d){const y=u.count||500,q={projectName:e,productFilter:c,taskFilter:v,versionFilter:p,[I]:u.filter,folderIds:l?.length?l:void 0,sortBy:n,featuredOnly:r,hasReviewables:t,group:u.value};f?q.last=y:q.first=y;const g=i.dispatch(F.endpoints.GetVersions.initiate(q,{forceRefetch:!0}));o.push(g)}const s=await Promise.all(o),a=[];for(const u of s){if(u.error)throw u.error;const y=u.originalArgs?.group,q=u.data?.pageInfo?.hasNextPage||u.data?.pageInfo?.hasPreviousPage||!1,g=u.data?.versions.map((b,E,T)=>({...b,groups:[{value:y,hasNextPage:E===T.length-1&&q?y:void 0}]}))||[];a.push(...g)}return{data:{versions:a}}}catch(o){return console.error("Error in getGroupedVersionsList queryFn:",o),{error:{status:"FETCH_ERROR",error:m.parseGQLErrorMessage(o.message)}}}},providesTags:m.provideTagsForVersionsResult,keepUnusedDataFor:30,onCacheEntryAdded:async(e,{updateCachedData:d,cacheEntryRemoved:I,dispatch:p})=>{let c;c=R.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 v=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(v),c&&c()}})})}),{useGetVersionsQuery:H,useGetProductsColumnStatsQuery:L,useGetVersionsColumnStatsQuery:z}=F,{useGetVersionsInfiniteInfiniteQuery:D,useGetVersionsByProductsQuery:$,useGetProductsInfiniteInfiniteQuery:W,useGetGroupedVersionsListQuery:Y}=Q;exports.VP_INFINITE_QUERY_COUNT=V;exports.enhancedVersionsPageApi=F;exports.injectedVersionsPageApi=Q;exports.useGetGroupedVersionsListQuery=Y;exports.useGetProductsColumnStatsQuery=L;exports.useGetProductsInfiniteQuery=W;exports.useGetVersionsByProductsQuery=$;exports.useGetVersionsColumnStatsQuery=z;exports.useGetVersionsInfiniteQuery=D;exports.useGetVersionsQuery=H;
2
2
  //# sourceMappingURL=getVersionsProducts.cjs.js.map