@ynput/ayon-frontend-shared 0.2.39 → 0.2.41

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 (436) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/api.cjs.js +1 -1
  5. package/dist/api.es.js +256 -248
  6. package/dist/api.es.js.map +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.es.js +11 -9
  9. package/dist/index.es.js.map +1 -1
  10. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  11. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  12. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
  13. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  14. package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
  15. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
  16. package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
  17. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
  18. package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
  19. package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
  20. package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
  21. package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
  22. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  23. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  24. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  25. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  27. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  28. package/dist/shared/src/api/queries/entities/updateEntity.es.js +5 -3
  29. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  31. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  32. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
  33. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  34. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  35. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  36. package/dist/shared/src/api/queries/overview/updateOverview.es.js +68 -66
  37. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  39. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  40. package/dist/shared/src/api/queries/users/getUsers.es.js +34 -32
  41. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  42. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
  43. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
  44. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
  45. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
  46. package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
  47. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  48. package/dist/shared/src/components/Chips/Chips.es.js +44 -38
  49. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  51. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  53. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  54. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  55. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  56. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
  57. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  58. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  59. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  60. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  61. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  62. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  63. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  64. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  65. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  66. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  67. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  68. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  69. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  74. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  75. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
  77. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  78. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  79. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  81. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  82. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  83. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  84. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +28 -25
  85. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  86. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  88. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
  89. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  90. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
  91. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  92. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  93. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  94. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  95. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  96. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  97. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  98. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  99. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
  107. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  109. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  111. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  112. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  113. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  114. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  115. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  116. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  117. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  118. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  119. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  121. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  122. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  129. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  131. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  133. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  135. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  136. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  137. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  139. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  141. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  142. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
  143. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  147. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  148. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  149. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  150. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  151. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  152. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  153. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  154. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  155. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  156. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  157. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  161. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
  163. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  165. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +4 -2
  191. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  194. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  195. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  198. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  199. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  201. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  203. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  215. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  225. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  227. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  237. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  239. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -2
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  255. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
  259. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -2
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +30 -28
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -2
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
  323. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +31 -28
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  332. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  333. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
  335. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  336. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  337. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
  339. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  340. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  341. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  343. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  344. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  345. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
  347. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  348. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  349. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
  351. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  352. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  353. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  355. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  356. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  357. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  359. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  360. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
  363. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  364. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  365. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  367. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  368. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  369. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  370. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  371. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  372. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  373. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  374. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  375. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  376. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  377. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  378. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  379. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  380. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  381. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  382. package/dist/shared/src/context/PowerpackContext.es.js +8 -6
  383. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  384. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  385. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  386. package/dist/shared/src/context/ProjectContext.es.js +44 -38
  387. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  388. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  389. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  390. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  391. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  392. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  393. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  394. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  395. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  396. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  397. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  398. package/dist/shared/src/context/UriContext.es.js +7 -5
  399. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  401. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  402. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  403. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  404. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  405. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  406. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  407. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  408. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  409. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  410. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  411. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  412. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  413. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  414. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  415. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  416. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  417. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  418. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  419. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  420. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  421. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  422. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  423. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  424. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  425. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  426. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  427. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  428. package/dist/types/api/queries/config/getConfig.d.ts +747 -0
  429. package/dist/types/api/queries/config/index.d.ts +2 -0
  430. package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
  431. package/dist/types/api/queries/index.d.ts +1 -0
  432. package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
  433. package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
  434. package/dist/types/components/Chips/Chips.d.ts +1 -0
  435. package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
  436. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");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/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/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../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");require("./getEntity.cjs.js");require("./getEntityPanel.cjs.js");require("./updateEntity.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../links/getEntityLinks.cjs.js");const s=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const P=["task","version","folder","representation"],D=({entity:a,entityType:R,projectName:u})=>{var d,n,o,q,l,p,b,v,c,A,m,y,h,f,T,g,k,w,I;switch(R){case"task":const r=a;return{entityType:"task",entitySubType:r.taskType,projectName:u,id:r.id,name:r.name,label:r.label,tags:r.tags,status:r.status,updatedAt:r.updatedAt,createdAt:r.createdAt,attrib:s.parseAllAttribs(r.allAttrib),hasReviewables:r.hasReviewables,thumbnailId:r.thumbnailId,path:(((d=r.folder)==null?void 0:d.path)||"")+"/"+r.name,parents:r.parents,folder:r.folder,task:{id:r.id,name:r.name,label:r.label,assignees:r.assignees,taskType:r.taskType},product:void 0,version:(q=(o=(n=r.versions)==null?void 0:n.edges)==null?void 0:o[0])==null?void 0:q.node};case"version":const e=a;return{entityType:"version",entitySubType:void 0,projectName:u,id:e.id,name:e.name,label:void 0,tags:e.tags,status:e.status,updatedAt:e.updatedAt,createdAt:e.createdAt,attrib:s.parseAllAttribs(e.allAttrib),hasReviewables:e.hasReviewables,thumbnailId:e.thumbnailId,path:(((p=(l=e.product)==null?void 0:l.folder)==null?void 0:p.path)||"")+"/"+e.product.name+"/"+e.name,parents:e.parents,folder:(b=e.product)==null?void 0:b.folder,task:e.task??void 0,product:{id:(v=e.product)==null?void 0:v.id,name:(c=e.product)==null?void 0:c.name,productType:(A=e.product)==null?void 0:A.productType,latestVersion:e.product.latestVersion},version:{version:e.version,id:e.id,name:e.name,updatedAt:e.updatedAt,createdAt:e.createdAt,productId:e.product.id},representations:((y=(m=e.representations)==null?void 0:m.edges)==null?void 0:y.map(S=>S.node))||[]};case"folder":const t=a;return{entityType:"folder",entitySubType:t.folderType,projectName:u,id:t.id,name:t.name,label:t.label,tags:t.tags,status:t.status,updatedAt:t.updatedAt,createdAt:t.createdAt,attrib:s.parseAllAttribs(t.allAttrib),hasReviewables:t.hasReviewables,thumbnailId:t.thumbnailId,path:t.path||"",parents:t.parents,folder:{id:t.id,name:t.name,label:t.label,folderType:t.folderType},product:void 0,version:void 0,representations:void 0};case"representation":const i=a;return{entityType:"representation",entitySubType:void 0,projectName:u,id:i.id,name:i.name,label:void 0,tags:i.tags,status:i.status,updatedAt:i.updatedAt,createdAt:i.createdAt,attrib:s.parseAllAttribs(i.allAttrib),hasReviewables:void 0,thumbnailId:void 0,path:(((T=(f=(h=i.version)==null?void 0:h.product)==null?void 0:f.folder)==null?void 0:T.path)||"")+"/"+(((k=(g=i.version)==null?void 0:g.product)==null?void 0:k.name)||"")+"/"+((w=i.version)==null?void 0:w.version)+"/"+i.name,parents:i.parents,version:i.version,product:i.version.product,task:i.version.task||void 0,folder:(I=i.version.product)==null?void 0:I.folder,representations:void 0}}};exports.detailsPanelEntityTypes=P;exports.transformDetailsPanelQueriesData=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");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/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/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../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");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("./getEntity.cjs.js");require("./getEntityPanel.cjs.js");require("./updateEntity.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../links/getEntityLinks.cjs.js");const s=require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const P=["task","version","folder","representation"],D=({entity:a,entityType:R,projectName:u})=>{var d,n,o,q,l,p,b,v,c,A,m,y,h,f,T,g,k,w,I;switch(R){case"task":const r=a;return{entityType:"task",entitySubType:r.taskType,projectName:u,id:r.id,name:r.name,label:r.label,tags:r.tags,status:r.status,updatedAt:r.updatedAt,createdAt:r.createdAt,attrib:s.parseAllAttribs(r.allAttrib),hasReviewables:r.hasReviewables,thumbnailId:r.thumbnailId,path:(((d=r.folder)==null?void 0:d.path)||"")+"/"+r.name,parents:r.parents,folder:r.folder,task:{id:r.id,name:r.name,label:r.label,assignees:r.assignees,taskType:r.taskType},product:void 0,version:(q=(o=(n=r.versions)==null?void 0:n.edges)==null?void 0:o[0])==null?void 0:q.node};case"version":const e=a;return{entityType:"version",entitySubType:void 0,projectName:u,id:e.id,name:e.name,label:void 0,tags:e.tags,status:e.status,updatedAt:e.updatedAt,createdAt:e.createdAt,attrib:s.parseAllAttribs(e.allAttrib),hasReviewables:e.hasReviewables,thumbnailId:e.thumbnailId,path:(((p=(l=e.product)==null?void 0:l.folder)==null?void 0:p.path)||"")+"/"+e.product.name+"/"+e.name,parents:e.parents,folder:(b=e.product)==null?void 0:b.folder,task:e.task??void 0,product:{id:(v=e.product)==null?void 0:v.id,name:(c=e.product)==null?void 0:c.name,productType:(A=e.product)==null?void 0:A.productType,latestVersion:e.product.latestVersion},version:{version:e.version,id:e.id,name:e.name,updatedAt:e.updatedAt,createdAt:e.createdAt,productId:e.product.id},representations:((y=(m=e.representations)==null?void 0:m.edges)==null?void 0:y.map(S=>S.node))||[]};case"folder":const t=a;return{entityType:"folder",entitySubType:t.folderType,projectName:u,id:t.id,name:t.name,label:t.label,tags:t.tags,status:t.status,updatedAt:t.updatedAt,createdAt:t.createdAt,attrib:s.parseAllAttribs(t.allAttrib),hasReviewables:t.hasReviewables,thumbnailId:t.thumbnailId,path:t.path||"",parents:t.parents,folder:{id:t.id,name:t.name,label:t.label,folderType:t.folderType},product:void 0,version:void 0,representations:void 0};case"representation":const i=a;return{entityType:"representation",entitySubType:void 0,projectName:u,id:i.id,name:i.name,label:void 0,tags:i.tags,status:i.status,updatedAt:i.updatedAt,createdAt:i.createdAt,attrib:s.parseAllAttribs(i.allAttrib),hasReviewables:void 0,thumbnailId:void 0,path:(((T=(f=(h=i.version)==null?void 0:h.product)==null?void 0:f.folder)==null?void 0:T.path)||"")+"/"+(((k=(g=i.version)==null?void 0:g.product)==null?void 0:k.name)||"")+"/"+((w=i.version)==null?void 0:w.version)+"/"+i.name,parents:i.parents,version:i.version,product:i.version.product,task:i.version.task||void 0,folder:(I=i.version.product)==null?void 0:I.folder,representations:void 0}}};exports.detailsPanelEntityTypes=P;exports.transformDetailsPanelQueriesData=D;
2
2
  //# sourceMappingURL=transformDetailsPanelData.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformDetailsPanelData.cjs.js","sources":["../../../../../../src/api/queries/entities/transformDetailsPanelData.ts"],"sourcesContent":["import {\n DetailsPanelFolderFragmentFragment,\n DetailsPanelProductFragmentFragment,\n DetailsPanelRepresentationFragmentFragment,\n DetailsPanelTaskFragmentFragment,\n DetailsPanelVersionFragmentFragment,\n GetDetailsPanelFolderQuery,\n GetDetailsPanelRepresentationQuery,\n GetDetailsPanelTaskQuery,\n GetDetailsPanelVersionQuery,\n} from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\n\ntype DetailsPanelTask = NonNullable<GetDetailsPanelTaskQuery['project']['task']>\ntype DetailsPanelRepresentation = NonNullable<\n GetDetailsPanelRepresentationQuery['project']['representation']\n>\ntype DetailsPanelVersion = NonNullable<GetDetailsPanelVersionQuery['project']['version']>\ntype DetailsPanelFolder = NonNullable<GetDetailsPanelFolderQuery['project']['folder']>\n\nexport const detailsPanelEntityTypes = ['task', 'version', 'folder', 'representation'] as const\nexport type DetailsPanelEntityType = (typeof detailsPanelEntityTypes)[number]\n\ntype TransformEntityDataArgs = {\n entity: DetailsPanelRepresentation | DetailsPanelTask | DetailsPanelVersion | DetailsPanelFolder\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\ntype NullableString = string | null | undefined\n\n// return type\nexport type DetailsPanelEntityData = {\n id: string\n name: string\n label: NullableString\n tags: string[]\n status: string\n updatedAt: string\n createdAt: string\n attrib: Record<string, string | number>\n hasReviewables?: boolean\n thumbnailId?: string | null | undefined\n path: string\n parents: string[]\n // extra metadata\n entityType: string\n entitySubType?: string\n projectName: string\n // type specific\n task?: DetailsPanelTaskFragmentFragment\n folder?: DetailsPanelFolderFragmentFragment\n product?: DetailsPanelProductFragmentFragment\n version?: DetailsPanelVersionFragmentFragment\n representations?: DetailsPanelRepresentationFragmentFragment[]\n}\n\n// takes the data from different entity types and returns a single data model\nexport const transformDetailsPanelQueriesData = ({\n entity,\n entityType,\n projectName,\n}: TransformEntityDataArgs): DetailsPanelEntityData => {\n switch (entityType) {\n case 'task':\n const task = entity as DetailsPanelTask\n return {\n entityType: 'task',\n entitySubType: task.taskType,\n projectName: projectName,\n id: task.id,\n name: task.name,\n label: task.label,\n tags: task.tags,\n status: task.status,\n updatedAt: task.updatedAt,\n createdAt: task.createdAt,\n attrib: parseAllAttribs(task.allAttrib),\n hasReviewables: task.hasReviewables,\n thumbnailId: task.thumbnailId,\n path: (task.folder?.path || '') + '/' + task.name,\n parents: task.parents,\n folder: task.folder,\n task: {\n id: task.id,\n name: task.name,\n label: task.label,\n assignees: task.assignees,\n taskType: task.taskType,\n },\n product: undefined,\n version: task.versions?.edges?.[0]?.node,\n }\n case 'version':\n const version = entity as DetailsPanelVersion\n return {\n entityType: 'version',\n entitySubType: undefined,\n projectName: projectName,\n id: version.id,\n name: version.name,\n label: undefined,\n tags: version.tags,\n status: version.status,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n attrib: parseAllAttribs(version.allAttrib),\n hasReviewables: version.hasReviewables,\n thumbnailId: version.thumbnailId,\n path:\n (version.product?.folder?.path || '') + '/' + version.product.name + '/' + version.name,\n parents: version.parents,\n folder: version.product?.folder,\n task: version.task ?? undefined,\n product: {\n id: version.product?.id,\n name: version.product?.name,\n productType: version.product?.productType,\n latestVersion: version.product.latestVersion,\n },\n version: {\n version: version.version,\n id: version.id,\n name: version.name,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n productId: version.product.id,\n },\n representations: version.representations?.edges?.map((edge) => edge.node) || [],\n }\n case 'folder':\n const folder = entity as DetailsPanelFolder\n return {\n entityType: 'folder',\n entitySubType: folder.folderType,\n projectName: projectName,\n id: folder.id,\n name: folder.name,\n label: folder.label,\n tags: folder.tags,\n status: folder.status,\n updatedAt: folder.updatedAt,\n createdAt: folder.createdAt,\n attrib: parseAllAttribs(folder.allAttrib),\n hasReviewables: folder.hasReviewables,\n thumbnailId: folder.thumbnailId,\n path: folder.path || '',\n parents: folder.parents,\n folder: {\n id: folder.id,\n name: folder.name,\n label: folder.label,\n folderType: folder.folderType,\n },\n product: undefined,\n version: undefined,\n representations: undefined,\n }\n case 'representation':\n const representation = entity as DetailsPanelRepresentation\n return {\n entityType: 'representation',\n entitySubType: undefined,\n projectName: projectName,\n id: representation.id,\n name: representation.name,\n label: undefined,\n tags: representation.tags,\n status: representation.status,\n updatedAt: representation.updatedAt,\n createdAt: representation.createdAt,\n attrib: parseAllAttribs(representation.allAttrib),\n hasReviewables: undefined,\n thumbnailId: undefined,\n path:\n (representation.version?.product?.folder?.path || '') +\n '/' +\n (representation.version?.product?.name || '') +\n '/' +\n representation.version?.version +\n '/' +\n representation.name,\n parents: representation.parents,\n version: representation.version,\n product: representation.version.product,\n task: representation.version.task || undefined,\n folder: representation.version.product?.folder,\n representations: undefined,\n }\n }\n}\n"],"names":["detailsPanelEntityTypes","transformDetailsPanelQueriesData","entity","entityType","projectName","task","parseAllAttribs","_a","_d","_c","_b","version","_f","_e","_g","_h","_i","_j","_l","_k","edge","folder","representation","_o","_n","_m","_q","_p","_r","_s"],"mappings":"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"}
1
+ {"version":3,"file":"transformDetailsPanelData.cjs.js","sources":["../../../../../../src/api/queries/entities/transformDetailsPanelData.ts"],"sourcesContent":["import {\n DetailsPanelFolderFragmentFragment,\n DetailsPanelProductFragmentFragment,\n DetailsPanelRepresentationFragmentFragment,\n DetailsPanelTaskFragmentFragment,\n DetailsPanelVersionFragmentFragment,\n GetDetailsPanelFolderQuery,\n GetDetailsPanelRepresentationQuery,\n GetDetailsPanelTaskQuery,\n GetDetailsPanelVersionQuery,\n} from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\n\ntype DetailsPanelTask = NonNullable<GetDetailsPanelTaskQuery['project']['task']>\ntype DetailsPanelRepresentation = NonNullable<\n GetDetailsPanelRepresentationQuery['project']['representation']\n>\ntype DetailsPanelVersion = NonNullable<GetDetailsPanelVersionQuery['project']['version']>\ntype DetailsPanelFolder = NonNullable<GetDetailsPanelFolderQuery['project']['folder']>\n\nexport const detailsPanelEntityTypes = ['task', 'version', 'folder', 'representation'] as const\nexport type DetailsPanelEntityType = (typeof detailsPanelEntityTypes)[number]\n\ntype TransformEntityDataArgs = {\n entity: DetailsPanelRepresentation | DetailsPanelTask | DetailsPanelVersion | DetailsPanelFolder\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\ntype NullableString = string | null | undefined\n\n// return type\nexport type DetailsPanelEntityData = {\n id: string\n name: string\n label: NullableString\n tags: string[]\n status: string\n updatedAt: string\n createdAt: string\n attrib: Record<string, string | number>\n hasReviewables?: boolean\n thumbnailId?: string | null | undefined\n path: string\n parents: string[]\n // extra metadata\n entityType: string\n entitySubType?: string\n projectName: string\n // type specific\n task?: DetailsPanelTaskFragmentFragment\n folder?: DetailsPanelFolderFragmentFragment\n product?: DetailsPanelProductFragmentFragment\n version?: DetailsPanelVersionFragmentFragment\n representations?: DetailsPanelRepresentationFragmentFragment[]\n}\n\n// takes the data from different entity types and returns a single data model\nexport const transformDetailsPanelQueriesData = ({\n entity,\n entityType,\n projectName,\n}: TransformEntityDataArgs): DetailsPanelEntityData => {\n switch (entityType) {\n case 'task':\n const task = entity as DetailsPanelTask\n return {\n entityType: 'task',\n entitySubType: task.taskType,\n projectName: projectName,\n id: task.id,\n name: task.name,\n label: task.label,\n tags: task.tags,\n status: task.status,\n updatedAt: task.updatedAt,\n createdAt: task.createdAt,\n attrib: parseAllAttribs(task.allAttrib),\n hasReviewables: task.hasReviewables,\n thumbnailId: task.thumbnailId,\n path: (task.folder?.path || '') + '/' + task.name,\n parents: task.parents,\n folder: task.folder,\n task: {\n id: task.id,\n name: task.name,\n label: task.label,\n assignees: task.assignees,\n taskType: task.taskType,\n },\n product: undefined,\n version: task.versions?.edges?.[0]?.node,\n }\n case 'version':\n const version = entity as DetailsPanelVersion\n return {\n entityType: 'version',\n entitySubType: undefined,\n projectName: projectName,\n id: version.id,\n name: version.name,\n label: undefined,\n tags: version.tags,\n status: version.status,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n attrib: parseAllAttribs(version.allAttrib),\n hasReviewables: version.hasReviewables,\n thumbnailId: version.thumbnailId,\n path:\n (version.product?.folder?.path || '') + '/' + version.product.name + '/' + version.name,\n parents: version.parents,\n folder: version.product?.folder,\n task: version.task ?? undefined,\n product: {\n id: version.product?.id,\n name: version.product?.name,\n productType: version.product?.productType,\n latestVersion: version.product.latestVersion,\n },\n version: {\n version: version.version,\n id: version.id,\n name: version.name,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n productId: version.product.id,\n },\n representations: version.representations?.edges?.map((edge) => edge.node) || [],\n }\n case 'folder':\n const folder = entity as DetailsPanelFolder\n return {\n entityType: 'folder',\n entitySubType: folder.folderType,\n projectName: projectName,\n id: folder.id,\n name: folder.name,\n label: folder.label,\n tags: folder.tags,\n status: folder.status,\n updatedAt: folder.updatedAt,\n createdAt: folder.createdAt,\n attrib: parseAllAttribs(folder.allAttrib),\n hasReviewables: folder.hasReviewables,\n thumbnailId: folder.thumbnailId,\n path: folder.path || '',\n parents: folder.parents,\n folder: {\n id: folder.id,\n name: folder.name,\n label: folder.label,\n folderType: folder.folderType,\n },\n product: undefined,\n version: undefined,\n representations: undefined,\n }\n case 'representation':\n const representation = entity as DetailsPanelRepresentation\n return {\n entityType: 'representation',\n entitySubType: undefined,\n projectName: projectName,\n id: representation.id,\n name: representation.name,\n label: undefined,\n tags: representation.tags,\n status: representation.status,\n updatedAt: representation.updatedAt,\n createdAt: representation.createdAt,\n attrib: parseAllAttribs(representation.allAttrib),\n hasReviewables: undefined,\n thumbnailId: undefined,\n path:\n (representation.version?.product?.folder?.path || '') +\n '/' +\n (representation.version?.product?.name || '') +\n '/' +\n representation.version?.version +\n '/' +\n representation.name,\n parents: representation.parents,\n version: representation.version,\n product: representation.version.product,\n task: representation.version.task || undefined,\n folder: representation.version.product?.folder,\n representations: undefined,\n }\n }\n}\n"],"names":["detailsPanelEntityTypes","transformDetailsPanelQueriesData","entity","entityType","projectName","task","parseAllAttribs","_a","_d","_c","_b","version","_f","_e","_g","_h","_i","_j","_l","_k","edge","folder","representation","_o","_n","_m","_q","_p","_r","_s"],"mappings":"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"}
@@ -48,6 +48,8 @@ import "../attributes/getAttributes.es.js";
48
48
  import "../attributes/updateAttributes.es.js";
49
49
  import "../authentication/getAuthentication.es.js";
50
50
  import "../cloud/cloud.es.js";
51
+ import "../config/getConfig.es.js";
52
+ import "../config/updateConfig.es.js";
51
53
  import "./getEntity.es.js";
52
54
  import "./getEntityPanel.es.js";
53
55
  import "./updateEntity.es.js";
@@ -81,7 +83,7 @@ import "../views/getViews.es.js";
81
83
  import "../views/updateViews.es.js";
82
84
  import "../watchers/getWatchers.es.js";
83
85
  import "../uris/getUris.es.js";
84
- const ie = ["task", "version", "folder", "representation"], oe = ({
86
+ const pe = ["task", "version", "folder", "representation"], ae = ({
85
87
  entity: o,
86
88
  entityType: S,
87
89
  projectName: p
@@ -208,7 +210,7 @@ const ie = ["task", "version", "folder", "representation"], oe = ({
208
210
  }
209
211
  };
210
212
  export {
211
- ie as detailsPanelEntityTypes,
212
- oe as transformDetailsPanelQueriesData
213
+ pe as detailsPanelEntityTypes,
214
+ ae as transformDetailsPanelQueriesData
213
215
  };
214
216
  //# sourceMappingURL=transformDetailsPanelData.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformDetailsPanelData.es.js","sources":["../../../../../../src/api/queries/entities/transformDetailsPanelData.ts"],"sourcesContent":["import {\n DetailsPanelFolderFragmentFragment,\n DetailsPanelProductFragmentFragment,\n DetailsPanelRepresentationFragmentFragment,\n DetailsPanelTaskFragmentFragment,\n DetailsPanelVersionFragmentFragment,\n GetDetailsPanelFolderQuery,\n GetDetailsPanelRepresentationQuery,\n GetDetailsPanelTaskQuery,\n GetDetailsPanelVersionQuery,\n} from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\n\ntype DetailsPanelTask = NonNullable<GetDetailsPanelTaskQuery['project']['task']>\ntype DetailsPanelRepresentation = NonNullable<\n GetDetailsPanelRepresentationQuery['project']['representation']\n>\ntype DetailsPanelVersion = NonNullable<GetDetailsPanelVersionQuery['project']['version']>\ntype DetailsPanelFolder = NonNullable<GetDetailsPanelFolderQuery['project']['folder']>\n\nexport const detailsPanelEntityTypes = ['task', 'version', 'folder', 'representation'] as const\nexport type DetailsPanelEntityType = (typeof detailsPanelEntityTypes)[number]\n\ntype TransformEntityDataArgs = {\n entity: DetailsPanelRepresentation | DetailsPanelTask | DetailsPanelVersion | DetailsPanelFolder\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\ntype NullableString = string | null | undefined\n\n// return type\nexport type DetailsPanelEntityData = {\n id: string\n name: string\n label: NullableString\n tags: string[]\n status: string\n updatedAt: string\n createdAt: string\n attrib: Record<string, string | number>\n hasReviewables?: boolean\n thumbnailId?: string | null | undefined\n path: string\n parents: string[]\n // extra metadata\n entityType: string\n entitySubType?: string\n projectName: string\n // type specific\n task?: DetailsPanelTaskFragmentFragment\n folder?: DetailsPanelFolderFragmentFragment\n product?: DetailsPanelProductFragmentFragment\n version?: DetailsPanelVersionFragmentFragment\n representations?: DetailsPanelRepresentationFragmentFragment[]\n}\n\n// takes the data from different entity types and returns a single data model\nexport const transformDetailsPanelQueriesData = ({\n entity,\n entityType,\n projectName,\n}: TransformEntityDataArgs): DetailsPanelEntityData => {\n switch (entityType) {\n case 'task':\n const task = entity as DetailsPanelTask\n return {\n entityType: 'task',\n entitySubType: task.taskType,\n projectName: projectName,\n id: task.id,\n name: task.name,\n label: task.label,\n tags: task.tags,\n status: task.status,\n updatedAt: task.updatedAt,\n createdAt: task.createdAt,\n attrib: parseAllAttribs(task.allAttrib),\n hasReviewables: task.hasReviewables,\n thumbnailId: task.thumbnailId,\n path: (task.folder?.path || '') + '/' + task.name,\n parents: task.parents,\n folder: task.folder,\n task: {\n id: task.id,\n name: task.name,\n label: task.label,\n assignees: task.assignees,\n taskType: task.taskType,\n },\n product: undefined,\n version: task.versions?.edges?.[0]?.node,\n }\n case 'version':\n const version = entity as DetailsPanelVersion\n return {\n entityType: 'version',\n entitySubType: undefined,\n projectName: projectName,\n id: version.id,\n name: version.name,\n label: undefined,\n tags: version.tags,\n status: version.status,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n attrib: parseAllAttribs(version.allAttrib),\n hasReviewables: version.hasReviewables,\n thumbnailId: version.thumbnailId,\n path:\n (version.product?.folder?.path || '') + '/' + version.product.name + '/' + version.name,\n parents: version.parents,\n folder: version.product?.folder,\n task: version.task ?? undefined,\n product: {\n id: version.product?.id,\n name: version.product?.name,\n productType: version.product?.productType,\n latestVersion: version.product.latestVersion,\n },\n version: {\n version: version.version,\n id: version.id,\n name: version.name,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n productId: version.product.id,\n },\n representations: version.representations?.edges?.map((edge) => edge.node) || [],\n }\n case 'folder':\n const folder = entity as DetailsPanelFolder\n return {\n entityType: 'folder',\n entitySubType: folder.folderType,\n projectName: projectName,\n id: folder.id,\n name: folder.name,\n label: folder.label,\n tags: folder.tags,\n status: folder.status,\n updatedAt: folder.updatedAt,\n createdAt: folder.createdAt,\n attrib: parseAllAttribs(folder.allAttrib),\n hasReviewables: folder.hasReviewables,\n thumbnailId: folder.thumbnailId,\n path: folder.path || '',\n parents: folder.parents,\n folder: {\n id: folder.id,\n name: folder.name,\n label: folder.label,\n folderType: folder.folderType,\n },\n product: undefined,\n version: undefined,\n representations: undefined,\n }\n case 'representation':\n const representation = entity as DetailsPanelRepresentation\n return {\n entityType: 'representation',\n entitySubType: undefined,\n projectName: projectName,\n id: representation.id,\n name: representation.name,\n label: undefined,\n tags: representation.tags,\n status: representation.status,\n updatedAt: representation.updatedAt,\n createdAt: representation.createdAt,\n attrib: parseAllAttribs(representation.allAttrib),\n hasReviewables: undefined,\n thumbnailId: undefined,\n path:\n (representation.version?.product?.folder?.path || '') +\n '/' +\n (representation.version?.product?.name || '') +\n '/' +\n representation.version?.version +\n '/' +\n representation.name,\n parents: representation.parents,\n version: representation.version,\n product: representation.version.product,\n task: representation.version.task || undefined,\n folder: representation.version.product?.folder,\n representations: undefined,\n }\n }\n}\n"],"names":["detailsPanelEntityTypes","transformDetailsPanelQueriesData","entity","entityType","projectName","task","parseAllAttribs","_a","_d","_c","_b","version","_f","_e","_g","_h","_i","_j","_l","_k","edge","folder","representation","_o","_n","_m","_q","_p","_r","_s"],"mappings":"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"}
1
+ {"version":3,"file":"transformDetailsPanelData.es.js","sources":["../../../../../../src/api/queries/entities/transformDetailsPanelData.ts"],"sourcesContent":["import {\n DetailsPanelFolderFragmentFragment,\n DetailsPanelProductFragmentFragment,\n DetailsPanelRepresentationFragmentFragment,\n DetailsPanelTaskFragmentFragment,\n DetailsPanelVersionFragmentFragment,\n GetDetailsPanelFolderQuery,\n GetDetailsPanelRepresentationQuery,\n GetDetailsPanelTaskQuery,\n GetDetailsPanelVersionQuery,\n} from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\n\ntype DetailsPanelTask = NonNullable<GetDetailsPanelTaskQuery['project']['task']>\ntype DetailsPanelRepresentation = NonNullable<\n GetDetailsPanelRepresentationQuery['project']['representation']\n>\ntype DetailsPanelVersion = NonNullable<GetDetailsPanelVersionQuery['project']['version']>\ntype DetailsPanelFolder = NonNullable<GetDetailsPanelFolderQuery['project']['folder']>\n\nexport const detailsPanelEntityTypes = ['task', 'version', 'folder', 'representation'] as const\nexport type DetailsPanelEntityType = (typeof detailsPanelEntityTypes)[number]\n\ntype TransformEntityDataArgs = {\n entity: DetailsPanelRepresentation | DetailsPanelTask | DetailsPanelVersion | DetailsPanelFolder\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\ntype NullableString = string | null | undefined\n\n// return type\nexport type DetailsPanelEntityData = {\n id: string\n name: string\n label: NullableString\n tags: string[]\n status: string\n updatedAt: string\n createdAt: string\n attrib: Record<string, string | number>\n hasReviewables?: boolean\n thumbnailId?: string | null | undefined\n path: string\n parents: string[]\n // extra metadata\n entityType: string\n entitySubType?: string\n projectName: string\n // type specific\n task?: DetailsPanelTaskFragmentFragment\n folder?: DetailsPanelFolderFragmentFragment\n product?: DetailsPanelProductFragmentFragment\n version?: DetailsPanelVersionFragmentFragment\n representations?: DetailsPanelRepresentationFragmentFragment[]\n}\n\n// takes the data from different entity types and returns a single data model\nexport const transformDetailsPanelQueriesData = ({\n entity,\n entityType,\n projectName,\n}: TransformEntityDataArgs): DetailsPanelEntityData => {\n switch (entityType) {\n case 'task':\n const task = entity as DetailsPanelTask\n return {\n entityType: 'task',\n entitySubType: task.taskType,\n projectName: projectName,\n id: task.id,\n name: task.name,\n label: task.label,\n tags: task.tags,\n status: task.status,\n updatedAt: task.updatedAt,\n createdAt: task.createdAt,\n attrib: parseAllAttribs(task.allAttrib),\n hasReviewables: task.hasReviewables,\n thumbnailId: task.thumbnailId,\n path: (task.folder?.path || '') + '/' + task.name,\n parents: task.parents,\n folder: task.folder,\n task: {\n id: task.id,\n name: task.name,\n label: task.label,\n assignees: task.assignees,\n taskType: task.taskType,\n },\n product: undefined,\n version: task.versions?.edges?.[0]?.node,\n }\n case 'version':\n const version = entity as DetailsPanelVersion\n return {\n entityType: 'version',\n entitySubType: undefined,\n projectName: projectName,\n id: version.id,\n name: version.name,\n label: undefined,\n tags: version.tags,\n status: version.status,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n attrib: parseAllAttribs(version.allAttrib),\n hasReviewables: version.hasReviewables,\n thumbnailId: version.thumbnailId,\n path:\n (version.product?.folder?.path || '') + '/' + version.product.name + '/' + version.name,\n parents: version.parents,\n folder: version.product?.folder,\n task: version.task ?? undefined,\n product: {\n id: version.product?.id,\n name: version.product?.name,\n productType: version.product?.productType,\n latestVersion: version.product.latestVersion,\n },\n version: {\n version: version.version,\n id: version.id,\n name: version.name,\n updatedAt: version.updatedAt,\n createdAt: version.createdAt,\n productId: version.product.id,\n },\n representations: version.representations?.edges?.map((edge) => edge.node) || [],\n }\n case 'folder':\n const folder = entity as DetailsPanelFolder\n return {\n entityType: 'folder',\n entitySubType: folder.folderType,\n projectName: projectName,\n id: folder.id,\n name: folder.name,\n label: folder.label,\n tags: folder.tags,\n status: folder.status,\n updatedAt: folder.updatedAt,\n createdAt: folder.createdAt,\n attrib: parseAllAttribs(folder.allAttrib),\n hasReviewables: folder.hasReviewables,\n thumbnailId: folder.thumbnailId,\n path: folder.path || '',\n parents: folder.parents,\n folder: {\n id: folder.id,\n name: folder.name,\n label: folder.label,\n folderType: folder.folderType,\n },\n product: undefined,\n version: undefined,\n representations: undefined,\n }\n case 'representation':\n const representation = entity as DetailsPanelRepresentation\n return {\n entityType: 'representation',\n entitySubType: undefined,\n projectName: projectName,\n id: representation.id,\n name: representation.name,\n label: undefined,\n tags: representation.tags,\n status: representation.status,\n updatedAt: representation.updatedAt,\n createdAt: representation.createdAt,\n attrib: parseAllAttribs(representation.allAttrib),\n hasReviewables: undefined,\n thumbnailId: undefined,\n path:\n (representation.version?.product?.folder?.path || '') +\n '/' +\n (representation.version?.product?.name || '') +\n '/' +\n representation.version?.version +\n '/' +\n representation.name,\n parents: representation.parents,\n version: representation.version,\n product: representation.version.product,\n task: representation.version.task || undefined,\n folder: representation.version.product?.folder,\n representations: undefined,\n }\n }\n}\n"],"names":["detailsPanelEntityTypes","transformDetailsPanelQueriesData","entity","entityType","projectName","task","parseAllAttribs","_a","_d","_c","_b","version","_f","_e","_g","_h","_i","_j","_l","_k","edge","folder","representation","_o","_n","_m","_q","_p","_r","_s"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./getEntity.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 G=require("./getEntityPanel.cjs.js");require("../../base/client.cjs.js");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/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/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../links/getEntityLinks.cjs.js");require("../overview/getOverview.cjs.js");const x=require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");const T=require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const H=require("react-toastify"),F=({assignees:b=[],projects:d=[]},{newAssignees:e,taskId:s,data:n,taskData:l},{dispatch:a})=>{let v=!1;return[a(T.dashboardQueries.util.updateQueryData("GetKanban",{projects:d,assignees:b},f=>{var h,r;const g=f.findIndex(t=>t.id===s);let u={...n};if((h=n==null?void 0:n.attrib)!=null&&h.priority){const{priority:t}=u.attrib;u={...u,priority:t}}if((r=n==null?void 0:n.attrib)!=null&&r.endDate){const{endDate:t}=u.attrib;u={...u,dueDate:t},delete u.attrib.endDate}if(g===-1)l?f.push(l):v=!1;else if(v=!0,!(e==null?void 0:e.some(c=>b.includes(c)))&&e)f.splice(g,1);else{const c={...f[g],...u};f[g]=c}})),v]},L=({operations:b=[],state:d,dispatch:e,entityType:s})=>{const n=b.map(a=>({type:"progress",id:a.id}));let l=w.default.util.selectInvalidatedBy(d,n);if(!l.length)return[];try{return l.map(v=>e(w.default.util.updateQueryData(v.endpointName,v.originalArgs,o=>{var f,g;for(const u of b){const h=u.id,r=u.data;if(s==="task"){const t=(f=u.meta)==null?void 0:f.folderId,c=o.find(i=>i.id===t);if(!c)throw new Error("Patching progress view: folder not found");const k=(g=c.tasks)==null?void 0:g.find(i=>i.id===h);if(!k)throw new Error("Patching progress view: task not found");const y={...k,...r},p={...c,tasks:c.tasks.map(i=>i.id===h?y:i)},S=o.findIndex(i=>i.id===t);o[S]=p}else if(s==="folder"){const t=o.find(p=>p.id===h);if(!t)throw new Error("Patching progress view: folder not found");let c={...r};if(r.name&&t.path){const p=t.path.split("/");p[p.length-1]=r.name,c.path=p.join("/")}const k={...t,...c},y=o.findIndex(p=>p.id===h);o[y]=k}}})))}catch(a){return console.error(a),e(w.default.util.invalidateTags(n)),[]}},O=w.default.injectEndpoints({endpoints:b=>({updateEntity:b.mutation({query:({projectName:d,entityId:e,data:s,entityType:n})=>({url:`/api/projects/${d}/${n}s/${e}`,method:"PATCH",body:s}),async onQueryStarted({projectName:d,entityId:e,data:s,currentAssignees:n,entityType:l},{dispatch:a,queryFulfilled:v,getState:o}){var t,c,k,y,p,S;const f=o(),g=[];let u=[];if(l==="task"){const i=((t=o().dashboard)==null?void 0:t.selectedProjects)||[],E=((c=o().dashboard)==null?void 0:c.tasks.assignees)||[],Q=((k=o().dashboard)==null?void 0:k.tasks.assigneesFilter)==="me",m=s.assignees,j=Q?[(y=o().user)==null?void 0:y.name]:E,B=[...new Set([...n,...m||[]])].some(q=>j.includes(q)),K=i.some(q=>q===d);if(B&&K){const[q,P]=F({assignees:j,projects:i},{newAssignees:m,taskId:e,data:s},{dispatch:a});P&&g.push(q),P||T.getKanbanTasks({projects:[d],taskIds:[e]},a).then(D=>{let A=D.find(R=>R.id===e);A&&(A={...A,assignees:m},F({assignees:j,projects:i},{newAssignees:m,taskId:e,taskData:A},{dispatch:a}))})}const M=[{type:"task",id:e}];if(m!=null&&m.length){const q=new Set(n),P=new Set(m),D=[...q].filter(I=>!P.has(I)),A=[...P].filter(I=>!q.has(I)),$=[...new Set([...D,...A])].map(I=>({type:"kanban",id:"user-"+I+"-project-"+d}));M.push(...$),a(T.dashboardQueries.util.invalidateTags([{type:"watchers",id:e}]))}let N=T.dashboardQueries.util.selectInvalidatedBy(f,M),U=[];for(const q of N){const[P,D]=F({assignees:q.originalArgs.assignees,projects:q.originalArgs.projects},{newAssignees:m,taskId:e,data:s},{dispatch:a});D?g.push(P):U.push(q)}const C={projects:i,assignees:j};U=U.filter(q=>JSON.stringify(q.originalArgs)!==JSON.stringify(C));const J=N.map(q=>({type:"kanban",id:JSON.stringify(q.originalArgs)}));u.push(...J)}const h=[{type:"entities",id:e}],r=w.default.util.selectInvalidatedBy(f,h);for(const i of r){let E=a(G.detailsPanelQueries.util.updateQueryData("getEntitiesDetailsPanel",i.originalArgs,Q=>{for(const m of Q)x.patchDetailsPanelEntity([{entityId:e,data:s,entityType:l}],m)}));g.push(E)}try{await v,u.length&&a(T.dashboardQueries.util.invalidateTags(u))}catch(i){console.error("error updating "+l,i),H.toast.error(((S=(p=i==null?void 0:i.error)==null?void 0:p.data)==null?void 0:S.detail)||"Failed to update task"),g.forEach(E=>E==null?void 0:E.undo())}}}),updateEntities:b.mutation({async queryFn({operations:d=[],entityType:e},{dispatch:s,getState:n}){try{const l=n(),a=[];for(const{projectName:r,data:t,id:c,currentAssignees:k=[]}of d){const y=s(O.endpoints.updateEntity.initiate({projectName:r,entityId:c,data:t,entityType:e,currentAssignees:k}));a.push(y)}let v=[];(e==="task"||e==="folder")&&(v=L({operations:d,state:l,dispatch:s,entityType:e}));const o=[],f=d.map(r=>({...r,entityId:r.id}));if((e==="task"||e==="folder")&&(e==="task"&&x.patchOverviewTasks(f,{state:l,dispatch:s},o),e==="folder"&&(x.patchOverviewFolders(f,{state:l,dispatch:s},o),console.log("invalidate overview folders"),s(w.default.util.invalidateTags([{type:"folder",id:"LIST"}])),s(w.default.util.invalidateTags(f.map(r=>({type:"overviewTask",id:r.entityId})))))),(await Promise.allSettled(a)).some(r=>{var t;return(t=r.value)==null?void 0:t.error}))throw s(w.default.util.invalidateTags(d.map(r=>({type:"kanBanTask",id:r.id})))),v.forEach(r=>r==null?void 0:r.undo()),o.forEach(r=>r==null?void 0:r.undo()),"Failed to update some tasks";const h=[];return h.length&&s(w.default.util.invalidateTags(h)),{data:d}}catch(l){return console.error(l),{error:l}}},invalidatesTags:(d,e,{operations:s})=>[...s.map(n=>({id:n.id,type:"review"}))]})}),overrideExisting:!0}),{useUpdateEntitiesMutation:V,useUpdateEntityMutation:W}=O;exports.entitiesQueries=O;exports.useUpdateEntitiesMutation=V;exports.useUpdateEntityMutation=W;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./getEntity.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");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");const G=require("./getEntityPanel.cjs.js");require("../../base/client.cjs.js");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/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/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../links/getEntityLinks.cjs.js");require("../overview/getOverview.cjs.js");const x=require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../review/getReview.cjs.js");require("../review/updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");const T=require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const H=require("react-toastify"),F=({assignees:b=[],projects:d=[]},{newAssignees:e,taskId:s,data:n,taskData:l},{dispatch:a})=>{let v=!1;return[a(T.dashboardQueries.util.updateQueryData("GetKanban",{projects:d,assignees:b},f=>{var h,r;const g=f.findIndex(t=>t.id===s);let u={...n};if((h=n==null?void 0:n.attrib)!=null&&h.priority){const{priority:t}=u.attrib;u={...u,priority:t}}if((r=n==null?void 0:n.attrib)!=null&&r.endDate){const{endDate:t}=u.attrib;u={...u,dueDate:t},delete u.attrib.endDate}if(g===-1)l?f.push(l):v=!1;else if(v=!0,!(e==null?void 0:e.some(c=>b.includes(c)))&&e)f.splice(g,1);else{const c={...f[g],...u};f[g]=c}})),v]},L=({operations:b=[],state:d,dispatch:e,entityType:s})=>{const n=b.map(a=>({type:"progress",id:a.id}));let l=w.default.util.selectInvalidatedBy(d,n);if(!l.length)return[];try{return l.map(v=>e(w.default.util.updateQueryData(v.endpointName,v.originalArgs,o=>{var f,g;for(const u of b){const h=u.id,r=u.data;if(s==="task"){const t=(f=u.meta)==null?void 0:f.folderId,c=o.find(i=>i.id===t);if(!c)throw new Error("Patching progress view: folder not found");const k=(g=c.tasks)==null?void 0:g.find(i=>i.id===h);if(!k)throw new Error("Patching progress view: task not found");const y={...k,...r},p={...c,tasks:c.tasks.map(i=>i.id===h?y:i)},S=o.findIndex(i=>i.id===t);o[S]=p}else if(s==="folder"){const t=o.find(p=>p.id===h);if(!t)throw new Error("Patching progress view: folder not found");let c={...r};if(r.name&&t.path){const p=t.path.split("/");p[p.length-1]=r.name,c.path=p.join("/")}const k={...t,...c},y=o.findIndex(p=>p.id===h);o[y]=k}}})))}catch(a){return console.error(a),e(w.default.util.invalidateTags(n)),[]}},O=w.default.injectEndpoints({endpoints:b=>({updateEntity:b.mutation({query:({projectName:d,entityId:e,data:s,entityType:n})=>({url:`/api/projects/${d}/${n}s/${e}`,method:"PATCH",body:s}),async onQueryStarted({projectName:d,entityId:e,data:s,currentAssignees:n,entityType:l},{dispatch:a,queryFulfilled:v,getState:o}){var t,c,k,y,p,S;const f=o(),g=[];let u=[];if(l==="task"){const i=((t=o().dashboard)==null?void 0:t.selectedProjects)||[],E=((c=o().dashboard)==null?void 0:c.tasks.assignees)||[],Q=((k=o().dashboard)==null?void 0:k.tasks.assigneesFilter)==="me",m=s.assignees,j=Q?[(y=o().user)==null?void 0:y.name]:E,B=[...new Set([...n,...m||[]])].some(q=>j.includes(q)),K=i.some(q=>q===d);if(B&&K){const[q,P]=F({assignees:j,projects:i},{newAssignees:m,taskId:e,data:s},{dispatch:a});P&&g.push(q),P||T.getKanbanTasks({projects:[d],taskIds:[e]},a).then(D=>{let A=D.find(R=>R.id===e);A&&(A={...A,assignees:m},F({assignees:j,projects:i},{newAssignees:m,taskId:e,taskData:A},{dispatch:a}))})}const M=[{type:"task",id:e}];if(m!=null&&m.length){const q=new Set(n),P=new Set(m),D=[...q].filter(I=>!P.has(I)),A=[...P].filter(I=>!q.has(I)),$=[...new Set([...D,...A])].map(I=>({type:"kanban",id:"user-"+I+"-project-"+d}));M.push(...$),a(T.dashboardQueries.util.invalidateTags([{type:"watchers",id:e}]))}let N=T.dashboardQueries.util.selectInvalidatedBy(f,M),U=[];for(const q of N){const[P,D]=F({assignees:q.originalArgs.assignees,projects:q.originalArgs.projects},{newAssignees:m,taskId:e,data:s},{dispatch:a});D?g.push(P):U.push(q)}const C={projects:i,assignees:j};U=U.filter(q=>JSON.stringify(q.originalArgs)!==JSON.stringify(C));const J=N.map(q=>({type:"kanban",id:JSON.stringify(q.originalArgs)}));u.push(...J)}const h=[{type:"entities",id:e}],r=w.default.util.selectInvalidatedBy(f,h);for(const i of r){let E=a(G.detailsPanelQueries.util.updateQueryData("getEntitiesDetailsPanel",i.originalArgs,Q=>{for(const m of Q)x.patchDetailsPanelEntity([{entityId:e,data:s,entityType:l}],m)}));g.push(E)}try{await v,u.length&&a(T.dashboardQueries.util.invalidateTags(u))}catch(i){console.error("error updating "+l,i),H.toast.error(((S=(p=i==null?void 0:i.error)==null?void 0:p.data)==null?void 0:S.detail)||"Failed to update task"),g.forEach(E=>E==null?void 0:E.undo())}}}),updateEntities:b.mutation({async queryFn({operations:d=[],entityType:e},{dispatch:s,getState:n}){try{const l=n(),a=[];for(const{projectName:r,data:t,id:c,currentAssignees:k=[]}of d){const y=s(O.endpoints.updateEntity.initiate({projectName:r,entityId:c,data:t,entityType:e,currentAssignees:k}));a.push(y)}let v=[];(e==="task"||e==="folder")&&(v=L({operations:d,state:l,dispatch:s,entityType:e}));const o=[],f=d.map(r=>({...r,entityId:r.id}));if((e==="task"||e==="folder")&&(e==="task"&&x.patchOverviewTasks(f,{state:l,dispatch:s},o),e==="folder"&&(x.patchOverviewFolders(f,{state:l,dispatch:s},o),console.log("invalidate overview folders"),s(w.default.util.invalidateTags([{type:"folder",id:"LIST"}])),s(w.default.util.invalidateTags(f.map(r=>({type:"overviewTask",id:r.entityId})))))),(await Promise.allSettled(a)).some(r=>{var t;return(t=r.value)==null?void 0:t.error}))throw s(w.default.util.invalidateTags(d.map(r=>({type:"kanBanTask",id:r.id})))),v.forEach(r=>r==null?void 0:r.undo()),o.forEach(r=>r==null?void 0:r.undo()),"Failed to update some tasks";const h=[];return h.length&&s(w.default.util.invalidateTags(h)),{data:d}}catch(l){return console.error(l),{error:l}}},invalidatesTags:(d,e,{operations:s})=>[...s.map(n=>({id:n.id,type:"review"}))]})}),overrideExisting:!0}),{useUpdateEntitiesMutation:V,useUpdateEntityMutation:W}=O;exports.entitiesQueries=O;exports.useUpdateEntitiesMutation=V;exports.useUpdateEntityMutation=W;
2
2
  //# sourceMappingURL=updateEntity.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateEntity.cjs.js","sources":["../../../../../../src/api/queries/entities/updateEntity.ts"],"sourcesContent":["// @ts-nocheck\n\nimport api from './getEntity'\nimport { detailsPanelQueries } from '@shared/api/queries'\nimport { patchDetailsPanelEntity } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { dashboardQueries, getKanbanTasks } from '@shared/api/queries/userDashboard'\nimport { patchOverviewFolders, patchOverviewTasks } from '@shared/api/queries/overview'\n\nconst patchKanban = (\n { assignees = [], projects = [] },\n { newAssignees, taskId, data, taskData },\n { dispatch },\n) => {\n let kanbanPatched = false\n const patchResult = dispatch(\n dashboardQueries.util.updateQueryData(\n 'GetKanban',\n { projects: projects, assignees: assignees },\n (draft) => {\n const taskIndex = draft.findIndex((task) => task.id === taskId)\n let patchData = { ...data }\n // if the data include attrib.priority it needs to be transformed to just priority\n // this is because priority is a top level field on kanban query\n if (data?.attrib?.priority) {\n const { priority } = patchData.attrib\n patchData = { ...patchData, priority }\n }\n // if the data include attrib.endDate it needs to be transformed to dueDate\n // this is because dueDate is a top level field on kanban query\n // NOTE TO SELF: Lets try to do these transforms after the cache the future.\n if (data?.attrib?.endDate) {\n const { endDate } = patchData.attrib\n patchData = { ...patchData, dueDate: endDate }\n delete patchData.attrib.endDate\n }\n\n if (taskIndex === -1) {\n // task not found, assignee must have just been added\n if (taskData) {\n // add the task to the cache\n draft.push(taskData)\n } else {\n // we don't have the task data, so we can't add it to the cache\n // we might add it later\n kanbanPatched = false\n }\n } else {\n kanbanPatched = true\n // first check that the task assignees still has a intersection with dashAssignees\n const hasSomeAssignees = newAssignees?.some((assignee) => assignees.includes(assignee))\n\n if (!hasSomeAssignees && newAssignees) {\n // remove from cache\n draft.splice(taskIndex, 1)\n } else {\n // task found: update the task in the cache\n const newData = { ...draft[taskIndex], ...patchData }\n draft[taskIndex] = newData\n }\n }\n },\n ),\n )\n\n return [patchResult, kanbanPatched]\n}\n\n// try to patch the progress view if there are queries that need to be updated\nconst patchProgressView = ({ operations = [], state, dispatch, entityType }) => {\n // create invalidation tags for progress view\n const invalidationTags = operations.map((o) => ({ type: 'progress', id: o.id }))\n // find the entries that need to be updated\n let entries = api.util.selectInvalidatedBy(state, invalidationTags)\n // if there are no entries, return\n if (!entries.length) return []\n\n try {\n // patch each entry with updated task data\n const patches = entries.map((entry) =>\n dispatch(\n api.util.updateQueryData(entry.endpointName, entry.originalArgs, (draft) => {\n for (const operation of operations) {\n const entityId = operation.id\n const patch = operation.data\n\n // patch the updated task data\n if (entityType === 'task') {\n const folderId = operation.meta?.folderId\n const folder = draft.find((folder) => folder.id === folderId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n const task = folder.tasks?.find((task) => task.id === entityId)\n if (!task) throw new Error('Patching progress view: task not found')\n // update task\n const newTask = { ...task, ...patch }\n // update folder\n const newFolder = {\n ...folder,\n tasks: folder.tasks.map((t) => (t.id === entityId ? newTask : t)),\n }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === folderId)\n draft[folderIndex] = newFolder\n } else if (entityType === 'folder') {\n const folder = draft.find((folder) => folder.id === entityId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n\n // If name is being updated, also update the path\n let updatedPatch = { ...patch }\n if (patch.name && folder.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = folder.path.split('/')\n pathParts[pathParts.length - 1] = patch.name\n updatedPatch.path = pathParts.join('/')\n }\n\n // update folder\n const newFolder = { ...folder, ...updatedPatch }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === entityId)\n draft[folderIndex] = newFolder\n }\n }\n }),\n ),\n )\n return patches\n } catch (error) {\n console.error(error)\n // invalidate the progress view queries instead\n dispatch(api.util.invalidateTags(invalidationTags))\n return []\n }\n}\n\nconst updateEntity = api.injectEndpoints({\n endpoints: (build) => ({\n updateEntity: build.mutation({\n query: ({ projectName, entityId, data, entityType }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(\n { projectName, entityId, data, currentAssignees, entityType },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n const patchResults = []\n\n let invalidationTagsAfterComplete = []\n // if task, patch the GetKanban query\n if (entityType === 'task') {\n const dashboardProjects = getState().dashboard?.selectedProjects || []\n const dashboardUsers = getState().dashboard?.tasks.assignees || []\n const dashboardAssigneesIsMe = getState().dashboard?.tasks.assigneesFilter === 'me'\n const newAssignees = data.assignees\n\n const cacheUsers = dashboardAssigneesIsMe ? [getState().user?.name] : dashboardUsers\n\n const entityAssignees = [...new Set([...currentAssignees, ...(newAssignees || [])])]\n const hasSomeAssignees = entityAssignees.some((assignee) => cacheUsers.includes(assignee))\n const hasSomeProjects = dashboardProjects.some((project) => project === projectName)\n const currentDashNeedsUpdating = hasSomeAssignees && hasSomeProjects\n\n if (currentDashNeedsUpdating) {\n const [result, wasPatched] = patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, data },\n { dispatch },\n )\n\n if (wasPatched) patchResults.push(result)\n\n if (!wasPatched) {\n // this means the task is not in the current kanban and it needs to be added\n\n // get the new task data\n getKanbanTasks({ projects: [projectName], taskIds: [entityId] }, dispatch).then(\n // use .then so that the rest of the code can run\n (response) => {\n let newTask = response.find((task) => task.id === entityId)\n if (newTask) {\n // add newAssignees as the actual DB hasn't been updated yet\n newTask = { ...newTask, assignees: newAssignees }\n\n patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, taskData: newTask },\n { dispatch },\n )\n }\n },\n )\n }\n }\n\n // always update the kanban if task id matches\n const tags = [{ type: 'task', id: entityId }]\n\n // are we changing the assignees?\n if (newAssignees?.length) {\n const currentAssigneesSet = new Set(currentAssignees)\n const newAssigneesSet = new Set(newAssignees)\n\n const removedAssignees = [...currentAssigneesSet].filter(\n (assignee) => !newAssigneesSet.has(assignee),\n )\n const addedAssignees = [...newAssigneesSet].filter(\n (assignee) => !currentAssigneesSet.has(assignee),\n )\n\n const changedAssignees = [...new Set([...removedAssignees, ...addedAssignees])]\n\n // any query that has those changed assignees, needs to be updated\n // we are changing the assignees\n const assigneesTags = changedAssignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n }))\n\n tags.push(...assigneesTags)\n\n // invalidate the watchers query\n dispatch(\n dashboardQueries.util.invalidateTags([\n {\n type: 'watchers',\n id: entityId,\n },\n ]),\n )\n }\n\n // invalidate any other caches\n let entries = dashboardQueries.util.selectInvalidatedBy(state, tags)\n let entriesToInvalidate = []\n\n // for each entry try to patch the data into the cache first\n for (const entry of entries) {\n const [patchResult, wasPatched] = patchKanban(\n {\n assignees: entry.originalArgs.assignees,\n projects: entry.originalArgs.projects,\n },\n {\n newAssignees,\n taskId: entityId,\n data,\n },\n { dispatch },\n )\n\n if (wasPatched) {\n patchResults.push(patchResult)\n } else {\n // if we couldn't patch, we need to invalidate the cache\n entriesToInvalidate.push(entry)\n }\n }\n\n // filter out current kanban query if we were able to patch it\n const currentKanbanCacheArgs = { projects: dashboardProjects, assignees: cacheUsers }\n entriesToInvalidate = entriesToInvalidate.filter(\n (entry) =>\n JSON.stringify(entry.originalArgs) !== JSON.stringify(currentKanbanCacheArgs),\n )\n\n // create the invalidation tags from originalArgs\n const invalidationTags = entries.map((entry) => ({\n type: 'kanban',\n id: JSON.stringify(entry.originalArgs),\n }))\n\n // invalidate the tags later, once the query is complete\n invalidationTagsAfterComplete.push(...invalidationTags)\n }\n\n // get all details panel caches that would be affected by this update\n const detailsPanelTags = [\n {\n type: 'entities',\n id: entityId,\n },\n ]\n\n const detailsPanelEntries = api.util.selectInvalidatedBy(state, detailsPanelTags)\n\n for (const entry of detailsPanelEntries) {\n // patch any entity details panels in dashboard\n let entityDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity([{ entityId, data, entityType }], entity)\n }\n },\n ),\n )\n\n patchResults.push(entityDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // now invalidate any tags\n if (invalidationTagsAfterComplete.length) {\n dispatch(dashboardQueries.util.invalidateTags(invalidationTagsAfterComplete))\n }\n } catch (error) {\n console.error('error updating ' + entityType, error)\n toast.error(error?.error?.data?.detail || 'Failed to update task')\n patchResults.forEach((result) => result?.undo())\n }\n },\n }),\n updateEntities: build.mutation({\n async queryFn({ operations = [], entityType }, { dispatch, getState }) {\n try {\n const state = getState()\n const promises = []\n for (const { projectName, data, id, currentAssignees = [] } of operations) {\n const promise = dispatch(\n updateEntity.endpoints.updateEntity.initiate({\n projectName: projectName,\n entityId: id,\n data,\n entityType,\n currentAssignees,\n }),\n )\n promises.push(promise)\n }\n\n let progressPatches = []\n if (entityType === 'task' || entityType === 'folder') {\n // patch the progress page\n progressPatches = patchProgressView({ operations, state, dispatch, entityType })\n }\n\n const overviewPatches = []\n // convert id in operations to entityId\n const operationsWithEntityId = operations.map((o) => ({ ...o, entityId: o.id }))\n if (entityType === 'task' || entityType === 'folder') {\n // patch the overview page\n if (entityType === 'task') {\n patchOverviewTasks(operationsWithEntityId, { state, dispatch }, overviewPatches)\n }\n if (entityType === 'folder') {\n // patch the overview page\n patchOverviewFolders(operationsWithEntityId, { state, dispatch }, overviewPatches)\n console.log('invalidate overview folders')\n // invalidate overview folders query\n dispatch(api.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n // invalidate overview tasks with folder as a parent\n dispatch(\n api.util.invalidateTags(\n operationsWithEntityId.map((o) => ({ type: 'overviewTask', id: o.entityId })),\n ),\n )\n }\n }\n\n // check if any of the requests failed and invalidate the tasks cache again to refetch\n const results = await Promise.allSettled(promises)\n\n // did any of the requests fail?\n const someError = results.some((result) => result.value?.error)\n if (someError) {\n dispatch(\n api.util.invalidateTags(operations.map((o) => ({ type: 'kanBanTask', id: o.id }))),\n )\n\n // revert the progress view patches\n progressPatches.forEach((patch) => patch?.undo())\n\n // revert the overview patches\n overviewPatches.forEach((patch) => patch?.undo())\n\n throw 'Failed to update some tasks'\n }\n\n const activityTags = []\n\n if (activityTags.length) {\n dispatch(api.util.invalidateTags(activityTags))\n }\n\n return { data: operations }\n } catch (error) {\n console.error(error)\n return { error }\n }\n },\n invalidatesTags: (result, error, { operations }) => [\n ...operations.map((o) => ({ id: o.id, type: 'review' })),\n ],\n }),\n }),\n overrideExisting: true,\n})\n\nexport const { useUpdateEntitiesMutation, useUpdateEntityMutation } = updateEntity\nexport { updateEntity as entitiesQueries }\n"],"names":["patchKanban","assignees","projects","newAssignees","taskId","data","taskData","dispatch","kanbanPatched","dashboardQueries","draft","taskIndex","task","patchData","_a","priority","_b","endDate","assignee","newData","patchProgressView","operations","state","entityType","invalidationTags","o","entries","api","entry","operation","entityId","patch","folderId","folder","newTask","newFolder","t","folderIndex","f","updatedPatch","pathParts","error","updateEntity","build","projectName","currentAssignees","queryFulfilled","getState","patchResults","invalidationTagsAfterComplete","dashboardProjects","dashboardUsers","dashboardAssigneesIsMe","_c","cacheUsers","_d","hasSomeAssignees","hasSomeProjects","project","result","wasPatched","getKanbanTasks","response","tags","currentAssigneesSet","newAssigneesSet","removedAssignees","addedAssignees","assigneesTags","entriesToInvalidate","patchResult","currentKanbanCacheArgs","detailsPanelTags","detailsPanelEntries","entityDetailsResult","detailsPanelQueries","entity","patchDetailsPanelEntity","toast","_f","_e","promises","id","promise","progressPatches","overviewPatches","operationsWithEntityId","patchOverviewTasks","patchOverviewFolders","activityTags","useUpdateEntitiesMutation","useUpdateEntityMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateEntity.cjs.js","sources":["../../../../../../src/api/queries/entities/updateEntity.ts"],"sourcesContent":["// @ts-nocheck\n\nimport api from './getEntity'\nimport { detailsPanelQueries } from '@shared/api/queries'\nimport { patchDetailsPanelEntity } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { dashboardQueries, getKanbanTasks } from '@shared/api/queries/userDashboard'\nimport { patchOverviewFolders, patchOverviewTasks } from '@shared/api/queries/overview'\n\nconst patchKanban = (\n { assignees = [], projects = [] },\n { newAssignees, taskId, data, taskData },\n { dispatch },\n) => {\n let kanbanPatched = false\n const patchResult = dispatch(\n dashboardQueries.util.updateQueryData(\n 'GetKanban',\n { projects: projects, assignees: assignees },\n (draft) => {\n const taskIndex = draft.findIndex((task) => task.id === taskId)\n let patchData = { ...data }\n // if the data include attrib.priority it needs to be transformed to just priority\n // this is because priority is a top level field on kanban query\n if (data?.attrib?.priority) {\n const { priority } = patchData.attrib\n patchData = { ...patchData, priority }\n }\n // if the data include attrib.endDate it needs to be transformed to dueDate\n // this is because dueDate is a top level field on kanban query\n // NOTE TO SELF: Lets try to do these transforms after the cache the future.\n if (data?.attrib?.endDate) {\n const { endDate } = patchData.attrib\n patchData = { ...patchData, dueDate: endDate }\n delete patchData.attrib.endDate\n }\n\n if (taskIndex === -1) {\n // task not found, assignee must have just been added\n if (taskData) {\n // add the task to the cache\n draft.push(taskData)\n } else {\n // we don't have the task data, so we can't add it to the cache\n // we might add it later\n kanbanPatched = false\n }\n } else {\n kanbanPatched = true\n // first check that the task assignees still has a intersection with dashAssignees\n const hasSomeAssignees = newAssignees?.some((assignee) => assignees.includes(assignee))\n\n if (!hasSomeAssignees && newAssignees) {\n // remove from cache\n draft.splice(taskIndex, 1)\n } else {\n // task found: update the task in the cache\n const newData = { ...draft[taskIndex], ...patchData }\n draft[taskIndex] = newData\n }\n }\n },\n ),\n )\n\n return [patchResult, kanbanPatched]\n}\n\n// try to patch the progress view if there are queries that need to be updated\nconst patchProgressView = ({ operations = [], state, dispatch, entityType }) => {\n // create invalidation tags for progress view\n const invalidationTags = operations.map((o) => ({ type: 'progress', id: o.id }))\n // find the entries that need to be updated\n let entries = api.util.selectInvalidatedBy(state, invalidationTags)\n // if there are no entries, return\n if (!entries.length) return []\n\n try {\n // patch each entry with updated task data\n const patches = entries.map((entry) =>\n dispatch(\n api.util.updateQueryData(entry.endpointName, entry.originalArgs, (draft) => {\n for (const operation of operations) {\n const entityId = operation.id\n const patch = operation.data\n\n // patch the updated task data\n if (entityType === 'task') {\n const folderId = operation.meta?.folderId\n const folder = draft.find((folder) => folder.id === folderId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n const task = folder.tasks?.find((task) => task.id === entityId)\n if (!task) throw new Error('Patching progress view: task not found')\n // update task\n const newTask = { ...task, ...patch }\n // update folder\n const newFolder = {\n ...folder,\n tasks: folder.tasks.map((t) => (t.id === entityId ? newTask : t)),\n }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === folderId)\n draft[folderIndex] = newFolder\n } else if (entityType === 'folder') {\n const folder = draft.find((folder) => folder.id === entityId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n\n // If name is being updated, also update the path\n let updatedPatch = { ...patch }\n if (patch.name && folder.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = folder.path.split('/')\n pathParts[pathParts.length - 1] = patch.name\n updatedPatch.path = pathParts.join('/')\n }\n\n // update folder\n const newFolder = { ...folder, ...updatedPatch }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === entityId)\n draft[folderIndex] = newFolder\n }\n }\n }),\n ),\n )\n return patches\n } catch (error) {\n console.error(error)\n // invalidate the progress view queries instead\n dispatch(api.util.invalidateTags(invalidationTags))\n return []\n }\n}\n\nconst updateEntity = api.injectEndpoints({\n endpoints: (build) => ({\n updateEntity: build.mutation({\n query: ({ projectName, entityId, data, entityType }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(\n { projectName, entityId, data, currentAssignees, entityType },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n const patchResults = []\n\n let invalidationTagsAfterComplete = []\n // if task, patch the GetKanban query\n if (entityType === 'task') {\n const dashboardProjects = getState().dashboard?.selectedProjects || []\n const dashboardUsers = getState().dashboard?.tasks.assignees || []\n const dashboardAssigneesIsMe = getState().dashboard?.tasks.assigneesFilter === 'me'\n const newAssignees = data.assignees\n\n const cacheUsers = dashboardAssigneesIsMe ? [getState().user?.name] : dashboardUsers\n\n const entityAssignees = [...new Set([...currentAssignees, ...(newAssignees || [])])]\n const hasSomeAssignees = entityAssignees.some((assignee) => cacheUsers.includes(assignee))\n const hasSomeProjects = dashboardProjects.some((project) => project === projectName)\n const currentDashNeedsUpdating = hasSomeAssignees && hasSomeProjects\n\n if (currentDashNeedsUpdating) {\n const [result, wasPatched] = patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, data },\n { dispatch },\n )\n\n if (wasPatched) patchResults.push(result)\n\n if (!wasPatched) {\n // this means the task is not in the current kanban and it needs to be added\n\n // get the new task data\n getKanbanTasks({ projects: [projectName], taskIds: [entityId] }, dispatch).then(\n // use .then so that the rest of the code can run\n (response) => {\n let newTask = response.find((task) => task.id === entityId)\n if (newTask) {\n // add newAssignees as the actual DB hasn't been updated yet\n newTask = { ...newTask, assignees: newAssignees }\n\n patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, taskData: newTask },\n { dispatch },\n )\n }\n },\n )\n }\n }\n\n // always update the kanban if task id matches\n const tags = [{ type: 'task', id: entityId }]\n\n // are we changing the assignees?\n if (newAssignees?.length) {\n const currentAssigneesSet = new Set(currentAssignees)\n const newAssigneesSet = new Set(newAssignees)\n\n const removedAssignees = [...currentAssigneesSet].filter(\n (assignee) => !newAssigneesSet.has(assignee),\n )\n const addedAssignees = [...newAssigneesSet].filter(\n (assignee) => !currentAssigneesSet.has(assignee),\n )\n\n const changedAssignees = [...new Set([...removedAssignees, ...addedAssignees])]\n\n // any query that has those changed assignees, needs to be updated\n // we are changing the assignees\n const assigneesTags = changedAssignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n }))\n\n tags.push(...assigneesTags)\n\n // invalidate the watchers query\n dispatch(\n dashboardQueries.util.invalidateTags([\n {\n type: 'watchers',\n id: entityId,\n },\n ]),\n )\n }\n\n // invalidate any other caches\n let entries = dashboardQueries.util.selectInvalidatedBy(state, tags)\n let entriesToInvalidate = []\n\n // for each entry try to patch the data into the cache first\n for (const entry of entries) {\n const [patchResult, wasPatched] = patchKanban(\n {\n assignees: entry.originalArgs.assignees,\n projects: entry.originalArgs.projects,\n },\n {\n newAssignees,\n taskId: entityId,\n data,\n },\n { dispatch },\n )\n\n if (wasPatched) {\n patchResults.push(patchResult)\n } else {\n // if we couldn't patch, we need to invalidate the cache\n entriesToInvalidate.push(entry)\n }\n }\n\n // filter out current kanban query if we were able to patch it\n const currentKanbanCacheArgs = { projects: dashboardProjects, assignees: cacheUsers }\n entriesToInvalidate = entriesToInvalidate.filter(\n (entry) =>\n JSON.stringify(entry.originalArgs) !== JSON.stringify(currentKanbanCacheArgs),\n )\n\n // create the invalidation tags from originalArgs\n const invalidationTags = entries.map((entry) => ({\n type: 'kanban',\n id: JSON.stringify(entry.originalArgs),\n }))\n\n // invalidate the tags later, once the query is complete\n invalidationTagsAfterComplete.push(...invalidationTags)\n }\n\n // get all details panel caches that would be affected by this update\n const detailsPanelTags = [\n {\n type: 'entities',\n id: entityId,\n },\n ]\n\n const detailsPanelEntries = api.util.selectInvalidatedBy(state, detailsPanelTags)\n\n for (const entry of detailsPanelEntries) {\n // patch any entity details panels in dashboard\n let entityDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity([{ entityId, data, entityType }], entity)\n }\n },\n ),\n )\n\n patchResults.push(entityDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // now invalidate any tags\n if (invalidationTagsAfterComplete.length) {\n dispatch(dashboardQueries.util.invalidateTags(invalidationTagsAfterComplete))\n }\n } catch (error) {\n console.error('error updating ' + entityType, error)\n toast.error(error?.error?.data?.detail || 'Failed to update task')\n patchResults.forEach((result) => result?.undo())\n }\n },\n }),\n updateEntities: build.mutation({\n async queryFn({ operations = [], entityType }, { dispatch, getState }) {\n try {\n const state = getState()\n const promises = []\n for (const { projectName, data, id, currentAssignees = [] } of operations) {\n const promise = dispatch(\n updateEntity.endpoints.updateEntity.initiate({\n projectName: projectName,\n entityId: id,\n data,\n entityType,\n currentAssignees,\n }),\n )\n promises.push(promise)\n }\n\n let progressPatches = []\n if (entityType === 'task' || entityType === 'folder') {\n // patch the progress page\n progressPatches = patchProgressView({ operations, state, dispatch, entityType })\n }\n\n const overviewPatches = []\n // convert id in operations to entityId\n const operationsWithEntityId = operations.map((o) => ({ ...o, entityId: o.id }))\n if (entityType === 'task' || entityType === 'folder') {\n // patch the overview page\n if (entityType === 'task') {\n patchOverviewTasks(operationsWithEntityId, { state, dispatch }, overviewPatches)\n }\n if (entityType === 'folder') {\n // patch the overview page\n patchOverviewFolders(operationsWithEntityId, { state, dispatch }, overviewPatches)\n console.log('invalidate overview folders')\n // invalidate overview folders query\n dispatch(api.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n // invalidate overview tasks with folder as a parent\n dispatch(\n api.util.invalidateTags(\n operationsWithEntityId.map((o) => ({ type: 'overviewTask', id: o.entityId })),\n ),\n )\n }\n }\n\n // check if any of the requests failed and invalidate the tasks cache again to refetch\n const results = await Promise.allSettled(promises)\n\n // did any of the requests fail?\n const someError = results.some((result) => result.value?.error)\n if (someError) {\n dispatch(\n api.util.invalidateTags(operations.map((o) => ({ type: 'kanBanTask', id: o.id }))),\n )\n\n // revert the progress view patches\n progressPatches.forEach((patch) => patch?.undo())\n\n // revert the overview patches\n overviewPatches.forEach((patch) => patch?.undo())\n\n throw 'Failed to update some tasks'\n }\n\n const activityTags = []\n\n if (activityTags.length) {\n dispatch(api.util.invalidateTags(activityTags))\n }\n\n return { data: operations }\n } catch (error) {\n console.error(error)\n return { error }\n }\n },\n invalidatesTags: (result, error, { operations }) => [\n ...operations.map((o) => ({ id: o.id, type: 'review' })),\n ],\n }),\n }),\n overrideExisting: true,\n})\n\nexport const { useUpdateEntitiesMutation, useUpdateEntityMutation } = updateEntity\nexport { updateEntity as entitiesQueries }\n"],"names":["patchKanban","assignees","projects","newAssignees","taskId","data","taskData","dispatch","kanbanPatched","dashboardQueries","draft","taskIndex","task","patchData","_a","priority","_b","endDate","assignee","newData","patchProgressView","operations","state","entityType","invalidationTags","o","entries","api","entry","operation","entityId","patch","folderId","folder","newTask","newFolder","t","folderIndex","f","updatedPatch","pathParts","error","updateEntity","build","projectName","currentAssignees","queryFulfilled","getState","patchResults","invalidationTagsAfterComplete","dashboardProjects","dashboardUsers","dashboardAssigneesIsMe","_c","cacheUsers","_d","hasSomeAssignees","hasSomeProjects","project","result","wasPatched","getKanbanTasks","response","tags","currentAssigneesSet","newAssigneesSet","removedAssignees","addedAssignees","assigneesTags","entriesToInvalidate","patchResult","currentKanbanCacheArgs","detailsPanelTags","detailsPanelEntries","entityDetailsResult","detailsPanelQueries","entity","patchDetailsPanelEntity","toast","_f","_e","promises","id","promise","progressPatches","overviewPatches","operationsWithEntityId","patchOverviewTasks","patchOverviewFolders","activityTags","useUpdateEntitiesMutation","useUpdateEntityMutation"],"mappings":"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"}
@@ -11,6 +11,8 @@ import "../attributes/getAttributes.es.js";
11
11
  import "../attributes/updateAttributes.es.js";
12
12
  import "../authentication/getAuthentication.es.js";
13
13
  import "../cloud/cloud.es.js";
14
+ import "../config/getConfig.es.js";
15
+ import "../config/updateConfig.es.js";
14
16
  import { detailsPanelQueries as q } from "./getEntityPanel.es.js";
15
17
  import "../../base/client.es.js";
16
18
  import "../../generated/graphql.es.js";
@@ -294,10 +296,10 @@ const R = ({ assignees: E = [], projects: m = [] }, { newAssignees: t, taskId: s
294
296
  })
295
297
  }),
296
298
  overrideExisting: !0
297
- }), { useUpdateEntitiesMutation: je, useUpdateEntityMutation: Te } = B;
299
+ }), { useUpdateEntitiesMutation: Se, useUpdateEntityMutation: xe } = B;
298
300
  export {
299
301
  B as entitiesQueries,
300
- je as useUpdateEntitiesMutation,
301
- Te as useUpdateEntityMutation
302
+ Se as useUpdateEntitiesMutation,
303
+ xe as useUpdateEntityMutation
302
304
  };
303
305
  //# sourceMappingURL=updateEntity.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateEntity.es.js","sources":["../../../../../../src/api/queries/entities/updateEntity.ts"],"sourcesContent":["// @ts-nocheck\n\nimport api from './getEntity'\nimport { detailsPanelQueries } from '@shared/api/queries'\nimport { patchDetailsPanelEntity } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { dashboardQueries, getKanbanTasks } from '@shared/api/queries/userDashboard'\nimport { patchOverviewFolders, patchOverviewTasks } from '@shared/api/queries/overview'\n\nconst patchKanban = (\n { assignees = [], projects = [] },\n { newAssignees, taskId, data, taskData },\n { dispatch },\n) => {\n let kanbanPatched = false\n const patchResult = dispatch(\n dashboardQueries.util.updateQueryData(\n 'GetKanban',\n { projects: projects, assignees: assignees },\n (draft) => {\n const taskIndex = draft.findIndex((task) => task.id === taskId)\n let patchData = { ...data }\n // if the data include attrib.priority it needs to be transformed to just priority\n // this is because priority is a top level field on kanban query\n if (data?.attrib?.priority) {\n const { priority } = patchData.attrib\n patchData = { ...patchData, priority }\n }\n // if the data include attrib.endDate it needs to be transformed to dueDate\n // this is because dueDate is a top level field on kanban query\n // NOTE TO SELF: Lets try to do these transforms after the cache the future.\n if (data?.attrib?.endDate) {\n const { endDate } = patchData.attrib\n patchData = { ...patchData, dueDate: endDate }\n delete patchData.attrib.endDate\n }\n\n if (taskIndex === -1) {\n // task not found, assignee must have just been added\n if (taskData) {\n // add the task to the cache\n draft.push(taskData)\n } else {\n // we don't have the task data, so we can't add it to the cache\n // we might add it later\n kanbanPatched = false\n }\n } else {\n kanbanPatched = true\n // first check that the task assignees still has a intersection with dashAssignees\n const hasSomeAssignees = newAssignees?.some((assignee) => assignees.includes(assignee))\n\n if (!hasSomeAssignees && newAssignees) {\n // remove from cache\n draft.splice(taskIndex, 1)\n } else {\n // task found: update the task in the cache\n const newData = { ...draft[taskIndex], ...patchData }\n draft[taskIndex] = newData\n }\n }\n },\n ),\n )\n\n return [patchResult, kanbanPatched]\n}\n\n// try to patch the progress view if there are queries that need to be updated\nconst patchProgressView = ({ operations = [], state, dispatch, entityType }) => {\n // create invalidation tags for progress view\n const invalidationTags = operations.map((o) => ({ type: 'progress', id: o.id }))\n // find the entries that need to be updated\n let entries = api.util.selectInvalidatedBy(state, invalidationTags)\n // if there are no entries, return\n if (!entries.length) return []\n\n try {\n // patch each entry with updated task data\n const patches = entries.map((entry) =>\n dispatch(\n api.util.updateQueryData(entry.endpointName, entry.originalArgs, (draft) => {\n for (const operation of operations) {\n const entityId = operation.id\n const patch = operation.data\n\n // patch the updated task data\n if (entityType === 'task') {\n const folderId = operation.meta?.folderId\n const folder = draft.find((folder) => folder.id === folderId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n const task = folder.tasks?.find((task) => task.id === entityId)\n if (!task) throw new Error('Patching progress view: task not found')\n // update task\n const newTask = { ...task, ...patch }\n // update folder\n const newFolder = {\n ...folder,\n tasks: folder.tasks.map((t) => (t.id === entityId ? newTask : t)),\n }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === folderId)\n draft[folderIndex] = newFolder\n } else if (entityType === 'folder') {\n const folder = draft.find((folder) => folder.id === entityId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n\n // If name is being updated, also update the path\n let updatedPatch = { ...patch }\n if (patch.name && folder.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = folder.path.split('/')\n pathParts[pathParts.length - 1] = patch.name\n updatedPatch.path = pathParts.join('/')\n }\n\n // update folder\n const newFolder = { ...folder, ...updatedPatch }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === entityId)\n draft[folderIndex] = newFolder\n }\n }\n }),\n ),\n )\n return patches\n } catch (error) {\n console.error(error)\n // invalidate the progress view queries instead\n dispatch(api.util.invalidateTags(invalidationTags))\n return []\n }\n}\n\nconst updateEntity = api.injectEndpoints({\n endpoints: (build) => ({\n updateEntity: build.mutation({\n query: ({ projectName, entityId, data, entityType }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(\n { projectName, entityId, data, currentAssignees, entityType },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n const patchResults = []\n\n let invalidationTagsAfterComplete = []\n // if task, patch the GetKanban query\n if (entityType === 'task') {\n const dashboardProjects = getState().dashboard?.selectedProjects || []\n const dashboardUsers = getState().dashboard?.tasks.assignees || []\n const dashboardAssigneesIsMe = getState().dashboard?.tasks.assigneesFilter === 'me'\n const newAssignees = data.assignees\n\n const cacheUsers = dashboardAssigneesIsMe ? [getState().user?.name] : dashboardUsers\n\n const entityAssignees = [...new Set([...currentAssignees, ...(newAssignees || [])])]\n const hasSomeAssignees = entityAssignees.some((assignee) => cacheUsers.includes(assignee))\n const hasSomeProjects = dashboardProjects.some((project) => project === projectName)\n const currentDashNeedsUpdating = hasSomeAssignees && hasSomeProjects\n\n if (currentDashNeedsUpdating) {\n const [result, wasPatched] = patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, data },\n { dispatch },\n )\n\n if (wasPatched) patchResults.push(result)\n\n if (!wasPatched) {\n // this means the task is not in the current kanban and it needs to be added\n\n // get the new task data\n getKanbanTasks({ projects: [projectName], taskIds: [entityId] }, dispatch).then(\n // use .then so that the rest of the code can run\n (response) => {\n let newTask = response.find((task) => task.id === entityId)\n if (newTask) {\n // add newAssignees as the actual DB hasn't been updated yet\n newTask = { ...newTask, assignees: newAssignees }\n\n patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, taskData: newTask },\n { dispatch },\n )\n }\n },\n )\n }\n }\n\n // always update the kanban if task id matches\n const tags = [{ type: 'task', id: entityId }]\n\n // are we changing the assignees?\n if (newAssignees?.length) {\n const currentAssigneesSet = new Set(currentAssignees)\n const newAssigneesSet = new Set(newAssignees)\n\n const removedAssignees = [...currentAssigneesSet].filter(\n (assignee) => !newAssigneesSet.has(assignee),\n )\n const addedAssignees = [...newAssigneesSet].filter(\n (assignee) => !currentAssigneesSet.has(assignee),\n )\n\n const changedAssignees = [...new Set([...removedAssignees, ...addedAssignees])]\n\n // any query that has those changed assignees, needs to be updated\n // we are changing the assignees\n const assigneesTags = changedAssignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n }))\n\n tags.push(...assigneesTags)\n\n // invalidate the watchers query\n dispatch(\n dashboardQueries.util.invalidateTags([\n {\n type: 'watchers',\n id: entityId,\n },\n ]),\n )\n }\n\n // invalidate any other caches\n let entries = dashboardQueries.util.selectInvalidatedBy(state, tags)\n let entriesToInvalidate = []\n\n // for each entry try to patch the data into the cache first\n for (const entry of entries) {\n const [patchResult, wasPatched] = patchKanban(\n {\n assignees: entry.originalArgs.assignees,\n projects: entry.originalArgs.projects,\n },\n {\n newAssignees,\n taskId: entityId,\n data,\n },\n { dispatch },\n )\n\n if (wasPatched) {\n patchResults.push(patchResult)\n } else {\n // if we couldn't patch, we need to invalidate the cache\n entriesToInvalidate.push(entry)\n }\n }\n\n // filter out current kanban query if we were able to patch it\n const currentKanbanCacheArgs = { projects: dashboardProjects, assignees: cacheUsers }\n entriesToInvalidate = entriesToInvalidate.filter(\n (entry) =>\n JSON.stringify(entry.originalArgs) !== JSON.stringify(currentKanbanCacheArgs),\n )\n\n // create the invalidation tags from originalArgs\n const invalidationTags = entries.map((entry) => ({\n type: 'kanban',\n id: JSON.stringify(entry.originalArgs),\n }))\n\n // invalidate the tags later, once the query is complete\n invalidationTagsAfterComplete.push(...invalidationTags)\n }\n\n // get all details panel caches that would be affected by this update\n const detailsPanelTags = [\n {\n type: 'entities',\n id: entityId,\n },\n ]\n\n const detailsPanelEntries = api.util.selectInvalidatedBy(state, detailsPanelTags)\n\n for (const entry of detailsPanelEntries) {\n // patch any entity details panels in dashboard\n let entityDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity([{ entityId, data, entityType }], entity)\n }\n },\n ),\n )\n\n patchResults.push(entityDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // now invalidate any tags\n if (invalidationTagsAfterComplete.length) {\n dispatch(dashboardQueries.util.invalidateTags(invalidationTagsAfterComplete))\n }\n } catch (error) {\n console.error('error updating ' + entityType, error)\n toast.error(error?.error?.data?.detail || 'Failed to update task')\n patchResults.forEach((result) => result?.undo())\n }\n },\n }),\n updateEntities: build.mutation({\n async queryFn({ operations = [], entityType }, { dispatch, getState }) {\n try {\n const state = getState()\n const promises = []\n for (const { projectName, data, id, currentAssignees = [] } of operations) {\n const promise = dispatch(\n updateEntity.endpoints.updateEntity.initiate({\n projectName: projectName,\n entityId: id,\n data,\n entityType,\n currentAssignees,\n }),\n )\n promises.push(promise)\n }\n\n let progressPatches = []\n if (entityType === 'task' || entityType === 'folder') {\n // patch the progress page\n progressPatches = patchProgressView({ operations, state, dispatch, entityType })\n }\n\n const overviewPatches = []\n // convert id in operations to entityId\n const operationsWithEntityId = operations.map((o) => ({ ...o, entityId: o.id }))\n if (entityType === 'task' || entityType === 'folder') {\n // patch the overview page\n if (entityType === 'task') {\n patchOverviewTasks(operationsWithEntityId, { state, dispatch }, overviewPatches)\n }\n if (entityType === 'folder') {\n // patch the overview page\n patchOverviewFolders(operationsWithEntityId, { state, dispatch }, overviewPatches)\n console.log('invalidate overview folders')\n // invalidate overview folders query\n dispatch(api.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n // invalidate overview tasks with folder as a parent\n dispatch(\n api.util.invalidateTags(\n operationsWithEntityId.map((o) => ({ type: 'overviewTask', id: o.entityId })),\n ),\n )\n }\n }\n\n // check if any of the requests failed and invalidate the tasks cache again to refetch\n const results = await Promise.allSettled(promises)\n\n // did any of the requests fail?\n const someError = results.some((result) => result.value?.error)\n if (someError) {\n dispatch(\n api.util.invalidateTags(operations.map((o) => ({ type: 'kanBanTask', id: o.id }))),\n )\n\n // revert the progress view patches\n progressPatches.forEach((patch) => patch?.undo())\n\n // revert the overview patches\n overviewPatches.forEach((patch) => patch?.undo())\n\n throw 'Failed to update some tasks'\n }\n\n const activityTags = []\n\n if (activityTags.length) {\n dispatch(api.util.invalidateTags(activityTags))\n }\n\n return { data: operations }\n } catch (error) {\n console.error(error)\n return { error }\n }\n },\n invalidatesTags: (result, error, { operations }) => [\n ...operations.map((o) => ({ id: o.id, type: 'review' })),\n ],\n }),\n }),\n overrideExisting: true,\n})\n\nexport const { useUpdateEntitiesMutation, useUpdateEntityMutation } = updateEntity\nexport { updateEntity as entitiesQueries }\n"],"names":["patchKanban","assignees","projects","newAssignees","taskId","data","taskData","dispatch","kanbanPatched","dashboardQueries","draft","taskIndex","task","patchData","_a","priority","_b","endDate","assignee","newData","patchProgressView","operations","state","entityType","invalidationTags","o","entries","api","entry","operation","entityId","patch","folderId","folder","newTask","newFolder","t","folderIndex","f","updatedPatch","pathParts","error","updateEntity","build","projectName","currentAssignees","queryFulfilled","getState","patchResults","invalidationTagsAfterComplete","dashboardProjects","dashboardUsers","dashboardAssigneesIsMe","_c","cacheUsers","_d","hasSomeAssignees","hasSomeProjects","project","result","wasPatched","getKanbanTasks","response","tags","currentAssigneesSet","newAssigneesSet","removedAssignees","addedAssignees","assigneesTags","entriesToInvalidate","patchResult","currentKanbanCacheArgs","detailsPanelTags","detailsPanelEntries","entityDetailsResult","detailsPanelQueries","entity","patchDetailsPanelEntity","toast","_f","_e","promises","id","promise","progressPatches","overviewPatches","operationsWithEntityId","patchOverviewTasks","patchOverviewFolders","activityTags","useUpdateEntitiesMutation","useUpdateEntityMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateEntity.es.js","sources":["../../../../../../src/api/queries/entities/updateEntity.ts"],"sourcesContent":["// @ts-nocheck\n\nimport api from './getEntity'\nimport { detailsPanelQueries } from '@shared/api/queries'\nimport { patchDetailsPanelEntity } from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { dashboardQueries, getKanbanTasks } from '@shared/api/queries/userDashboard'\nimport { patchOverviewFolders, patchOverviewTasks } from '@shared/api/queries/overview'\n\nconst patchKanban = (\n { assignees = [], projects = [] },\n { newAssignees, taskId, data, taskData },\n { dispatch },\n) => {\n let kanbanPatched = false\n const patchResult = dispatch(\n dashboardQueries.util.updateQueryData(\n 'GetKanban',\n { projects: projects, assignees: assignees },\n (draft) => {\n const taskIndex = draft.findIndex((task) => task.id === taskId)\n let patchData = { ...data }\n // if the data include attrib.priority it needs to be transformed to just priority\n // this is because priority is a top level field on kanban query\n if (data?.attrib?.priority) {\n const { priority } = patchData.attrib\n patchData = { ...patchData, priority }\n }\n // if the data include attrib.endDate it needs to be transformed to dueDate\n // this is because dueDate is a top level field on kanban query\n // NOTE TO SELF: Lets try to do these transforms after the cache the future.\n if (data?.attrib?.endDate) {\n const { endDate } = patchData.attrib\n patchData = { ...patchData, dueDate: endDate }\n delete patchData.attrib.endDate\n }\n\n if (taskIndex === -1) {\n // task not found, assignee must have just been added\n if (taskData) {\n // add the task to the cache\n draft.push(taskData)\n } else {\n // we don't have the task data, so we can't add it to the cache\n // we might add it later\n kanbanPatched = false\n }\n } else {\n kanbanPatched = true\n // first check that the task assignees still has a intersection with dashAssignees\n const hasSomeAssignees = newAssignees?.some((assignee) => assignees.includes(assignee))\n\n if (!hasSomeAssignees && newAssignees) {\n // remove from cache\n draft.splice(taskIndex, 1)\n } else {\n // task found: update the task in the cache\n const newData = { ...draft[taskIndex], ...patchData }\n draft[taskIndex] = newData\n }\n }\n },\n ),\n )\n\n return [patchResult, kanbanPatched]\n}\n\n// try to patch the progress view if there are queries that need to be updated\nconst patchProgressView = ({ operations = [], state, dispatch, entityType }) => {\n // create invalidation tags for progress view\n const invalidationTags = operations.map((o) => ({ type: 'progress', id: o.id }))\n // find the entries that need to be updated\n let entries = api.util.selectInvalidatedBy(state, invalidationTags)\n // if there are no entries, return\n if (!entries.length) return []\n\n try {\n // patch each entry with updated task data\n const patches = entries.map((entry) =>\n dispatch(\n api.util.updateQueryData(entry.endpointName, entry.originalArgs, (draft) => {\n for (const operation of operations) {\n const entityId = operation.id\n const patch = operation.data\n\n // patch the updated task data\n if (entityType === 'task') {\n const folderId = operation.meta?.folderId\n const folder = draft.find((folder) => folder.id === folderId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n const task = folder.tasks?.find((task) => task.id === entityId)\n if (!task) throw new Error('Patching progress view: task not found')\n // update task\n const newTask = { ...task, ...patch }\n // update folder\n const newFolder = {\n ...folder,\n tasks: folder.tasks.map((t) => (t.id === entityId ? newTask : t)),\n }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === folderId)\n draft[folderIndex] = newFolder\n } else if (entityType === 'folder') {\n const folder = draft.find((folder) => folder.id === entityId)\n if (!folder) throw new Error('Patching progress view: folder not found')\n\n // If name is being updated, also update the path\n let updatedPatch = { ...patch }\n if (patch.name && folder.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = folder.path.split('/')\n pathParts[pathParts.length - 1] = patch.name\n updatedPatch.path = pathParts.join('/')\n }\n\n // update folder\n const newFolder = { ...folder, ...updatedPatch }\n // update query\n const folderIndex = draft.findIndex((f) => f.id === entityId)\n draft[folderIndex] = newFolder\n }\n }\n }),\n ),\n )\n return patches\n } catch (error) {\n console.error(error)\n // invalidate the progress view queries instead\n dispatch(api.util.invalidateTags(invalidationTags))\n return []\n }\n}\n\nconst updateEntity = api.injectEndpoints({\n endpoints: (build) => ({\n updateEntity: build.mutation({\n query: ({ projectName, entityId, data, entityType }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(\n { projectName, entityId, data, currentAssignees, entityType },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n const patchResults = []\n\n let invalidationTagsAfterComplete = []\n // if task, patch the GetKanban query\n if (entityType === 'task') {\n const dashboardProjects = getState().dashboard?.selectedProjects || []\n const dashboardUsers = getState().dashboard?.tasks.assignees || []\n const dashboardAssigneesIsMe = getState().dashboard?.tasks.assigneesFilter === 'me'\n const newAssignees = data.assignees\n\n const cacheUsers = dashboardAssigneesIsMe ? [getState().user?.name] : dashboardUsers\n\n const entityAssignees = [...new Set([...currentAssignees, ...(newAssignees || [])])]\n const hasSomeAssignees = entityAssignees.some((assignee) => cacheUsers.includes(assignee))\n const hasSomeProjects = dashboardProjects.some((project) => project === projectName)\n const currentDashNeedsUpdating = hasSomeAssignees && hasSomeProjects\n\n if (currentDashNeedsUpdating) {\n const [result, wasPatched] = patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, data },\n { dispatch },\n )\n\n if (wasPatched) patchResults.push(result)\n\n if (!wasPatched) {\n // this means the task is not in the current kanban and it needs to be added\n\n // get the new task data\n getKanbanTasks({ projects: [projectName], taskIds: [entityId] }, dispatch).then(\n // use .then so that the rest of the code can run\n (response) => {\n let newTask = response.find((task) => task.id === entityId)\n if (newTask) {\n // add newAssignees as the actual DB hasn't been updated yet\n newTask = { ...newTask, assignees: newAssignees }\n\n patchKanban(\n { assignees: cacheUsers, projects: dashboardProjects },\n { newAssignees, taskId: entityId, taskData: newTask },\n { dispatch },\n )\n }\n },\n )\n }\n }\n\n // always update the kanban if task id matches\n const tags = [{ type: 'task', id: entityId }]\n\n // are we changing the assignees?\n if (newAssignees?.length) {\n const currentAssigneesSet = new Set(currentAssignees)\n const newAssigneesSet = new Set(newAssignees)\n\n const removedAssignees = [...currentAssigneesSet].filter(\n (assignee) => !newAssigneesSet.has(assignee),\n )\n const addedAssignees = [...newAssigneesSet].filter(\n (assignee) => !currentAssigneesSet.has(assignee),\n )\n\n const changedAssignees = [...new Set([...removedAssignees, ...addedAssignees])]\n\n // any query that has those changed assignees, needs to be updated\n // we are changing the assignees\n const assigneesTags = changedAssignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n }))\n\n tags.push(...assigneesTags)\n\n // invalidate the watchers query\n dispatch(\n dashboardQueries.util.invalidateTags([\n {\n type: 'watchers',\n id: entityId,\n },\n ]),\n )\n }\n\n // invalidate any other caches\n let entries = dashboardQueries.util.selectInvalidatedBy(state, tags)\n let entriesToInvalidate = []\n\n // for each entry try to patch the data into the cache first\n for (const entry of entries) {\n const [patchResult, wasPatched] = patchKanban(\n {\n assignees: entry.originalArgs.assignees,\n projects: entry.originalArgs.projects,\n },\n {\n newAssignees,\n taskId: entityId,\n data,\n },\n { dispatch },\n )\n\n if (wasPatched) {\n patchResults.push(patchResult)\n } else {\n // if we couldn't patch, we need to invalidate the cache\n entriesToInvalidate.push(entry)\n }\n }\n\n // filter out current kanban query if we were able to patch it\n const currentKanbanCacheArgs = { projects: dashboardProjects, assignees: cacheUsers }\n entriesToInvalidate = entriesToInvalidate.filter(\n (entry) =>\n JSON.stringify(entry.originalArgs) !== JSON.stringify(currentKanbanCacheArgs),\n )\n\n // create the invalidation tags from originalArgs\n const invalidationTags = entries.map((entry) => ({\n type: 'kanban',\n id: JSON.stringify(entry.originalArgs),\n }))\n\n // invalidate the tags later, once the query is complete\n invalidationTagsAfterComplete.push(...invalidationTags)\n }\n\n // get all details panel caches that would be affected by this update\n const detailsPanelTags = [\n {\n type: 'entities',\n id: entityId,\n },\n ]\n\n const detailsPanelEntries = api.util.selectInvalidatedBy(state, detailsPanelTags)\n\n for (const entry of detailsPanelEntries) {\n // patch any entity details panels in dashboard\n let entityDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity([{ entityId, data, entityType }], entity)\n }\n },\n ),\n )\n\n patchResults.push(entityDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // now invalidate any tags\n if (invalidationTagsAfterComplete.length) {\n dispatch(dashboardQueries.util.invalidateTags(invalidationTagsAfterComplete))\n }\n } catch (error) {\n console.error('error updating ' + entityType, error)\n toast.error(error?.error?.data?.detail || 'Failed to update task')\n patchResults.forEach((result) => result?.undo())\n }\n },\n }),\n updateEntities: build.mutation({\n async queryFn({ operations = [], entityType }, { dispatch, getState }) {\n try {\n const state = getState()\n const promises = []\n for (const { projectName, data, id, currentAssignees = [] } of operations) {\n const promise = dispatch(\n updateEntity.endpoints.updateEntity.initiate({\n projectName: projectName,\n entityId: id,\n data,\n entityType,\n currentAssignees,\n }),\n )\n promises.push(promise)\n }\n\n let progressPatches = []\n if (entityType === 'task' || entityType === 'folder') {\n // patch the progress page\n progressPatches = patchProgressView({ operations, state, dispatch, entityType })\n }\n\n const overviewPatches = []\n // convert id in operations to entityId\n const operationsWithEntityId = operations.map((o) => ({ ...o, entityId: o.id }))\n if (entityType === 'task' || entityType === 'folder') {\n // patch the overview page\n if (entityType === 'task') {\n patchOverviewTasks(operationsWithEntityId, { state, dispatch }, overviewPatches)\n }\n if (entityType === 'folder') {\n // patch the overview page\n patchOverviewFolders(operationsWithEntityId, { state, dispatch }, overviewPatches)\n console.log('invalidate overview folders')\n // invalidate overview folders query\n dispatch(api.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n // invalidate overview tasks with folder as a parent\n dispatch(\n api.util.invalidateTags(\n operationsWithEntityId.map((o) => ({ type: 'overviewTask', id: o.entityId })),\n ),\n )\n }\n }\n\n // check if any of the requests failed and invalidate the tasks cache again to refetch\n const results = await Promise.allSettled(promises)\n\n // did any of the requests fail?\n const someError = results.some((result) => result.value?.error)\n if (someError) {\n dispatch(\n api.util.invalidateTags(operations.map((o) => ({ type: 'kanBanTask', id: o.id }))),\n )\n\n // revert the progress view patches\n progressPatches.forEach((patch) => patch?.undo())\n\n // revert the overview patches\n overviewPatches.forEach((patch) => patch?.undo())\n\n throw 'Failed to update some tasks'\n }\n\n const activityTags = []\n\n if (activityTags.length) {\n dispatch(api.util.invalidateTags(activityTags))\n }\n\n return { data: operations }\n } catch (error) {\n console.error(error)\n return { error }\n }\n },\n invalidatesTags: (result, error, { operations }) => [\n ...operations.map((o) => ({ id: o.id, type: 'review' })),\n ],\n }),\n }),\n overrideExisting: true,\n})\n\nexport const { useUpdateEntitiesMutation, useUpdateEntityMutation } = updateEntity\nexport { updateEntity as entitiesQueries }\n"],"names":["patchKanban","assignees","projects","newAssignees","taskId","data","taskData","dispatch","kanbanPatched","dashboardQueries","draft","taskIndex","task","patchData","_a","priority","_b","endDate","assignee","newData","patchProgressView","operations","state","entityType","invalidationTags","o","entries","api","entry","operation","entityId","patch","folderId","folder","newTask","newFolder","t","folderIndex","f","updatedPatch","pathParts","error","updateEntity","build","projectName","currentAssignees","queryFulfilled","getState","patchResults","invalidationTagsAfterComplete","dashboardProjects","dashboardUsers","dashboardAssigneesIsMe","_c","cacheUsers","_d","hasSomeAssignees","hasSomeProjects","project","result","wasPatched","getKanbanTasks","response","tags","currentAssigneesSet","newAssigneesSet","removedAssignees","addedAssignees","assigneesTags","entriesToInvalidate","patchResult","currentKanbanCacheArgs","detailsPanelTags","detailsPanelEntries","entityDetailsResult","detailsPanelQueries","entity","patchDetailsPanelEntity","toast","_f","_e","promises","id","promise","progressPatches","overviewPatches","operationsWithEntityId","patchOverviewTasks","patchOverviewFolders","activityTags","useUpdateEntitiesMutation","useUpdateEntityMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,IAAc,CAClB,EAAE,WAAAC,IAAY,CAAA,GAAI,UAAAC,IAAW,CAAA,EAC7B,GAAA,EAAE,cAAAC,GAAc,QAAAC,GAAQ,MAAAC,GAAM,UAAAC,KAC9B,EAAE,UAAAC,QACC;AACH,MAAIC,IAAgB;AAmDb,SAAA,CAlDaD;AAAA,IAClBE,EAAiB,KAAK;AAAA,MACpB;AAAA,MACA,EAAE,UAAAP,GAAoB,WAAAD,EAAqB;AAAA,MAC3C,CAACS,MAAU;;AACT,cAAMC,IAAYD,EAAM,UAAU,CAACE,MAASA,EAAK,OAAOR,CAAM;AAC1D,YAAAS,IAAY,EAAE,GAAGR,EAAK;AAGtB,aAAAS,IAAAT,KAAA,gBAAAA,EAAM,WAAN,QAAAS,EAAc,UAAU;AACpB,gBAAA,EAAE,UAAAC,MAAaF,EAAU;AACnB,UAAAA,IAAA,EAAE,GAAGA,GAAW,UAAAE,EAAS;AAAA,QAAA;AAKnC,aAAAC,IAAAX,KAAA,gBAAAA,EAAM,WAAN,QAAAW,EAAc,SAAS;AACnB,gBAAA,EAAE,SAAAC,MAAYJ,EAAU;AAC9B,UAAAA,IAAY,EAAE,GAAGA,GAAW,SAASI,EAAQ,GAC7C,OAAOJ,EAAU,OAAO;AAAA,QAAA;AAG1B,YAAIF,MAAc;AAEhB,UAAIL,IAEFI,EAAM,KAAKJ,CAAQ,IAIHE,IAAA;AAAA,iBAGFA,IAAA,IAIZ,EAFqBL,KAAA,gBAAAA,EAAc,KAAK,CAACe,MAAajB,EAAU,SAASiB,CAAQ,OAE5Df;AAEjB,UAAAO,EAAA,OAAOC,GAAW,CAAC;AAAA,aACpB;AAEL,gBAAMQ,IAAU,EAAE,GAAGT,EAAMC,CAAS,GAAG,GAAGE,EAAU;AACpD,UAAAH,EAAMC,CAAS,IAAIQ;AAAA,QAAA;AAAA,MAEvB;AAAA,IACF;AAAA,EAEJ,GAEqBX,CAAa;AACpC,GAGMY,IAAoB,CAAC,EAAE,YAAAC,IAAa,CAAA,GAAI,OAAAC,GAAO,UAAAf,GAAU,YAAAgB,QAAiB;AAExE,QAAAC,IAAmBH,EAAW,IAAI,CAACI,OAAO,EAAE,MAAM,YAAY,IAAIA,EAAE,GAAK,EAAA;AAE/E,MAAIC,IAAUC,EAAI,KAAK,oBAAoBL,GAAOE,CAAgB;AAElE,MAAI,CAACE,EAAQ,OAAQ,QAAO,CAAC;AAEzB,MAAA;AAiDK,WA/CSA,EAAQ;AAAA,MAAI,CAACE,MAC3BrB;AAAA,QACEoB,EAAI,KAAK,gBAAgBC,EAAM,cAAcA,EAAM,cAAc,CAAClB,MAAU;;AAC1E,qBAAWmB,KAAaR,GAAY;AAClC,kBAAMS,IAAWD,EAAU,IACrBE,IAAQF,EAAU;AAGxB,gBAAIN,MAAe,QAAQ;AACnB,oBAAAS,KAAWlB,IAAAe,EAAU,SAAV,gBAAAf,EAAgB,UAC3BmB,IAASvB,EAAM,KAAK,CAACuB,MAAWA,EAAO,OAAOD,CAAQ;AAC5D,kBAAI,CAACC,EAAc,OAAA,IAAI,MAAM,0CAA0C;AACjE,oBAAArB,KAAOI,IAAAiB,EAAO,UAAP,gBAAAjB,EAAc,KAAK,CAACJ,MAASA,EAAK,OAAOkB;AACtD,kBAAI,CAAClB,EAAY,OAAA,IAAI,MAAM,wCAAwC;AAEnE,oBAAMsB,IAAU,EAAE,GAAGtB,GAAM,GAAGmB,EAAM,GAE9BI,IAAY;AAAA,gBAChB,GAAGF;AAAA,gBACH,OAAOA,EAAO,MAAM,IAAI,CAACG,MAAOA,EAAE,OAAON,IAAWI,IAAUE,CAAE;AAAA,cAClE,GAEMC,IAAc3B,EAAM,UAAU,CAAC4B,MAAMA,EAAE,OAAON,CAAQ;AAC5D,cAAAtB,EAAM2B,CAAW,IAAIF;AAAA,YAAA,WACZZ,MAAe,UAAU;AAClC,oBAAMU,IAASvB,EAAM,KAAK,CAACuB,MAAWA,EAAO,OAAOH,CAAQ;AAC5D,kBAAI,CAACG,EAAc,OAAA,IAAI,MAAM,0CAA0C;AAGnE,kBAAAM,IAAe,EAAE,GAAGR,EAAM;AAC1B,kBAAAA,EAAM,QAAQE,EAAO,MAAM;AAE7B,sBAAMO,IAAYP,EAAO,KAAK,MAAM,GAAG;AACvC,gBAAAO,EAAUA,EAAU,SAAS,CAAC,IAAIT,EAAM,MAC3BQ,EAAA,OAAOC,EAAU,KAAK,GAAG;AAAA,cAAA;AAIxC,oBAAML,IAAY,EAAE,GAAGF,GAAQ,GAAGM,EAAa,GAEzCF,IAAc3B,EAAM,UAAU,CAAC4B,MAAMA,EAAE,OAAOR,CAAQ;AAC5D,cAAApB,EAAM2B,CAAW,IAAIF;AAAA,YAAA;AAAA,UACvB;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAEL;AAAA,WAEOM,GAAO;AACd,mBAAQ,MAAMA,CAAK,GAEnBlC,EAASoB,EAAI,KAAK,eAAeH,CAAgB,CAAC,GAC3C,CAAC;AAAA,EAAA;AAEZ,GAEMkB,IAAef,EAAI,gBAAgB;AAAA,EACvC,WAAW,CAACgB,OAAW;AAAA,IACrB,cAAcA,EAAM,SAAS;AAAA,MAC3B,OAAO,CAAC,EAAE,aAAAC,GAAa,UAAAd,GAAU,MAAAzB,GAAM,YAAAkB,SAAkB;AAAA,QACvD,KAAK,iBAAiBqB,CAAW,IAAIrB,CAAU,KAAKO,CAAQ;AAAA,QAC5D,QAAQ;AAAA,QACR,MAAMzB;AAAA,MAAA;AAAA,MAER,MAAM,eACJ,EAAE,aAAAuC,GAAa,UAAAd,GAAU,MAAAzB,GAAM,kBAAAwC,GAAkB,YAAAtB,EAAA,GACjD,EAAE,UAAAhB,GAAU,gBAAAuC,GAAgB,UAAAC,KAC5B;;AACA,cAAMzB,IAAQyB,EAAS,GACjBC,IAAe,CAAC;AAEtB,YAAIC,IAAgC,CAAC;AAErC,YAAI1B,MAAe,QAAQ;AACzB,gBAAM2B,MAAoBpC,IAAAiC,EAAA,EAAW,cAAX,gBAAAjC,EAAsB,qBAAoB,CAAC,GAC/DqC,MAAiBnC,IAAA+B,EAAS,EAAE,cAAX,gBAAA/B,EAAsB,MAAM,cAAa,CAAC,GAC3DoC,MAAyBC,IAAAN,EAAW,EAAA,cAAX,gBAAAM,EAAsB,MAAM,qBAAoB,MACzElD,IAAeE,EAAK,WAEpBiD,IAAaF,IAAyB,EAACG,IAAAR,EAAW,EAAA,SAAX,gBAAAQ,EAAiB,IAAI,IAAIJ,GAGhEK,IADkB,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAGX,GAAkB,GAAI1C,KAAgB,CAAG,CAAA,CAAC,CAAC,EAC1C,KAAK,CAACe,MAAaoC,EAAW,SAASpC,CAAQ,CAAC,GACnFuC,IAAkBP,EAAkB,KAAK,CAACQ,MAAYA,MAAYd,CAAW;AAGnF,cAFiCY,KAAoBC,GAEvB;AACtB,kBAAA,CAACE,GAAQC,CAAU,IAAI5D;AAAA,cAC3B,EAAE,WAAWsD,GAAY,UAAUJ,EAAkB;AAAA,cACrD,EAAE,cAAA/C,GAAc,QAAQ2B,GAAU,MAAAzB,EAAK;AAAA,cACvC,EAAE,UAAAE,EAAS;AAAA,YACb;AAEI,YAAAqD,KAAyBZ,EAAA,KAAKW,CAAM,GAEnCC,KAIYC,EAAA,EAAE,UAAU,CAACjB,CAAW,GAAG,SAAS,CAACd,CAAQ,EAAA,GAAKvB,CAAQ,EAAE;AAAA;AAAA,cAEzE,CAACuD,MAAa;AACZ,oBAAI5B,IAAU4B,EAAS,KAAK,CAAClD,MAASA,EAAK,OAAOkB,CAAQ;AAC1D,gBAAII,MAEFA,IAAU,EAAE,GAAGA,GAAS,WAAW/B,EAAa,GAEhDH;AAAA,kBACE,EAAE,WAAWsD,GAAY,UAAUJ,EAAkB;AAAA,kBACrD,EAAE,cAAA/C,GAAc,QAAQ2B,GAAU,UAAUI,EAAQ;AAAA,kBACpD,EAAE,UAAA3B,EAAS;AAAA,gBACb;AAAA,cACF;AAAA,YAEJ;AAAA,UACF;AAIF,gBAAMwD,IAAO,CAAC,EAAE,MAAM,QAAQ,IAAIjC,GAAU;AAG5C,cAAI3B,KAAA,QAAAA,EAAc,QAAQ;AAClB,kBAAA6D,IAAsB,IAAI,IAAInB,CAAgB,GAC9CoB,IAAkB,IAAI,IAAI9D,CAAY,GAEtC+D,IAAmB,CAAC,GAAGF,CAAmB,EAAE;AAAA,cAChD,CAAC9C,MAAa,CAAC+C,EAAgB,IAAI/C,CAAQ;AAAA,YAC7C,GACMiD,IAAiB,CAAC,GAAGF,CAAe,EAAE;AAAA,cAC1C,CAAC/C,MAAa,CAAC8C,EAAoB,IAAI9C,CAAQ;AAAA,YACjD,GAMMkD,IAJmB,CAAC,GAAO,oBAAA,IAAI,CAAC,GAAGF,GAAkB,GAAGC,CAAc,CAAC,CAAC,EAIvC,IAAI,CAACjD,OAAc;AAAA,cACxD,MAAM;AAAA,cACN,IAAI,UAAUA,IAAW,cAAc0B;AAAA,YAAA,EACvC;AAEG,YAAAmB,EAAA,KAAK,GAAGK,CAAa,GAG1B7D;AAAA,cACEE,EAAiB,KAAK,eAAe;AAAA,gBACnC;AAAA,kBACE,MAAM;AAAA,kBACN,IAAIqB;AAAA,gBAAA;AAAA,cAEP,CAAA;AAAA,YACH;AAAA,UAAA;AAIF,cAAIJ,IAAUjB,EAAiB,KAAK,oBAAoBa,GAAOyC,CAAI,GAC/DM,IAAsB,CAAC;AAG3B,qBAAWzC,KAASF,GAAS;AACrB,kBAAA,CAAC4C,GAAaV,CAAU,IAAI5D;AAAA,cAChC;AAAA,gBACE,WAAW4B,EAAM,aAAa;AAAA,gBAC9B,UAAUA,EAAM,aAAa;AAAA,cAC/B;AAAA,cACA;AAAA,gBACE,cAAAzB;AAAA,gBACA,QAAQ2B;AAAA,gBACR,MAAAzB;AAAA,cACF;AAAA,cACA,EAAE,UAAAE,EAAS;AAAA,YACb;AAEA,YAAIqD,IACFZ,EAAa,KAAKsB,CAAW,IAG7BD,EAAoB,KAAKzC,CAAK;AAAA,UAChC;AAIF,gBAAM2C,IAAyB,EAAE,UAAUrB,GAAmB,WAAWI,EAAW;AACpF,UAAAe,IAAsBA,EAAoB;AAAA,YACxC,CAACzC,MACC,KAAK,UAAUA,EAAM,YAAY,MAAM,KAAK,UAAU2C,CAAsB;AAAA,UAChF;AAGA,gBAAM/C,IAAmBE,EAAQ,IAAI,CAACE,OAAW;AAAA,YAC/C,MAAM;AAAA,YACN,IAAI,KAAK,UAAUA,EAAM,YAAY;AAAA,UAAA,EACrC;AAG4B,UAAAqB,EAAA,KAAK,GAAGzB,CAAgB;AAAA,QAAA;AAIxD,cAAMgD,IAAmB;AAAA,UACvB;AAAA,YACE,MAAM;AAAA,YACN,IAAI1C;AAAA,UAAA;AAAA,QAER,GAEM2C,IAAsB9C,EAAI,KAAK,oBAAoBL,GAAOkD,CAAgB;AAEhF,mBAAW5C,KAAS6C,GAAqB;AAEvC,cAAIC,IAAsBnE;AAAA,YACxBoE,EAAoB,KAAK;AAAA,cACvB;AAAA,cACA/C,EAAM;AAAA,cACN,CAAClB,MAAU;AACT,2BAAWkE,KAAUlE;AACnB,kBAAAmE,EAAwB,CAAC,EAAE,UAAA/C,GAAU,MAAAzB,GAAM,YAAAkB,EAAW,CAAC,GAAGqD,CAAM;AAAA,cAClE;AAAA,YACF;AAAA,UAEJ;AAEA,UAAA5B,EAAa,KAAK0B,CAAmB;AAAA,QAAA;AAGnC,YAAA;AACI,gBAAA5B,GAGFG,EAA8B,UAChC1C,EAASE,EAAiB,KAAK,eAAewC,CAA6B,CAAC;AAAA,iBAEvER,GAAO;AACN,kBAAA,MAAM,oBAAoBlB,GAAYkB,CAAK,GACnDqC,EAAM,QAAMC,KAAAC,IAAAvC,KAAA,gBAAAA,EAAO,UAAP,gBAAAuC,EAAc,SAAd,gBAAAD,EAAoB,WAAU,uBAAuB,GACjE/B,EAAa,QAAQ,CAACW,MAAWA,KAAA,gBAAAA,EAAQ,MAAM;AAAA,QAAA;AAAA,MACjD;AAAA,IACF,CACD;AAAA,IACD,gBAAgBhB,EAAM,SAAS;AAAA,MAC7B,MAAM,QAAQ,EAAE,YAAAtB,IAAa,CAAI,GAAA,YAAAE,EAAA,GAAc,EAAE,UAAAhB,GAAU,UAAAwC,KAAY;AACjE,YAAA;AACF,gBAAMzB,IAAQyB,EAAS,GACjBkC,IAAW,CAAC;AACP,qBAAA,EAAE,aAAArC,GAAa,MAAAvC,GAAM,IAAA6E,GAAI,kBAAArC,IAAmB,CAAA,OAAQxB,GAAY;AACzE,kBAAM8D,IAAU5E;AAAA,cACdmC,EAAa,UAAU,aAAa,SAAS;AAAA,gBAC3C,aAAAE;AAAA,gBACA,UAAUsC;AAAA,gBACV,MAAA7E;AAAA,gBACA,YAAAkB;AAAA,gBACA,kBAAAsB;AAAA,cACD,CAAA;AAAA,YACH;AACA,YAAAoC,EAAS,KAAKE,CAAO;AAAA,UAAA;AAGvB,cAAIC,IAAkB,CAAC;AACnB,WAAA7D,MAAe,UAAUA,MAAe,cAE1C6D,IAAkBhE,EAAkB,EAAE,YAAAC,GAAY,OAAAC,GAAO,UAAAf,GAAU,YAAAgB,GAAY;AAGjF,gBAAM8D,IAAkB,CAAC,GAEnBC,IAAyBjE,EAAW,IAAI,CAACI,OAAO,EAAE,GAAGA,GAAG,UAAUA,EAAE,GAAK,EAAA;AA0B/E,eAzBIF,MAAe,UAAUA,MAAe,cAEtCA,MAAe,UACjBgE,EAAmBD,GAAwB,EAAE,OAAAhE,GAAO,UAAAf,EAAA,GAAY8E,CAAe,GAE7E9D,MAAe,aAEjBiE,EAAqBF,GAAwB,EAAE,OAAAhE,GAAO,UAAAf,EAAA,GAAY8E,CAAe,GACjF,QAAQ,IAAI,6BAA6B,GAEhC9E,EAAAoB,EAAI,KAAK,eAAe,CAAC,EAAE,MAAM,UAAU,IAAI,OAAQ,CAAA,CAAC,CAAC,GAElEpB;AAAA,YACEoB,EAAI,KAAK;AAAA,cACP2D,EAAuB,IAAI,CAAC7D,OAAO,EAAE,MAAM,gBAAgB,IAAIA,EAAE,WAAW;AAAA,YAAA;AAAA,UAEhF,MAKY,MAAM,QAAQ,WAAWwD,CAAQ,GAGvB,KAAK,CAACtB;;AAAW,oBAAA7C,IAAA6C,EAAO,UAAP,gBAAA7C,EAAc;AAAA,WAAK;AAE5D,kBAAAP;AAAA,cACEoB,EAAI,KAAK,eAAeN,EAAW,IAAI,CAACI,OAAO,EAAE,MAAM,cAAc,IAAIA,EAAE,KAAK,CAAC;AAAA,YACnF,GAGA2D,EAAgB,QAAQ,CAACrD,MAAUA,KAAA,gBAAAA,EAAO,MAAM,GAGhDsD,EAAgB,QAAQ,CAACtD,MAAUA,KAAA,gBAAAA,EAAO,MAAM,GAE1C;AAGR,gBAAM0D,IAAe,CAAC;AAEtB,iBAAIA,EAAa,UACflF,EAASoB,EAAI,KAAK,eAAe8D,CAAY,CAAC,GAGzC,EAAE,MAAMpE,EAAW;AAAA,iBACnBoB,GAAO;AACd,yBAAQ,MAAMA,CAAK,GACZ,EAAE,OAAAA,EAAM;AAAA,QAAA;AAAA,MAEnB;AAAA,MACA,iBAAiB,CAACkB,GAAQlB,GAAO,EAAE,YAAApB,QAAiB;AAAA,QAClD,GAAGA,EAAW,IAAI,CAACI,OAAO,EAAE,IAAIA,EAAE,IAAI,MAAM,WAAW;AAAA,MAAA;AAAA,IAE1D,CAAA;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC,GAEY,EAAE,2BAAAiE,IAA2B,yBAAAC,OAA4BjD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const v=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/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const A=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/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 E=require("./utils/formatEntityLinks.cjs.js"),F=require("react-toastify");require("lodash");require("uuid");const G=require("../../../util/pubsub.cjs.js"),S={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},$={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},P=A.api.injectEndpoints({endpoints:z=>({getEntityLinks:z.query({queryFn:async({projectName:t,entityIds:u,entityType:r},{getState:n,dispatch:q,queryCacheKey:T,forced:m})=>{var h,d,L,w,k;try{const y=n(),R=JSON.stringify({projectName:t,entityType:r}),a=(d=(h=y.restApi)==null?void 0:h.queries)==null?void 0:d[T||`getEntityLinks(${R})`],f=(a==null?void 0:a.data)||[],i=new Set(f.map(s=>s.id)),c=u.filter(s=>!(i!=null&&i.has(s))||m);if(c.length===0)return{data:f};const o=S[r],b=$[r];return{data:((k=(w=(L=(await q(v.api.endpoints[o].initiate({projectName:t,entityIds:c},{forceRefetch:!0})).unwrap()).project)==null?void 0:L[b])==null?void 0:w.edges)==null?void 0:k.map(({node:s})=>{var p,l;return{id:s.id,links:((l=(p=s.links.edges)==null?void 0:p.filter(e=>!!(e!=null&&e.node)))==null?void 0:l.map(e=>({...e,node:{id:e.node.id,name:e.node.name,label:E.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0}})))||[]}}))||[]}}catch(y){return console.error(`Error in getEntityLinks queryFn for ${r}:`,y),F.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:y.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:u})=>{if(!t||!u)return!0;const r=new Set(t.entityIds),n=new Set(u.entityIds);if(r.size!==n.size)return!0;for(const q of r)if(!n.has(q))return!0;return!1},merge:(t,u)=>{if(!t)return u;const r=new Map(t.map(n=>[n.id,n]));for(const n of u)r.set(n.id,n);t.length=0,t.push(...r.values())},providesTags:(t,u,r)=>t?[...t.flatMap(n=>n.links.map(q=>({type:"link",id:q.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:u,entityType:r},{cacheDataLoaded:n,cacheEntryRemoved:q,updateCachedData:T,dispatch:m}){let h;const d=new Set,L=100,w=500;let k=!1;const y=()=>{k||(k=!0,setTimeout(R,w))},R=async()=>{var f,i,c;if(k=!1,!d.size)return;const a=Array.from(d).slice(0,L);a.forEach(o=>d.delete(o));try{const o=S[r],b=$[r],j=((c=(i=(f=(await m(v.api.endpoints[o].initiate({projectName:t,entityIds:a},{forceRefetch:!0})).unwrap()).project)==null?void 0:f[b])==null?void 0:i.edges)==null?void 0:c.map(({node:s})=>{var p,l;return{id:s.id,links:((l=(p=s.links.edges)==null?void 0:p.filter(e=>!!(e!=null&&e.node)))==null?void 0:l.map(e=>({...e,node:{id:e.node.id,name:e.node.name,label:E.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0}})))||[]}}))||[];T(s=>{for(const p of j){const l=s.findIndex(e=>e.id===p.id);l>-1?s[l]=p:s.push(p)}})}catch(o){console.error("Realtime link batch update failed",o)}finally{d.size&&y()}};try{await n;const a=async(f,i)=>{var b,I;if(!f.startsWith("link.created")&&!f.startsWith("link.deleted")||(i==null?void 0:i.project)!==t)return;const c=(b=i==null?void 0:i.summary)==null?void 0:b.inputId,o=(I=i==null?void 0:i.summary)==null?void 0:I.outputId;!c&&!o||(c&&d.add(c),o&&d.add(o),y())};h=G.subscribe("link",a)}catch{}await q,h&&G.unsubscribe(h)}})})}),{useGetEntityLinksQuery:M}=P;exports.entityLinksApi=P;exports.useGetEntityLinksQuery=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const v=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/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const M=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/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("./utils/formatEntityLinks.cjs.js"),Q=require("react-toastify");require("lodash");require("uuid");const N=require("../../../util/pubsub.cjs.js"),P={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},z={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},A=M.api.injectEndpoints({endpoints:F=>({getEntityLinks:F.query({queryFn:async({projectName:t,entityIds:d,entityType:r},{getState:o,dispatch:c,queryCacheKey:m,forced:S})=>{var h,p,I,L,b;try{const l=o(),$=JSON.stringify({projectName:t,entityType:r}),f=(p=(h=l.restApi)==null?void 0:h.queries)==null?void 0:p[m||`getEntityLinks(${$})`],q=(f==null?void 0:f.data)||[],n=new Set(q.map(s=>s.id)),y=d.filter(s=>!(n!=null&&n.has(s))||S);if(y.length===0)return{data:q};const u=P[r],T=z[r];return{data:((b=(L=(I=(await c(v.api.endpoints[u].initiate({projectName:t,entityIds:y},{forceRefetch:!0})).unwrap()).project)==null?void 0:I[T])==null?void 0:L.edges)==null?void 0:b.map(({node:s})=>{var i,R;const a=((i=s.links.edges)==null?void 0:i.filter(e=>!(e!=null&&e.node)))||[];return a.length>0&&console.log(`[RESTRICTED LINKS] Entity ${s.id} (${s.name}) has ${a.length} restricted link(s):`,a.map(e=>({linkId:e==null?void 0:e.id,linkType:e==null?void 0:e.linkType,direction:e==null?void 0:e.direction,entityType:e==null?void 0:e.entityType,nodeIsNull:!(e!=null&&e.node)}))),{id:s.id,links:((R=s.links.edges)==null?void 0:R.map(e=>e!=null&&e.node?{...e,node:{id:e.node.id,name:e.node.name,label:G.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0},isRestricted:!1}:{...e,node:null,isRestricted:!0}))||[]}}))||[]}}catch(l){return console.error(`Error in getEntityLinks queryFn for ${r}:`,l),Q.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:l.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:d})=>{if(!t||!d)return!0;const r=new Set(t.entityIds),o=new Set(d.entityIds);if(r.size!==o.size)return!0;for(const c of r)if(!o.has(c))return!0;return!1},merge:(t,d)=>{if(!t)return d;const r=new Map(t.map(o=>[o.id,o]));for(const o of d)r.set(o.id,o);t.length=0,t.push(...r.values())},providesTags:(t,d,r)=>t?[...t.flatMap(o=>o.links.filter(c=>c.node!==null).map(c=>({type:"link",id:c.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:d,entityType:r},{cacheDataLoaded:o,cacheEntryRemoved:c,updateCachedData:m,dispatch:S}){let h;const p=new Set,I=100,L=500;let b=!1;const l=()=>{b||(b=!0,setTimeout($,L))},$=async()=>{var q,n,y;if(b=!1,!p.size)return;const f=Array.from(p).slice(0,I);f.forEach(u=>p.delete(u));try{const u=P[r],T=z[r],j=((y=(n=(q=(await S(v.api.endpoints[u].initiate({projectName:t,entityIds:f},{forceRefetch:!0})).unwrap()).project)==null?void 0:q[T])==null?void 0:n.edges)==null?void 0:y.map(({node:s})=>{var a;return{id:s.id,links:((a=s.links.edges)==null?void 0:a.map(i=>i!=null&&i.node?{...i,node:{id:i.node.id,name:i.node.name,label:G.formatEntityLabel(i.node),parents:i.node.parents||[],subType:"subType"in i.node?i.node.subType:void 0},isRestricted:!1}:{...i,node:null,isRestricted:!0}))||[]}}))||[];m(s=>{for(const a of j){const i=s.findIndex(R=>R.id===a.id);i>-1?s[i]=a:s.push(a)}})}catch(u){console.error("Realtime link batch update failed",u)}finally{p.size&&l()}};try{await o;const f=async(q,n)=>{var T,w;if(!q.startsWith("link.created")&&!q.startsWith("link.deleted")||(n==null?void 0:n.project)!==t)return;const y=(T=n==null?void 0:n.summary)==null?void 0:T.inputId,u=(w=n==null?void 0:n.summary)==null?void 0:w.outputId;!y&&!u||(y&&p.add(y),u&&p.add(u),l())};h=N.subscribe("link",f)}catch{}await c,h&&N.unsubscribe(h)}})})}),{useGetEntityLinksQuery:O}=A;exports.entityLinksApi=A;exports.useGetEntityLinksQuery=O;
2
2
  //# sourceMappingURL=getEntityLinks.cjs.js.map