@ynput/ayon-frontend-shared 0.2.37 → 0.2.39

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 (710) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +29 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +184 -167
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/api.cjs.js +1 -1
  8. package/dist/api.es.js +121 -118
  9. package/dist/api.es.js.map +1 -1
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +141 -133
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/context.cjs.js +1 -1
  14. package/dist/context.es.js +46 -36
  15. package/dist/context.es.js.map +1 -1
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +16 -9
  18. package/dist/index.es.js.map +1 -1
  19. package/dist/shared/src/api/generated/graphql.cjs.js +4 -0
  20. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphql.es.js +4 -0
  22. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  23. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  24. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  25. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  26. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  27. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  28. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  29. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +8 -3
  30. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  31. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  32. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  33. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -3
  34. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  35. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  36. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/overview/updateOverview.es.js +70 -66
  38. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  39. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  40. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/project/getProject.es.js +7 -1
  42. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  43. package/dist/shared/src/api/queries/uris/getUris.cjs.js +2 -0
  44. package/dist/shared/src/api/queries/uris/getUris.cjs.js.map +1 -0
  45. package/dist/shared/src/api/queries/uris/getUris.es.js +47 -0
  46. package/dist/shared/src/api/queries/uris/getUris.es.js.map +1 -0
  47. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  48. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  49. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +73 -67
  50. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  51. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  52. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/users/getUsers.es.js +19 -18
  54. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  55. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  56. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +131 -114
  58. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  59. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +27 -0
  60. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -0
  61. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +50 -0
  62. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -0
  63. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  64. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  65. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  66. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  67. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  68. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  69. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -2
  70. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  71. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  72. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  73. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +6 -2
  74. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  75. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  76. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  77. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +64 -50
  78. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  79. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  80. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  81. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +6 -2
  82. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  83. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  84. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  85. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +55 -48
  86. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  87. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js +1 -1
  88. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  89. package/dist/shared/src/components/EntityPath/EntityPath.es.js +51 -53
  90. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  91. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  92. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  93. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -2
  94. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  95. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  96. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  97. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +8 -4
  98. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  99. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  100. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  101. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +115 -109
  102. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  103. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  104. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  105. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  106. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  107. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  108. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  109. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +51 -44
  110. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  111. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  112. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  113. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +61 -46
  114. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  115. package/dist/shared/src/components/Menu/Menu.cjs.js +2 -0
  116. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -0
  117. package/dist/shared/src/components/Menu/Menu.es.js +92 -0
  118. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -0
  119. package/dist/shared/src/components/Menu/Menu.styled.cjs.js.map +1 -0
  120. package/dist/shared/src/components/Menu/Menu.styled.es.js.map +1 -0
  121. package/dist/shared/src/components/Menu/MenuContainer.cjs.js +2 -0
  122. package/dist/shared/src/components/Menu/MenuContainer.cjs.js.map +1 -0
  123. package/dist/shared/src/components/Menu/MenuContainer.es.js +88 -0
  124. package/dist/shared/src/components/Menu/MenuContainer.es.js.map +1 -0
  125. package/dist/shared/src/components/Menu/MenuItem.cjs.js +2 -0
  126. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -0
  127. package/dist/shared/src/components/Menu/MenuItem.es.js +80 -0
  128. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -0
  129. package/dist/shared/src/components/Menu/MenuList.cjs.js +2 -0
  130. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -0
  131. package/dist/shared/src/components/Menu/MenuList.es.js +131 -0
  132. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -0
  133. package/dist/shared/src/components/Menu/useMenuPosition.cjs.js +2 -0
  134. package/dist/shared/src/components/Menu/useMenuPosition.cjs.js.map +1 -0
  135. package/dist/shared/src/components/Menu/useMenuPosition.es.js +50 -0
  136. package/dist/shared/src/components/Menu/useMenuPosition.es.js.map +1 -0
  137. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  138. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  139. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +10 -7
  140. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  141. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  142. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  143. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +9 -2
  144. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  145. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  146. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  147. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +51 -44
  148. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  149. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  150. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  151. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +9 -2
  152. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  153. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +2 -2
  154. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  155. package/dist/shared/src/components/RenameForm/RenameForm.es.js +57 -50
  156. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  157. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  158. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  159. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  160. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  161. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  162. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  163. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +106 -103
  164. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -3
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  169. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  170. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -2
  172. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js +1 -1
  174. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.es.js +19 -27
  176. package/dist/shared/src/components/ReviewablesList/getGroupedReviewables.es.js.map +1 -1
  177. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  178. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  179. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  180. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  181. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  182. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  183. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +314 -275
  184. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  185. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -2
  186. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  187. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +35 -32
  188. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  189. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  190. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  191. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +9 -2
  192. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  193. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
  194. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  195. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +16 -13
  196. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  197. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -6
  198. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  199. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +75 -73
  200. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  201. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  202. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  203. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +23 -23
  204. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  205. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  206. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  207. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  208. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  209. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  210. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -2
  212. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  213. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  214. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Actions/Actions.es.js +6 -2
  216. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  217. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  218. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -2
  220. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  221. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  222. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +266 -204
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +10 -4
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -7
  228. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js.map +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +23 -16
  232. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  233. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +58 -46
  236. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  237. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -2
  240. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  241. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  242. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +10 -5
  244. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  245. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  246. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +210 -20
  248. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  250. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +5 -2
  252. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js +1 -1
  254. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js +25 -22
  256. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/hooks/useDetailsPanelURLSync.cjs.js +2 -0
  258. package/dist/shared/src/containers/DetailsPanel/hooks/useDetailsPanelURLSync.cjs.js.map +1 -0
  259. package/dist/shared/src/containers/DetailsPanel/hooks/useDetailsPanelURLSync.es.js +21 -0
  260. package/dist/shared/src/containers/DetailsPanel/hooks/useDetailsPanelURLSync.es.js.map +1 -0
  261. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  262. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +21 -17
  264. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  265. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  266. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +9 -2
  268. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  269. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  270. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +9 -2
  272. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  273. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  274. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +9 -2
  276. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  277. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  278. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +9 -2
  280. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  281. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  282. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +45 -44
  284. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  285. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  286. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/Feed/Feed.es.js +110 -99
  288. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  289. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  290. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +447 -212
  292. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  293. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +20 -16
  294. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +21 -17
  296. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  297. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +2 -0
  298. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -0
  299. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +288 -0
  300. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -0
  301. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  302. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +23 -11
  304. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  305. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  306. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +5 -2
  308. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  309. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  310. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +413 -223
  312. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  313. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  314. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +5 -2
  316. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  317. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  318. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +13 -10
  320. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  321. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  322. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +35 -32
  324. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  325. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  326. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +235 -46
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  329. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  330. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +9 -5
  332. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  333. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  334. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  336. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  337. package/dist/shared/src/containers/Feed/hooks/useScrollToHighlighted.cjs.js +1 -1
  338. package/dist/shared/src/containers/Feed/hooks/useScrollToHighlighted.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/Feed/hooks/useScrollToHighlighted.es.js +24 -26
  340. package/dist/shared/src/containers/Feed/hooks/useScrollToHighlighted.es.js.map +1 -1
  341. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  342. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +11 -9
  344. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  346. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +438 -439
  348. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  350. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +79 -72
  352. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +2 -2
  354. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +14 -7
  356. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  358. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +9 -2
  360. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +38 -30
  364. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  366. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +235 -214
  368. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  370. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +48 -40
  372. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +164 -153
  378. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +26 -19
  382. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +14 -11
  386. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +72 -70
  390. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +114 -112
  394. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  396. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +19 -13
  398. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +40 -24
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +22 -10
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +105 -109
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +15 -20
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +12 -5
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +9 -2
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +13 -6
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +107 -103
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +60 -53
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js +4 -4
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -17
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +158 -140
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +20 -13
  450. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +26 -34
  454. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +22 -20
  458. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  460. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +110 -220
  462. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +11 -4
  466. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +9 -2
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +3 -3
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +58 -62
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +45 -44
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  479. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  480. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +9 -2
  482. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  483. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  484. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +9 -2
  486. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  487. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  488. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +6 -2
  490. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  491. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  492. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +15 -12
  494. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  495. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  496. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +8 -4
  498. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  499. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  500. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +6 -2
  502. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  503. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  504. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +6 -2
  506. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  507. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  508. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  510. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  511. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  512. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  514. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  515. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  516. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  518. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  519. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  520. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  521. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  522. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  523. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  524. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  525. package/dist/shared/src/context/DetailsPanelContext.es.js +118 -75
  526. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  527. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  528. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  529. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  530. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  531. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  532. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  533. package/dist/shared/src/context/PowerpackContext.es.js +19 -15
  534. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  535. package/dist/shared/src/context/ProjectContext.cjs.js +2 -0
  536. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -0
  537. package/dist/shared/src/context/ProjectContext.es.js +186 -0
  538. package/dist/shared/src/context/ProjectContext.es.js.map +1 -0
  539. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +2 -0
  540. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -0
  541. package/dist/shared/src/context/ProjectFoldersContext.es.js +177 -0
  542. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -0
  543. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  544. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  545. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  546. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  547. package/dist/shared/src/context/UriContext.cjs.js +2 -0
  548. package/dist/shared/src/context/UriContext.cjs.js.map +1 -0
  549. package/dist/shared/src/context/UriContext.es.js +131 -0
  550. package/dist/shared/src/context/UriContext.es.js.map +1 -0
  551. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  552. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  553. package/dist/shared/src/context/WebsocketContext.es.js +12 -5
  554. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  555. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  556. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  557. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  558. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  559. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  560. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  561. package/dist/shared/src/hooks/useEntityUpdate.es.js +6 -2
  562. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  563. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  564. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  565. package/dist/shared/src/hooks/useGetEntityGroups.es.js +7 -5
  566. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  567. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  568. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  569. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +6 -2
  570. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  571. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  572. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  573. package/dist/shared/src/hooks/useHierarchyTable.es.js +43 -119
  574. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  575. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  576. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  577. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  578. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  579. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  580. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  581. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -2
  582. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  583. package/dist/shared/src/util/extractEntityHierarchyFromParents.cjs.js +2 -0
  584. package/dist/shared/src/util/extractEntityHierarchyFromParents.cjs.js.map +1 -0
  585. package/dist/shared/src/util/extractEntityHierarchyFromParents.es.js +25 -0
  586. package/dist/shared/src/util/extractEntityHierarchyFromParents.es.js.map +1 -0
  587. package/dist/shared/src/util/uriUtils.cjs.js +2 -0
  588. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -0
  589. package/dist/shared/src/util/uriUtils.es.js +49 -0
  590. package/dist/shared/src/util/uriUtils.es.js.map +1 -0
  591. package/dist/shared/src/util/versionUploadHelpers.cjs.js +1 -1
  592. package/dist/shared/src/util/versionUploadHelpers.cjs.js.map +1 -1
  593. package/dist/shared/src/util/versionUploadHelpers.es.js +24 -34
  594. package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -1
  595. package/dist/types/api/generated/graphql.d.ts +55 -4
  596. package/dist/types/api/generated/graphqlLinks.d.ts +47 -0
  597. package/dist/types/api/generated/views.d.ts +3 -9
  598. package/dist/types/api/queries/actions/getActions.d.ts +6 -6
  599. package/dist/types/api/queries/activities/getActivities.d.ts +8 -8
  600. package/dist/types/api/queries/activities/getCategories.d.ts +2 -2
  601. package/dist/types/api/queries/activities/getMentions.d.ts +2 -2
  602. package/dist/types/api/queries/addons/getAddons.d.ts +8 -8
  603. package/dist/types/api/queries/attributes/getAttributes.d.ts +4 -4
  604. package/dist/types/api/queries/authentication/getAuthentication.d.ts +2 -2
  605. package/dist/types/api/queries/cloud/cloud.d.ts +4 -4
  606. package/dist/types/api/queries/entities/getEntity.d.ts +10 -10
  607. package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -4
  608. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  609. package/dist/types/api/queries/entityLists/getLists.d.ts +8 -8
  610. package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +2 -2
  611. package/dist/types/api/queries/entityLists/listFolders.d.ts +2 -2
  612. package/dist/types/api/queries/folders/getFolders.d.ts +4 -4
  613. package/dist/types/api/queries/grouping/getGrouping.d.ts +2 -2
  614. package/dist/types/api/queries/index.d.ts +1 -0
  615. package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -2
  616. package/dist/types/api/queries/overview/getOverview.d.ts +10 -10
  617. package/dist/types/api/queries/permissions/getPermissions.d.ts +4 -4
  618. package/dist/types/api/queries/project/getProject.d.ts +190 -6
  619. package/dist/types/api/queries/review/getReview.d.ts +6 -6
  620. package/dist/types/api/queries/share/share.d.ts +2 -2
  621. package/dist/types/api/queries/system/getSystem.d.ts +6 -6
  622. package/dist/types/api/queries/uris/getUris.d.ts +161 -0
  623. package/dist/types/api/queries/uris/index.d.ts +1 -0
  624. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +11 -8
  625. package/dist/types/api/queries/users/getUsers.d.ts +20 -20
  626. package/dist/types/api/queries/users/guests.d.ts +2 -2
  627. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +9 -6
  628. package/dist/types/api/queries/versions/getVersionsProductsUtils.d.ts +5 -5
  629. package/dist/types/api/queries/versions/updateVersions.d.ts +2 -2
  630. package/dist/types/api/queries/views/getViews.d.ts +8 -8
  631. package/dist/types/api/queries/watchers/getWatchers.d.ts +2 -2
  632. package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +20 -0
  633. package/dist/types/components/AddonLoadingScreen/index.d.ts +1 -0
  634. package/dist/types/components/DetailsPanelDetails/hooks/index.d.ts +0 -1
  635. package/dist/types/components/Menu/Menu.d.ts +30 -0
  636. package/dist/types/components/Menu/Menu.styled.d.ts +8 -0
  637. package/dist/types/components/Menu/MenuContainer.d.ts +14 -0
  638. package/dist/types/components/Menu/MenuItem.d.ts +21 -0
  639. package/dist/types/components/Menu/MenuList.d.ts +21 -0
  640. package/dist/types/components/Menu/index.d.ts +4 -0
  641. package/dist/types/components/Menu/useMenuPosition.d.ts +12 -0
  642. package/dist/types/components/ReviewablesList/getGroupedReviewables.d.ts +1 -2
  643. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +4 -1
  644. package/dist/types/components/index.d.ts +2 -0
  645. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +8 -3
  646. package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +1 -0
  647. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +4 -2
  648. package/dist/types/containers/DetailsPanel/hooks/useDetailsPanelURLSync.d.ts +12 -0
  649. package/dist/types/containers/Feed/Feed.d.ts +2 -1
  650. package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.d.ts +2 -1
  651. package/dist/types/containers/Feed/components/ActivityComment/ActivityCommentMenu.d.ts +9 -0
  652. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
  653. package/dist/types/containers/Feed/hooks/useScrollToHighlighted.d.ts +2 -1
  654. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -1
  655. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +0 -5
  656. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
  657. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -4
  658. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +2 -3
  659. package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +1 -3
  660. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +5 -3
  661. package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -0
  662. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +3 -2
  663. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  664. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  665. package/dist/types/context/ProjectContext.d.ts +33 -0
  666. package/dist/types/context/ProjectFoldersContext.d.ts +19 -0
  667. package/dist/types/context/UriContext.d.ts +40 -0
  668. package/dist/types/context/index.d.ts +3 -0
  669. package/dist/types/util/extractEntityHierarchyFromParents.d.ts +6 -0
  670. package/dist/types/util/index.d.ts +2 -2
  671. package/dist/types/util/uriUtils.d.ts +15 -0
  672. package/dist/types/util/versionUploadHelpers.d.ts +0 -1
  673. package/dist/util.cjs.js +1 -1
  674. package/dist/util.es.js +64 -60
  675. package/dist/util.es.js.map +1 -1
  676. package/package.json +1 -1
  677. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +0 -2
  678. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +0 -1
  679. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +0 -113
  680. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +0 -1
  681. package/dist/shared/src/util/productTypes.cjs.js +0 -2
  682. package/dist/shared/src/util/productTypes.cjs.js.map +0 -1
  683. package/dist/shared/src/util/productTypes.es.js +0 -25
  684. package/dist/shared/src/util/productTypes.es.js.map +0 -1
  685. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +0 -2
  686. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +0 -1
  687. package/dist/src/components/Menu/MenuComponents/Menu.es.js +0 -81
  688. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +0 -1
  689. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +0 -1
  690. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +0 -1
  691. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js +0 -2
  692. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js.map +0 -1
  693. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js +0 -80
  694. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js.map +0 -1
  695. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +0 -2
  696. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +0 -1
  697. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +0 -77
  698. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +0 -1
  699. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +0 -2
  700. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +0 -1
  701. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +0 -134
  702. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +0 -1
  703. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js +0 -2
  704. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js.map +0 -1
  705. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js +0 -35
  706. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js.map +0 -1
  707. package/dist/types/components/DetailsPanelDetails/hooks/useEntityData.d.ts +0 -12
  708. package/dist/types/util/productTypes.d.ts +0 -8
  709. /package/dist/{src/components/Menu/MenuComponents → shared/src/components/Menu}/Menu.styled.cjs.js +0 -0
  710. /package/dist/{src/components/Menu/MenuComponents → shared/src/components/Menu}/Menu.styled.es.js +0 -0
@@ -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":"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"}
@@ -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");const W=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("../entities/getEntity.cjs.js");const E=require("../entities/getEntityPanel.cjs.js");require("../entities/updateEntity.cjs.js");const B=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");const w=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 T=require("./getOverview.cjs.js"),G=require("./patchVersions.cjs.js"),J=require("./patchProducts.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("../versions/getVersionsProducts.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");const N=require("./filterRefetchUtils.cjs.js"),j=require("./refetchFilteredEntities.cjs.js"),O=(e,t)=>{if(Object.keys(t).forEach(r=>{r==="attrib"||r==="links"||r==="deleteLinks"||(e[r]=t[r])}),t.attrib&&(e.attrib={...e.attrib,...t.attrib}),t.links){const r=e.links||[],n=t.links||[];e.links||(e.links=[]),e.links=[...r],n.forEach(i=>{const u=e.links.findIndex(l=>l.id===i.id);u!==-1?e.links[u]={...e.links[u],...i}:e.links.push(i)})}if(t.deleteLinks){const r=t.deleteLinks||[];e.links||(e.links=[]),r.forEach(n=>{e.links=e.links.filter(i=>i.id!==n)})}},S=e=>[{type:"overviewTask",id:"LIST"},...e.map(t=>({type:"overviewTask",id:t.entityId})),...e.filter(t=>{var r;return(r=t.data)==null?void 0:r.projectName}).map(t=>{var r;return{type:"overviewTask",id:(r=t.data)==null?void 0:r.projectName}})],K=e=>[...e.map(t=>({type:"folder",id:t.entityId})),...e.filter(t=>{var r;return(r=t.data)==null?void 0:r.projectName}).map(t=>{var r;return{type:"folder",id:(r=t.data)==null?void 0:r.projectName}})],x=(e,t,r)=>({entityId:e,entityType:t,type:"update",data:{deleteLinks:r}}),X=(e,t)=>e.map(r=>x(r.entityId,r.entityType,t)),Y=(e,{state:t,dispatch:r},n)=>{const i=e.reduce((u,l)=>(u[l.entityType]||(u[l.entityType]=[]),u[l.entityType].push(l),u),{});i.task&&b(i.task,{state:t,dispatch:r},n),i.folder&&P(i.folder,{state:t,dispatch:r},n)},b=(e,{state:t,dispatch:r},n)=>{const i=S(e),u=T.default.util.selectInvalidatedBy(t,i);for(const l of u)if(l.endpointName==="getTasksListInfinite"){const a=r(T.default.util.updateQueryData("getTasksListInfinite",l.originalArgs,o=>{for(const s of e)if(s.type==="create"&&s.data)o.pages[0].tasks.push(s.data);else for(const d of o.pages){const f=d.tasks.find(p=>p.id===s.entityId);f&&O(f,s.data)}}));n==null||n.push(a)}else{const a=r(T.default.util.updateQueryData(l.endpointName,l.originalArgs,o=>{var s;for(const d of e)if(d.type==="create"&&d.data&&((s=l.originalArgs.parentIds)!=null&&s.includes(d.data.folderId))){const f=p=>{p.push(d.data)};if(Array.isArray(o))f(o);else if(o.tasks&&Array.isArray(o.tasks)){const p=o.tasks;f(p)}}else{const f=p=>{const h=p.find(m=>m.id===d.entityId);h&&O(h,d.data)};if(Array.isArray(o))f(o);else if(o.tasks&&Array.isArray(o.tasks)){const p=o.tasks;f(p)}}}));n==null||n.push(a)}},Z=(e,{dispatch:t})=>{e.length&&t(T.default.util.invalidateTags(S(e)))},P=(e,{state:t,dispatch:r},n)=>{const i=w.foldersQueries.util.selectInvalidatedBy(t,K(e)).filter(u=>u.endpointName==="getFolderList");for(const u of i){const l=r(w.foldersQueries.util.updateQueryData(u.endpointName,u.originalArgs,a=>{const o=new Map;a.folders.forEach(s=>{o.set(s.id,s)});for(const s of e)if(s.type==="create"&&s.data)a.folders.push(s.data);else{const d=o.get(s.entityId);d&&O(d,s.data)}}));n==null||n.push(l)}},$=(e,t)=>{const r={name:e.name,attrib:e.attrib,status:e.status,tags:e.tags,label:e.label,updatedAt:e.updatedAt,createdAt:e.createdAt,hasReviewables:e.hasReviewables,thumbnailId:e.thumbnailId};switch(t){case"task":return{...r,task:{assignees:e.assignees,label:e.label,name:e.name,taskType:e.taskType}};case"folder":return{...r,folder:{id:e.id,name:e.name,label:e.label,folderType:e.folderType}};case"version":return{...r,version:{id:e.id,name:e.name}};case"representation":return{...r}}},U=(e=[],t)=>{const r=e.find(a=>a.entityId===t.id),n=r==null?void 0:r.data;if(!n||r.entityType==="product"||r.entityType==="workfile")return console.warn("No operation data found or entity type not supported");const i=$(n,r.entityType);if(r.entityType==="folder"&&n.name&&t.path){const a=t.path.split("/");a[a.length-1]=n.name,i.path=a.join("/")}function u(a){Object.entries(a).forEach(([o,s])=>{s===void 0?delete a[o]:s!==null&&typeof s=="object"&&u(s)})}u(i);const l={...t,...i,attrib:{...(t==null?void 0:t.attrib)||{},...i.attrib},folder:{...(t==null?void 0:t.folder)||{},...i.folder},task:{...(t==null?void 0:t.task)||{},...i.task},version:{...(t==null?void 0:t.version)||{},...i.version}};Object.assign(t,l)},ee=(e,{state:t,dispatch:r},n)=>{const i=e.map(l=>({type:"entityListItem",id:l.entityId})),u=B.default.util.selectInvalidatedBy(t,i);for(const l of u)if(l.endpointName==="getListItemsInfinite"){const a=r(B.default.util.updateQueryData("getListItemsInfinite",l.originalArgs,o=>{for(const s of e)if(s.type==="update"&&s.data)for(const d of o.pages){const f=d.items.find(p=>p.entityId===s.entityId);f&&O(f,s.data)}}));n==null||n.push(a)}},C=e=>e.reduce((t,r)=>(t[r.type].push(r),t),{create:[],update:[],delete:[]}),R=W.api.enhanceEndpoints({endpoints:{operations:{}}}),te=R.injectEndpoints({endpoints:e=>({updateOverviewEntities:e.mutation({async queryFn(t,{dispatch:r}){try{const i=(await r(R.endpoints.operations.initiate(t))).data,u=new Set,l=new Set;for(const a of(i==null?void 0:i.operations)||[])a.success===!1&&a.detail&&(u.has(a.detail)||u.add(a.detail),l.has(a.errorCode)||l.add(a.errorCode));return u.size>0?{error:{status:"FETCH_ERROR",error:Array.from(u).join(", "),errorCodes:Array.from(l)}}:{data:i}}catch(n){return console.error(n),{error:{status:"FETCH_ERROR",error:n.message}}}},async onQueryStarted({operationsRequestModel:t,patchOperations:r=[],projectName:n},{dispatch:i,queryFulfilled:u,getState:l}){var L,A,F,D,Q;if(!((L=t.operations)!=null&&L.length))return;const{operations:a}=t,o=a.reduce((c,y)=>(c[y.entityType].push(y),c),{task:[],folder:[],product:[],version:[],representation:[],workfile:[]}),s=l(),d=[];if((A=o.task)!=null&&A.length){const{delete:c,update:y}=C(o.task),q=y.filter(g=>!r.some(v=>v.entityId===g.entityId));b(q,{state:s,dispatch:i},d),Z([...c],{dispatch:i})}if((F=o.folder)!=null&&F.length){const{delete:c,update:y}=C(o.folder),q=y.filter(g=>!r.some(v=>v.entityId===g.entityId));P(q,{state:s,dispatch:i},d),c.length&&i(w.foldersQueries.util.invalidateTags([{type:"folder",id:"LIST"}]))}const f=r.filter(c=>c.entityType==="task"),p=r.filter(c=>c.entityType==="folder");f.length&&b(f,{state:s,dispatch:i},d),p.length&&P(p,{state:s,dispatch:i},d),ee([...a,...r],{state:s,dispatch:i},d),(D=o.version)!=null&&D.length&&G.patchVersions(o.version,{state:s,dispatch:i},d),(Q=o.product)!=null&&Q.length&&J.patchProducts(o.product,{state:s,dispatch:i},d);const h=a.map(c=>({id:c.entityId,type:c.entityType})),m=h.map(c=>({type:"entities",id:c.id})),M=()=>i(E.detailsPanelQueries.util.invalidateTags(m)),_=E.detailsPanelQueries.util.selectInvalidatedBy(s,h),H=E.detailsPanelQueries.util.selectInvalidatedBy(s,m);for(const c of H){if(c.endpointName!=="getEntitiesDetailsPanel")continue;const y=i(E.detailsPanelQueries.util.updateQueryData(c.endpointName,c.originalArgs,q=>{for(const g of q)U(a,g)}));d.push(y)}try{await u;const c=o.task||[],y=o.folder||[];if(c.length===0&&y.length===0)return;const q=N.getUpdatedEntityIds(c),g=N.getUpdatedEntityIds(y),v=q.map(k=>({type:"overviewTask",id:k})),V=T.default.util.selectInvalidatedBy(s,v).filter(k=>k.endpointName==="getTasksListInfinite");if(q.length>0&&n){for(const I of V)await j.refetchTasksForCacheEntry({dispatch:i,projectName:n,updatedTaskIds:q,cacheEntry:I});const k=T.default.util.selectInvalidatedBy(s,v).filter(I=>I.endpointName==="getOverviewTasksByFolders");for(const I of k)await j.refetchOverviewTasksForCacheEntry({dispatch:i,projectName:n,updatedTaskIds:q,cacheEntry:I})}const z=(o.folder||[]).some(k=>k.type==="delete");g.length>0&&n&&!z&&i(w.foldersQueries.util.invalidateTags([{type:"folder",id:"LIST"}]))}catch{for(const y of d)y.undo();_.length&&M()}},invalidatesTags:(t,r,{operationsRequestModel:n,projectName:i})=>{var o;const u=[{type:"kanban",id:"project-"+i}],l=[],a=[];return(o=n.operations)==null||o.forEach(s=>{const{entityId:d}=s;d?(l.push({type:"progress",id:d}),a.push({type:"entityListItem",id:d})):l.push({type:"progress",id:"LIST"})}),[...u,...l,...a]}})})}),{useUpdateOverviewEntitiesMutation:re}=te;exports.createLinkDeletionPatch=x;exports.deleteLinksFromEntities=X;exports.patchDetailsPanelEntity=U;exports.patchOverviewEntities=Y;exports.patchOverviewFolders=P;exports.patchOverviewTasks=b;exports.useUpdateOverviewEntitiesMutation=re;
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");const W=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("../entities/getEntity.cjs.js");const E=require("../entities/getEntityPanel.cjs.js");require("../entities/updateEntity.cjs.js");const B=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");const w=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 T=require("./getOverview.cjs.js"),G=require("./patchVersions.cjs.js"),J=require("./patchProducts.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("../versions/getVersionsProducts.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const N=require("./filterRefetchUtils.cjs.js"),j=require("./refetchFilteredEntities.cjs.js"),O=(e,t)=>{if(Object.keys(t).forEach(r=>{r==="attrib"||r==="links"||r==="deleteLinks"||(e[r]=t[r])}),t.attrib&&(e.attrib={...e.attrib,...t.attrib}),t.links){const r=e.links||[],n=t.links||[];e.links||(e.links=[]),e.links=[...r],n.forEach(i=>{const u=e.links.findIndex(l=>l.id===i.id);u!==-1?e.links[u]={...e.links[u],...i}:e.links.push(i)})}if(t.deleteLinks){const r=t.deleteLinks||[];e.links||(e.links=[]),r.forEach(n=>{e.links=e.links.filter(i=>i.id!==n)})}},S=e=>[{type:"overviewTask",id:"LIST"},...e.map(t=>({type:"overviewTask",id:t.entityId})),...e.filter(t=>{var r;return(r=t.data)==null?void 0:r.projectName}).map(t=>{var r;return{type:"overviewTask",id:(r=t.data)==null?void 0:r.projectName}})],K=e=>[...e.map(t=>({type:"folder",id:t.entityId})),...e.filter(t=>{var r;return(r=t.data)==null?void 0:r.projectName}).map(t=>{var r;return{type:"folder",id:(r=t.data)==null?void 0:r.projectName}})],x=(e,t,r)=>({entityId:e,entityType:t,type:"update",data:{deleteLinks:r}}),X=(e,t)=>e.map(r=>x(r.entityId,r.entityType,t)),Y=(e,{state:t,dispatch:r},n)=>{const i=e.reduce((u,l)=>(u[l.entityType]||(u[l.entityType]=[]),u[l.entityType].push(l),u),{});i.task&&b(i.task,{state:t,dispatch:r},n),i.folder&&P(i.folder,{state:t,dispatch:r},n)},b=(e,{state:t,dispatch:r},n)=>{const i=S(e),u=T.default.util.selectInvalidatedBy(t,i);for(const l of u)if(l.endpointName==="getTasksListInfinite"){const a=r(T.default.util.updateQueryData("getTasksListInfinite",l.originalArgs,o=>{for(const s of e)if(s.type==="create"&&s.data)o.pages[0].tasks.push(s.data);else for(const d of o.pages){const f=d.tasks.find(p=>p.id===s.entityId);f&&O(f,s.data)}}));n==null||n.push(a)}else{const a=r(T.default.util.updateQueryData(l.endpointName,l.originalArgs,o=>{var s;for(const d of e)if(d.type==="create"&&d.data&&((s=l.originalArgs.parentIds)!=null&&s.includes(d.data.folderId))){const f=p=>{p.push(d.data)};if(Array.isArray(o))f(o);else if(o.tasks&&Array.isArray(o.tasks)){const p=o.tasks;f(p)}}else{const f=p=>{const h=p.find(m=>m.id===d.entityId);h&&O(h,d.data)};if(Array.isArray(o))f(o);else if(o.tasks&&Array.isArray(o.tasks)){const p=o.tasks;f(p)}}}));n==null||n.push(a)}},Z=(e,{dispatch:t})=>{e.length&&t(T.default.util.invalidateTags(S(e)))},P=(e,{state:t,dispatch:r},n)=>{const i=w.foldersQueries.util.selectInvalidatedBy(t,K(e)).filter(u=>u.endpointName==="getFolderList");for(const u of i){const l=r(w.foldersQueries.util.updateQueryData(u.endpointName,u.originalArgs,a=>{const o=new Map;a.folders.forEach(s=>{o.set(s.id,s)});for(const s of e)if(s.type==="create"&&s.data)a.folders.push(s.data);else{const d=o.get(s.entityId);d&&O(d,s.data)}}));n==null||n.push(l)}},$=(e,t)=>{const r={name:e.name,attrib:e.attrib,status:e.status,tags:e.tags,label:e.label,updatedAt:e.updatedAt,createdAt:e.createdAt,hasReviewables:e.hasReviewables,thumbnailId:e.thumbnailId};switch(t){case"task":return{...r,task:{assignees:e.assignees,label:e.label,name:e.name,taskType:e.taskType}};case"folder":return{...r,folder:{id:e.id,name:e.name,label:e.label,folderType:e.folderType}};case"version":return{...r,version:{id:e.id,name:e.name}};case"representation":return{...r}}},U=(e=[],t)=>{const r=e.find(a=>a.entityId===t.id),n=r==null?void 0:r.data;if(!n||r.entityType==="product"||r.entityType==="workfile")return console.warn("No operation data found or entity type not supported");const i=$(n,r.entityType);if(r.entityType==="folder"&&n.name&&t.path){const a=t.path.split("/");a[a.length-1]=n.name,i.path=a.join("/")}function u(a){Object.entries(a).forEach(([o,s])=>{s===void 0?delete a[o]:s!==null&&typeof s=="object"&&u(s)})}u(i);const l={...t,...i,attrib:{...(t==null?void 0:t.attrib)||{},...i.attrib},folder:{...(t==null?void 0:t.folder)||{},...i.folder},task:{...(t==null?void 0:t.task)||{},...i.task},version:{...(t==null?void 0:t.version)||{},...i.version}};Object.assign(t,l)},ee=(e,{state:t,dispatch:r},n)=>{const i=e.map(l=>({type:"entityListItem",id:l.entityId})),u=B.default.util.selectInvalidatedBy(t,i);for(const l of u)if(l.endpointName==="getListItemsInfinite"){const a=r(B.default.util.updateQueryData("getListItemsInfinite",l.originalArgs,o=>{for(const s of e)if(s.type==="update"&&s.data)for(const d of o.pages){const f=d.items.find(p=>p.entityId===s.entityId);f&&O(f,s.data)}}));n==null||n.push(a)}},C=e=>e.reduce((t,r)=>(t[r.type].push(r),t),{create:[],update:[],delete:[]}),R=W.api.enhanceEndpoints({endpoints:{operations:{}}}),te=R.injectEndpoints({endpoints:e=>({updateOverviewEntities:e.mutation({async queryFn(t,{dispatch:r}){try{const n=await r(R.endpoints.operations.initiate(t));if(n.error)return{error:n.error};const i=n.data,u=new Set,l=new Set;for(const a of(i==null?void 0:i.operations)||[])a.success===!1&&a.detail&&(u.has(a.detail)||u.add(a.detail),l.has(a.errorCode)||l.add(a.errorCode));return u.size>0?{error:{status:"FETCH_ERROR",error:Array.from(u).join(", "),errorCodes:Array.from(l)}}:{data:i}}catch(n){return console.error(n),{error:{status:"FETCH_ERROR",error:n.message}}}},async onQueryStarted({operationsRequestModel:t,patchOperations:r=[],projectName:n},{dispatch:i,queryFulfilled:u,getState:l}){var L,A,F,D,Q;if(!((L=t.operations)!=null&&L.length))return;const{operations:a}=t,o=a.reduce((c,y)=>(c[y.entityType].push(y),c),{task:[],folder:[],product:[],version:[],representation:[],workfile:[]}),s=l(),d=[];if((A=o.task)!=null&&A.length){const{delete:c,update:y}=C(o.task),q=y.filter(g=>!r.some(v=>v.entityId===g.entityId));b(q,{state:s,dispatch:i},d),Z([...c],{dispatch:i})}if((F=o.folder)!=null&&F.length){const{delete:c,update:y}=C(o.folder),q=y.filter(g=>!r.some(v=>v.entityId===g.entityId));P(q,{state:s,dispatch:i},d),c.length&&i(w.foldersQueries.util.invalidateTags([{type:"folder",id:"LIST"}]))}const f=r.filter(c=>c.entityType==="task"),p=r.filter(c=>c.entityType==="folder");f.length&&b(f,{state:s,dispatch:i},d),p.length&&P(p,{state:s,dispatch:i},d),ee([...a,...r],{state:s,dispatch:i},d),(D=o.version)!=null&&D.length&&G.patchVersions(o.version,{state:s,dispatch:i},d),(Q=o.product)!=null&&Q.length&&J.patchProducts(o.product,{state:s,dispatch:i},d);const h=a.map(c=>({id:c.entityId,type:c.entityType})),m=h.map(c=>({type:"entities",id:c.id})),M=()=>i(E.detailsPanelQueries.util.invalidateTags(m)),_=E.detailsPanelQueries.util.selectInvalidatedBy(s,h),H=E.detailsPanelQueries.util.selectInvalidatedBy(s,m);for(const c of H){if(c.endpointName!=="getEntitiesDetailsPanel")continue;const y=i(E.detailsPanelQueries.util.updateQueryData(c.endpointName,c.originalArgs,q=>{for(const g of q)U(a,g)}));d.push(y)}try{await u;const c=o.task||[],y=o.folder||[];if(c.length===0&&y.length===0)return;const q=N.getUpdatedEntityIds(c),g=N.getUpdatedEntityIds(y),v=q.map(k=>({type:"overviewTask",id:k})),V=T.default.util.selectInvalidatedBy(s,v).filter(k=>k.endpointName==="getTasksListInfinite");if(q.length>0&&n){for(const I of V)await j.refetchTasksForCacheEntry({dispatch:i,projectName:n,updatedTaskIds:q,cacheEntry:I});const k=T.default.util.selectInvalidatedBy(s,v).filter(I=>I.endpointName==="getOverviewTasksByFolders");for(const I of k)await j.refetchOverviewTasksForCacheEntry({dispatch:i,projectName:n,updatedTaskIds:q,cacheEntry:I})}const z=(o.folder||[]).some(k=>k.type==="delete");g.length>0&&n&&!z&&i(w.foldersQueries.util.invalidateTags([{type:"folder",id:"LIST"}]))}catch{for(const y of d)y.undo();_.length&&M()}},invalidatesTags:(t,r,{operationsRequestModel:n,projectName:i})=>{var o;const u=[{type:"kanban",id:"project-"+i}],l=[],a=[];return(o=n.operations)==null||o.forEach(s=>{const{entityId:d}=s;d?(l.push({type:"progress",id:d}),a.push({type:"entityListItem",id:d})):l.push({type:"progress",id:"LIST"})}),[...u,...l,...a]}})})}),{useUpdateOverviewEntitiesMutation:re}=te;exports.createLinkDeletionPatch=x;exports.deleteLinksFromEntities=X;exports.patchDetailsPanelEntity=U;exports.patchOverviewEntities=Y;exports.patchOverviewFolders=P;exports.patchOverviewTasks=b;exports.useUpdateOverviewEntitiesMutation=re;
2
2
  //# sourceMappingURL=updateOverview.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import {\n foldersQueries,\n detailsPanelQueries,\n operationsApi,\n entityListsQueriesGql,\n} from '@shared/api'\nimport type { OperationsResponseModel, OperationModel, OperationsApiArg } from '@shared/api'\nimport getOverviewApi from './getOverview'\nimport { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api/queries/entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport { getUpdatedEntityIds } from './filterRefetchUtils'\nimport {\n refetchTasksForCacheEntry,\n refetchOverviewTasksForCacheEntry,\n} from './refetchFilteredEntities'\nimport { patchVersions } from './patchVersions'\nimport { patchProducts } from './patchProducts'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n // Update top-level properties directly\n Object.keys(operationData).forEach((key) => {\n if (key === 'attrib' || key === 'links' || key === 'deleteLinks') return\n entity[key] = operationData[key]\n })\n\n // Handle attrib merging\n if (operationData.attrib) {\n entity.attrib = {\n ...entity.attrib,\n ...operationData.attrib,\n }\n }\n\n // Handle links merging\n if (operationData.links) {\n const existingLinks = entity.links || []\n const newLinks = operationData.links || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Process links directly\n entity.links = [...existingLinks]\n\n newLinks.forEach((newLink: any) => {\n const existingIndex = entity.links.findIndex((link: any) => link.id === newLink.id)\n\n if (existingIndex !== -1) {\n entity.links[existingIndex] = { ...entity.links[existingIndex], ...newLink }\n } else {\n entity.links.push(newLink)\n }\n })\n }\n\n // Handle links deletion\n if (operationData.deleteLinks) {\n const linksToDelete = operationData.deleteLinks || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Remove links by ID\n linksToDelete.forEach((linkId: string) => {\n entity.links = entity.links.filter((link: any) => link.id !== linkId)\n })\n }\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\n// Helper function to create a patch operation for deleting links\nexport const createLinkDeletionPatch = (\n entityId: string,\n entityType: OperationModel['entityType'],\n linkIds: string[],\n): PatchOperation => {\n return {\n entityId,\n entityType,\n type: 'update',\n data: { deleteLinks: linkIds },\n }\n}\n\n// Utility function to delete specific links by ID from entities\nexport const deleteLinksFromEntities = (\n entities: { entityId: string; entityType: OperationModel['entityType'] }[],\n linkIds: string[],\n): PatchOperation[] => {\n return entities.map((entity) =>\n createLinkDeletionPatch(entity.entityId, entity.entityType, linkIds),\n )\n}\n\n// Generic helper function to patch entities based on their type\nexport const patchOverviewEntities = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n // Group entities by type\n const entitiesByType = entities.reduce((acc, entity) => {\n if (!acc[entity.entityType]) {\n acc[entity.entityType] = []\n }\n acc[entity.entityType].push(entity)\n return acc\n }, {} as Record<string, PatchOperation[]>)\n\n // Patch each entity type using the appropriate function\n if (entitiesByType.task) {\n patchOverviewTasks(entitiesByType.task, { state, dispatch }, patches)\n }\n if (entitiesByType.folder) {\n patchOverviewFolders(entitiesByType.folder, { state, dispatch }, patches)\n }\n // Add more entity types as needed\n // if (entitiesByType.product) { ... }\n // if (entitiesByType.version) { ... }\n // etc.\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n // TODO: task is not found here, why?\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksByParent' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds?.includes(taskOperation.data.folderId)\n ) {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n } else {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\nconst invalidateOverviewTasks = (\n tasks: PatchOperation[],\n {\n dispatch,\n }: {\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n) => {\n if (!tasks.length) return\n dispatch(getOverviewApi.util.invalidateTags(getOverviewTaskTags(tasks)))\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nconst operationDataToDetailsData = (\n data: Record<string, any>,\n entityType: DetailsPanelEntityType,\n): DeepPartial<DetailsPanelEntityData> => {\n const sharedData: DeepPartial<DetailsPanelEntityData> = {\n name: data.name,\n attrib: data.attrib,\n status: data.status,\n tags: data.tags,\n label: data.label,\n updatedAt: data.updatedAt,\n createdAt: data.createdAt,\n hasReviewables: data.hasReviewables,\n thumbnailId: data.thumbnailId,\n }\n\n switch (entityType) {\n case 'task':\n return {\n ...sharedData,\n task: {\n assignees: data.assignees,\n label: data.label,\n name: data.name,\n taskType: data.taskType,\n },\n }\n case 'folder':\n return {\n ...sharedData,\n folder: {\n id: data.id,\n name: data.name,\n label: data.label,\n folderType: data.folderType,\n },\n }\n case 'version':\n return {\n ...sharedData,\n version: {\n id: data.id,\n name: data.name,\n },\n }\n case 'representation':\n return {\n ...sharedData,\n }\n }\n}\n\nexport const patchDetailsPanelEntity = (\n operations: PatchOperation[] = [],\n draft: DetailsPanelEntityData,\n) => {\n // find the entity we are updating from the draft\n const operation = operations.find((op) => op.entityId === draft.id)\n const operationData = operation?.data\n\n if (!operationData || operation.entityType === 'product' || operation.entityType === 'workfile')\n return console.warn('No operation data found or entity type not supported')\n\n // transform the data to match the details panel entity data\n const detailsPanelData = operationDataToDetailsData(operationData, operation.entityType)\n\n // If this is a folder and name is being updated, also update the path\n if (operation.entityType === 'folder' && operationData.name && draft.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = draft.path.split('/')\n pathParts[pathParts.length - 1] = operationData.name\n detailsPanelData.path = pathParts.join('/')\n }\n\n // helper to deep‐clean undefined values\n function cleanUndefined(obj: any): void {\n Object.entries(obj).forEach(([key, val]) => {\n if (val === undefined) {\n delete obj[key]\n } else if (val !== null && typeof val === 'object') {\n cleanUndefined(val)\n }\n })\n }\n\n // remove all undefineds at root and nested levels\n cleanUndefined(detailsPanelData as Record<string, any>)\n\n const newData: DeepPartial<DetailsPanelEntityData> = {\n ...draft,\n ...detailsPanelData,\n attrib: {\n ...(draft?.attrib || {}),\n ...detailsPanelData.attrib,\n },\n folder: {\n ...(draft?.folder || {}),\n ...detailsPanelData.folder,\n },\n task: {\n ...(draft?.task || {}),\n ...detailsPanelData.task,\n },\n version: {\n ...(draft?.version || {}),\n ...detailsPanelData.version,\n },\n }\n\n // patch data onto the entity\n Object.assign(draft, newData)\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [], projectName },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks\n patchOverviewTasks(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for tasks being created and deleted\n invalidateOverviewTasks([...deleteOps], {\n dispatch,\n })\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders\n patchOverviewFolders(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for folders being created and deleted\n if (deleteOps.length) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // patch versions\n if (operationsByType.version?.length) {\n patchVersions(operationsByType.version, { state, dispatch }, patches)\n }\n\n // patch products\n if (operationsByType.product?.length) {\n patchProducts(operationsByType.product, { state, dispatch }, patches)\n }\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // Background refetch logic - runs after successful mutation\n // This ensures calculated attributes are up-to-date and entities are correctly filtered\n\n const taskOperations = operationsByType.task || []\n const folderOperations = operationsByType.folder || []\n\n // Early exit if no operations\n if (taskOperations.length === 0 && folderOperations.length === 0) {\n return\n }\n\n // Extract updated entity IDs (always needed for refetch)\n const updatedTaskIds = getUpdatedEntityIds(taskOperations)\n const updatedFolderIds = getUpdatedEntityIds(folderOperations)\n\n // Get all active task list cache entries\n const overviewTaskTags = updatedTaskIds.map((id) => ({ type: 'overviewTask', id }))\n const tasksListInfiniteEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getTasksListInfinite')\n\n // Requirement: \"refetch the full data for the specific entity/entities\"\n // For each cache with its own filter, fetch entities and update that cache\n if (updatedTaskIds.length > 0 && projectName) {\n // Process getTasksListInfinite caches\n for (const entry of tasksListInfiniteEntries) {\n await refetchTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n\n // Process getOverviewTasksByFolders caches\n // Use selectInvalidatedBy to get only caches that contain the updated tasks\n const overviewTasksEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getOverviewTasksByFolders')\n\n for (const entry of overviewTasksEntries) {\n await refetchOverviewTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n }\n\n // Always refetch folders if they were updated (for calculated attributes)\n // Not conditional on affectsFilter - requirement says \"always refetch entities\"\n // Only invalidate if we haven't already done so for delete operations\n const hasDeleteOps = (operationsByType.folder || []).some(\n (op: OperationModel) => op.type === 'delete',\n )\n if (updatedFolderIds.length > 0 && projectName && !hasDeleteOps) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {\n type Tags = { id: string; type: string }[]\n const userDashboardTags: Tags = [{ type: 'kanban', id: 'project-' + projectName }],\n taskProgressTags: Tags = [],\n entityListItemTags: Tags = []\n\n operationsRequestModel.operations?.forEach((op) => {\n const { entityId } = op\n if (entityId) {\n taskProgressTags.push({ type: 'progress', id: entityId })\n // Invalidate list item cache for this entity to trigger background refetch\n entityListItemTags.push({ type: 'entityListItem', id: entityId })\n } else {\n // new entity created, so we should invalidate everything\n taskProgressTags.push({ type: 'progress', id: 'LIST' })\n }\n })\n\n return [...userDashboardTags, ...taskProgressTags, ...entityListItemTags]\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\n"],"names":["updateEntityWithOperation","entity","operationData","key","existingLinks","newLinks","newLink","existingIndex","link","linksToDelete","linkId","getOverviewTaskTags","tasks","op","_a","getOverviewFolderTags","folders","createLinkDeletionPatch","entityId","entityType","linkIds","deleteLinksFromEntities","entities","patchOverviewEntities","state","dispatch","patches","entitiesByType","acc","patchOverviewTasks","patchOverviewFolders","tags","taskEntries","getOverviewApi","entry","tasksPatch","draft","taskOperation","page","task","patchTask","tasksArrayDraft","draftArray","invalidateOverviewTasks","folderEntries","foldersQueries","folderPatch","folderMap","folder","folderOperation","operationDataToDetailsData","data","sharedData","patchDetailsPanelEntity","operations","operation","detailsPanelData","pathParts","cleanUndefined","obj","val","newData","patchListItems","entries","entityListsQueriesGql","listItemsPatch","listOperation","item","splitByOpType","operationsEnhanced","operationsApi","operationsApiEnhancedInjected","build","arg","uniqueErrors","uniqueErrorCodes","e","operationsRequestModel","patchOperations","projectName","queryFulfilled","getState","operationsByType","_b","deleteOps","update","updatesToPatch","dep","_c","patchExtraTasks","patchExtraFolders","_d","patchVersions","_e","patchProducts","entityTags","entitiesTags","tag","invalidateEntryPanel","detailsPanelQueries","detailsPanelEntityCaches","detailsPanelEntitiesCaches","entitiesDetailsResult","taskOperations","folderOperations","updatedTaskIds","getUpdatedEntityIds","updatedFolderIds","overviewTaskTags","id","tasksListInfiniteEntries","refetchTasksForCacheEntry","overviewTasksEntries","refetchOverviewTasksForCacheEntry","hasDeleteOps","patch","_r","userDashboardTags","taskProgressTags","entityListItemTags","useUpdateOverviewEntitiesMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateOverview.cjs.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import {\n foldersQueries,\n detailsPanelQueries,\n operationsApi,\n entityListsQueriesGql,\n} from '@shared/api'\nimport type { OperationsResponseModel, OperationModel, OperationsApiArg } from '@shared/api'\nimport getOverviewApi from './getOverview'\nimport { DetailsPanelEntityData, DetailsPanelEntityType } from '@shared/api/queries/entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport { getUpdatedEntityIds } from './filterRefetchUtils'\nimport {\n refetchTasksForCacheEntry,\n refetchOverviewTasksForCacheEntry,\n} from './refetchFilteredEntities'\nimport { patchVersions } from './patchVersions'\nimport { patchProducts } from './patchProducts'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n // Update top-level properties directly\n Object.keys(operationData).forEach((key) => {\n if (key === 'attrib' || key === 'links' || key === 'deleteLinks') return\n entity[key] = operationData[key]\n })\n\n // Handle attrib merging\n if (operationData.attrib) {\n entity.attrib = {\n ...entity.attrib,\n ...operationData.attrib,\n }\n }\n\n // Handle links merging\n if (operationData.links) {\n const existingLinks = entity.links || []\n const newLinks = operationData.links || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Process links directly\n entity.links = [...existingLinks]\n\n newLinks.forEach((newLink: any) => {\n const existingIndex = entity.links.findIndex((link: any) => link.id === newLink.id)\n\n if (existingIndex !== -1) {\n entity.links[existingIndex] = { ...entity.links[existingIndex], ...newLink }\n } else {\n entity.links.push(newLink)\n }\n })\n }\n\n // Handle links deletion\n if (operationData.deleteLinks) {\n const linksToDelete = operationData.deleteLinks || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Remove links by ID\n linksToDelete.forEach((linkId: string) => {\n entity.links = entity.links.filter((link: any) => link.id !== linkId)\n })\n }\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\n// Helper function to create a patch operation for deleting links\nexport const createLinkDeletionPatch = (\n entityId: string,\n entityType: OperationModel['entityType'],\n linkIds: string[],\n): PatchOperation => {\n return {\n entityId,\n entityType,\n type: 'update',\n data: { deleteLinks: linkIds },\n }\n}\n\n// Utility function to delete specific links by ID from entities\nexport const deleteLinksFromEntities = (\n entities: { entityId: string; entityType: OperationModel['entityType'] }[],\n linkIds: string[],\n): PatchOperation[] => {\n return entities.map((entity) =>\n createLinkDeletionPatch(entity.entityId, entity.entityType, linkIds),\n )\n}\n\n// Generic helper function to patch entities based on their type\nexport const patchOverviewEntities = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n // Group entities by type\n const entitiesByType = entities.reduce((acc, entity) => {\n if (!acc[entity.entityType]) {\n acc[entity.entityType] = []\n }\n acc[entity.entityType].push(entity)\n return acc\n }, {} as Record<string, PatchOperation[]>)\n\n // Patch each entity type using the appropriate function\n if (entitiesByType.task) {\n patchOverviewTasks(entitiesByType.task, { state, dispatch }, patches)\n }\n if (entitiesByType.folder) {\n patchOverviewFolders(entitiesByType.folder, { state, dispatch }, patches)\n }\n // Add more entity types as needed\n // if (entitiesByType.product) { ... }\n // if (entitiesByType.version) { ... }\n // etc.\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n // TODO: task is not found here, why?\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksByParent' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds?.includes(taskOperation.data.folderId)\n ) {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n } else {\n const patchTask = (tasksArrayDraft: EditorTaskNode[]) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n const draftArray = draft.tasks\n patchTask(draftArray)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\nconst invalidateOverviewTasks = (\n tasks: PatchOperation[],\n {\n dispatch,\n }: {\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n) => {\n if (!tasks.length) return\n dispatch(getOverviewApi.util.invalidateTags(getOverviewTaskTags(tasks)))\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>\n }\n : T\n\nconst operationDataToDetailsData = (\n data: Record<string, any>,\n entityType: DetailsPanelEntityType,\n): DeepPartial<DetailsPanelEntityData> => {\n const sharedData: DeepPartial<DetailsPanelEntityData> = {\n name: data.name,\n attrib: data.attrib,\n status: data.status,\n tags: data.tags,\n label: data.label,\n updatedAt: data.updatedAt,\n createdAt: data.createdAt,\n hasReviewables: data.hasReviewables,\n thumbnailId: data.thumbnailId,\n }\n\n switch (entityType) {\n case 'task':\n return {\n ...sharedData,\n task: {\n assignees: data.assignees,\n label: data.label,\n name: data.name,\n taskType: data.taskType,\n },\n }\n case 'folder':\n return {\n ...sharedData,\n folder: {\n id: data.id,\n name: data.name,\n label: data.label,\n folderType: data.folderType,\n },\n }\n case 'version':\n return {\n ...sharedData,\n version: {\n id: data.id,\n name: data.name,\n },\n }\n case 'representation':\n return {\n ...sharedData,\n }\n }\n}\n\nexport const patchDetailsPanelEntity = (\n operations: PatchOperation[] = [],\n draft: DetailsPanelEntityData,\n) => {\n // find the entity we are updating from the draft\n const operation = operations.find((op) => op.entityId === draft.id)\n const operationData = operation?.data\n\n if (!operationData || operation.entityType === 'product' || operation.entityType === 'workfile')\n return console.warn('No operation data found or entity type not supported')\n\n // transform the data to match the details panel entity data\n const detailsPanelData = operationDataToDetailsData(operationData, operation.entityType)\n\n // If this is a folder and name is being updated, also update the path\n if (operation.entityType === 'folder' && operationData.name && draft.path) {\n // Construct new path by replacing the last segment with the new name\n const pathParts = draft.path.split('/')\n pathParts[pathParts.length - 1] = operationData.name\n detailsPanelData.path = pathParts.join('/')\n }\n\n // helper to deep‐clean undefined values\n function cleanUndefined(obj: any): void {\n Object.entries(obj).forEach(([key, val]) => {\n if (val === undefined) {\n delete obj[key]\n } else if (val !== null && typeof val === 'object') {\n cleanUndefined(val)\n }\n })\n }\n\n // remove all undefineds at root and nested levels\n cleanUndefined(detailsPanelData as Record<string, any>)\n\n const newData: DeepPartial<DetailsPanelEntityData> = {\n ...draft,\n ...detailsPanelData,\n attrib: {\n ...(draft?.attrib || {}),\n ...detailsPanelData.attrib,\n },\n folder: {\n ...(draft?.folder || {}),\n ...detailsPanelData.folder,\n },\n task: {\n ...(draft?.task || {}),\n ...detailsPanelData.task,\n },\n version: {\n ...(draft?.version || {}),\n ...detailsPanelData.version,\n },\n }\n\n // patch data onto the entity\n Object.assign(draft, newData)\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n // Check if the network request itself failed (offline, timeout, etc.)\n if (result.error) {\n return { error: result.error as FetchBaseQueryError }\n }\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [], projectName },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks\n patchOverviewTasks(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for tasks being created and deleted\n invalidateOverviewTasks([...deleteOps], {\n dispatch,\n })\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders\n patchOverviewFolders(updatesToPatch, { state, dispatch }, patches)\n // invalidate the caches for folders being created and deleted\n if (deleteOps.length) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // patch versions\n if (operationsByType.version?.length) {\n patchVersions(operationsByType.version, { state, dispatch }, patches)\n }\n\n // patch products\n if (operationsByType.product?.length) {\n patchProducts(operationsByType.product, { state, dispatch }, patches)\n }\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // Background refetch logic - runs after successful mutation\n // This ensures calculated attributes are up-to-date and entities are correctly filtered\n\n const taskOperations = operationsByType.task || []\n const folderOperations = operationsByType.folder || []\n\n // Early exit if no operations\n if (taskOperations.length === 0 && folderOperations.length === 0) {\n return\n }\n\n // Extract updated entity IDs (always needed for refetch)\n const updatedTaskIds = getUpdatedEntityIds(taskOperations)\n const updatedFolderIds = getUpdatedEntityIds(folderOperations)\n\n // Get all active task list cache entries\n const overviewTaskTags = updatedTaskIds.map((id) => ({ type: 'overviewTask', id }))\n const tasksListInfiniteEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getTasksListInfinite')\n\n // Requirement: \"refetch the full data for the specific entity/entities\"\n // For each cache with its own filter, fetch entities and update that cache\n if (updatedTaskIds.length > 0 && projectName) {\n // Process getTasksListInfinite caches\n for (const entry of tasksListInfiniteEntries) {\n await refetchTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n\n // Process getOverviewTasksByFolders caches\n // Use selectInvalidatedBy to get only caches that contain the updated tasks\n const overviewTasksEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getOverviewTasksByFolders')\n\n for (const entry of overviewTasksEntries) {\n await refetchOverviewTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n }\n\n // Always refetch folders if they were updated (for calculated attributes)\n // Not conditional on affectsFilter - requirement says \"always refetch entities\"\n // Only invalidate if we haven't already done so for delete operations\n const hasDeleteOps = (operationsByType.folder || []).some(\n (op: OperationModel) => op.type === 'delete',\n )\n if (updatedFolderIds.length > 0 && projectName && !hasDeleteOps) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {\n type Tags = { id: string; type: string }[]\n const userDashboardTags: Tags = [{ type: 'kanban', id: 'project-' + projectName }],\n taskProgressTags: Tags = [],\n entityListItemTags: Tags = []\n\n operationsRequestModel.operations?.forEach((op) => {\n const { entityId } = op\n if (entityId) {\n taskProgressTags.push({ type: 'progress', id: entityId })\n // Invalidate list item cache for this entity to trigger background refetch\n entityListItemTags.push({ type: 'entityListItem', id: entityId })\n } else {\n // new entity created, so we should invalidate everything\n taskProgressTags.push({ type: 'progress', id: 'LIST' })\n }\n })\n\n return [...userDashboardTags, ...taskProgressTags, ...entityListItemTags]\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\n"],"names":["updateEntityWithOperation","entity","operationData","key","existingLinks","newLinks","newLink","existingIndex","link","linksToDelete","linkId","getOverviewTaskTags","tasks","op","_a","getOverviewFolderTags","folders","createLinkDeletionPatch","entityId","entityType","linkIds","deleteLinksFromEntities","entities","patchOverviewEntities","state","dispatch","patches","entitiesByType","acc","patchOverviewTasks","patchOverviewFolders","tags","taskEntries","getOverviewApi","entry","tasksPatch","draft","taskOperation","page","task","patchTask","tasksArrayDraft","draftArray","invalidateOverviewTasks","folderEntries","foldersQueries","folderPatch","folderMap","folder","folderOperation","operationDataToDetailsData","data","sharedData","patchDetailsPanelEntity","operations","operation","detailsPanelData","pathParts","cleanUndefined","obj","val","newData","patchListItems","entries","entityListsQueriesGql","listItemsPatch","listOperation","item","splitByOpType","operationsEnhanced","operationsApi","operationsApiEnhancedInjected","build","arg","result","uniqueErrors","uniqueErrorCodes","e","operationsRequestModel","patchOperations","projectName","queryFulfilled","getState","operationsByType","_b","deleteOps","update","updatesToPatch","dep","_c","patchExtraTasks","patchExtraFolders","_d","patchVersions","_e","patchProducts","entityTags","entitiesTags","tag","invalidateEntryPanel","detailsPanelQueries","detailsPanelEntityCaches","detailsPanelEntitiesCaches","entitiesDetailsResult","taskOperations","folderOperations","updatedTaskIds","getUpdatedEntityIds","updatedFolderIds","overviewTaskTags","id","tasksListInfiniteEntries","refetchTasksForCacheEntry","overviewTasksEntries","refetchOverviewTasksForCacheEntry","hasDeleteOps","patch","_r","userDashboardTags","taskProgressTags","entityListItemTags","useUpdateOverviewEntitiesMutation"],"mappings":"ksHAuBMA,EAA4B,CAACC,EAAaC,IAAuB,CAgBrE,GAdA,OAAO,KAAKA,CAAa,EAAE,QAASC,GAAQ,CACtCA,IAAQ,UAAYA,IAAQ,SAAWA,IAAQ,gBAC5CF,EAAAE,CAAG,EAAID,EAAcC,CAAG,EAAA,CAChC,EAGGD,EAAc,SAChBD,EAAO,OAAS,CACd,GAAGA,EAAO,OACV,GAAGC,EAAc,MACnB,GAIEA,EAAc,MAAO,CACjB,MAAAE,EAAgBH,EAAO,OAAS,CAAC,EACjCI,EAAWH,EAAc,OAAS,CAAC,EAGpCD,EAAO,QAAOA,EAAO,MAAQ,CAAC,GAG5BA,EAAA,MAAQ,CAAC,GAAGG,CAAa,EAEvBC,EAAA,QAASC,GAAiB,CAC3B,MAAAC,EAAgBN,EAAO,MAAM,UAAWO,GAAcA,EAAK,KAAOF,EAAQ,EAAE,EAE9EC,IAAkB,GACbN,EAAA,MAAMM,CAAa,EAAI,CAAE,GAAGN,EAAO,MAAMM,CAAa,EAAG,GAAGD,CAAQ,EAEpEL,EAAA,MAAM,KAAKK,CAAO,CAC3B,CACD,CAAA,CAIH,GAAIJ,EAAc,YAAa,CACvB,MAAAO,EAAgBP,EAAc,aAAe,CAAC,EAG/CD,EAAO,QAAOA,EAAO,MAAQ,CAAC,GAGrBQ,EAAA,QAASC,GAAmB,CACjCT,EAAA,MAAQA,EAAO,MAAM,OAAQO,GAAcA,EAAK,KAAOE,CAAM,CAAA,CACrE,CAAA,CAEL,EAEMC,EAAuBC,GACpB,CACL,CAAE,KAAM,eAAgB,GAAI,MAAO,EACnC,GAAGA,EAAM,IAAKC,IAAQ,CAAE,KAAM,eAAgB,GAAIA,EAAG,QAAA,EAAW,EAEhE,GAAGD,EACA,OAAQC,GAAO,OAAA,OAAAC,EAAAD,EAAG,OAAH,YAAAC,EAAS,YAAW,EACnC,IAAKD,GAAQ,OAAA,OACZ,KAAM,eACN,IAAIC,EAAAD,EAAG,OAAH,YAAAC,EAAS,WAAA,EACb,CACN,EAGIC,EAAyBC,GACtB,CACL,GAAGA,EAAQ,IAAKH,IAAQ,CAAE,KAAM,SAAU,GAAIA,EAAG,QAAA,EAAW,EAE5D,GAAGG,EACA,OAAQH,GAAO,OAAA,OAAAC,EAAAD,EAAG,OAAH,YAAAC,EAAS,YAAW,EACnC,IAAKD,GAAQ,OAAA,OACZ,KAAM,SACN,IAAIC,EAAAD,EAAG,OAAH,YAAAC,EAAS,WAAA,EACb,CACN,EAQWG,EAA0B,CACrCC,EACAC,EACAC,KAEO,CACL,SAAAF,EACA,WAAAC,EACA,KAAM,SACN,KAAM,CAAE,YAAaC,CAAQ,CAC/B,GAIWC,EAA0B,CACrCC,EACAF,IAEOE,EAAS,IAAKrB,GACnBgB,EAAwBhB,EAAO,SAAUA,EAAO,WAAYmB,CAAO,CACrE,EAIWG,EAAwB,CACnCD,EACA,CACE,MAAAE,EACA,SAAAC,CACF,EAIAC,IACG,CAEH,MAAMC,EAAiBL,EAAS,OAAO,CAACM,EAAK3B,KACtC2B,EAAI3B,EAAO,UAAU,IACpB2B,EAAA3B,EAAO,UAAU,EAAI,CAAC,GAE5B2B,EAAI3B,EAAO,UAAU,EAAE,KAAKA,CAAM,EAC3B2B,GACN,EAAsC,EAGrCD,EAAe,MACjBE,EAAmBF,EAAe,KAAM,CAAE,MAAAH,EAAO,SAAAC,GAAYC,CAAO,EAElEC,EAAe,QACjBG,EAAqBH,EAAe,OAAQ,CAAE,MAAAH,EAAO,SAAAC,GAAYC,CAAO,CAM5E,EAEaG,EAAqB,CAChCjB,EACA,CACE,MAAAY,EACA,SAAAC,CACF,EAIAC,IACG,CACG,MAAAK,EAAOpB,EAAoBC,CAAK,EAChCoB,EAAcC,EAAAA,QAAe,KAAK,oBAAoBT,EAAOO,CAAI,EAEvE,UAAWG,KAASF,EACd,GAAAE,EAAM,eAAiB,uBAAwB,CAEjD,MAAMC,EAAaV,EACjBQ,UAAe,KAAK,gBAAgB,uBAAwBC,EAAM,aAAeE,GAAU,CAEzF,UAAWC,KAAiBzB,EAC1B,GAAIyB,EAAc,OAAS,UAAYA,EAAc,KAGnDD,EAAM,MAAM,CAAC,EAAE,MAAM,KAAKC,EAAc,IAAI,MAGjC,WAAAC,KAAQF,EAAM,MAAO,CAExB,MAAAG,EAAOD,EAAK,MAAM,KAAMC,GAASA,EAAK,KAAOF,EAAc,QAAQ,EACrEE,GACwBvC,EAAAuC,EAAMF,EAAc,IAAI,CACpD,CAIP,CAAA,CACH,EAGAX,GAAA,MAAAA,EAAS,KAAKS,EAAU,KACnB,CAGL,MAAMA,EAAaV,EACjBQ,UAAe,KAAK,gBAClBC,EAAM,aACNA,EAAM,aACLE,GAAU,OAET,UAAWC,KAAiBzB,EAC1B,GACEyB,EAAc,OAAS,UACvBA,EAAc,QACdvB,EAAAoB,EAAM,aAAa,YAAnB,MAAApB,EAA8B,SAASuB,EAAc,KAAK,WAC1D,CACM,MAAAG,EAAaC,GAAsC,CAEvCA,EAAA,KAAKJ,EAAc,IAAI,CACzC,EAGI,GAAA,MAAM,QAAQD,CAAK,EACrBI,EAAUJ,CAAK,UACNA,EAAM,OAAS,MAAM,QAAQA,EAAM,KAAK,EAAG,CAEpD,MAAMM,EAAaN,EAAM,MACzBI,EAAUE,CAAU,CAAA,CACtB,KACK,CACC,MAAAF,EAAaC,GAAsC,CACjD,MAAAF,EAAOE,EAAgB,KAAMF,GAASA,EAAK,KAAOF,EAAc,QAAQ,EAC1EE,GACwBvC,EAAAuC,EAAMF,EAAc,IAAI,CAEtD,EAGI,GAAA,MAAM,QAAQD,CAAK,EACrBI,EAAUJ,CAAK,UACNA,EAAM,OAAS,MAAM,QAAQA,EAAM,KAAK,EAAG,CAEpD,MAAMM,EAAaN,EAAM,MACzBI,EAAUE,CAAU,CAAA,CACtB,CAEJ,CACF,CAEJ,EAEAhB,GAAA,MAAAA,EAAS,KAAKS,EAAU,CAG9B,EAEMQ,EAA0B,CAC9B/B,EACA,CACE,SAAAa,CACF,IAGG,CACEb,EAAM,QACXa,EAASQ,UAAe,KAAK,eAAetB,EAAoBC,CAAK,CAAC,CAAC,CACzE,EAEakB,EAAuB,CAClCd,EACA,CACE,MAAAQ,EACA,SAAAC,CACF,EAIAC,IACG,CACH,MAAMkB,EAAgBC,EAAA,eAAe,KAClC,oBAAoBrB,EAAOT,EAAsBC,CAAO,CAAC,EACzD,OAAQkB,GAAUA,EAAM,eAAiB,eAAe,EAC3D,UAAWA,KAASU,EAAe,CACjC,MAAME,EAAcrB,EAClBoB,iBAAe,KAAK,gBAClBX,EAAM,aACNA,EAAM,aACLE,GAAU,CAEH,MAAAW,MAAgB,IAChBX,EAAA,QAAQ,QAASY,GAAW,CACtBD,EAAA,IAAIC,EAAO,GAAIA,CAAM,CAAA,CAChC,EAED,UAAWC,KAAmBjC,EAC5B,GAAIiC,EAAgB,OAAS,UAAYA,EAAgB,KAGjDb,EAAA,QAAQ,KAAKa,EAAgB,IAAI,MAClC,CACL,MAAMD,EAASD,EAAU,IAAIE,EAAgB,QAAQ,EAEjDD,GACwBhD,EAAAgD,EAAQC,EAAgB,IAAI,CACxD,CAEJ,CACF,CAEJ,EAEAvB,GAAA,MAAAA,EAAS,KAAKoB,EAAW,CAE7B,EAQMI,EAA6B,CACjCC,EACAhC,IACwC,CACxC,MAAMiC,EAAkD,CACtD,KAAMD,EAAK,KACX,OAAQA,EAAK,OACb,OAAQA,EAAK,OACb,KAAMA,EAAK,KACX,MAAOA,EAAK,MACZ,UAAWA,EAAK,UAChB,UAAWA,EAAK,UAChB,eAAgBA,EAAK,eACrB,YAAaA,EAAK,WACpB,EAEA,OAAQhC,EAAY,CAClB,IAAK,OACI,MAAA,CACL,GAAGiC,EACH,KAAM,CACJ,UAAWD,EAAK,UAChB,MAAOA,EAAK,MACZ,KAAMA,EAAK,KACX,SAAUA,EAAK,QAAA,CAEnB,EACF,IAAK,SACI,MAAA,CACL,GAAGC,EACH,OAAQ,CACN,GAAID,EAAK,GACT,KAAMA,EAAK,KACX,MAAOA,EAAK,MACZ,WAAYA,EAAK,UAAA,CAErB,EACF,IAAK,UACI,MAAA,CACL,GAAGC,EACH,QAAS,CACP,GAAID,EAAK,GACT,KAAMA,EAAK,IAAA,CAEf,EACF,IAAK,iBACI,MAAA,CACL,GAAGC,CACL,CAAA,CAEN,EAEaC,EAA0B,CACrCC,EAA+B,GAC/BlB,IACG,CAEG,MAAAmB,EAAYD,EAAW,KAAMzC,GAAOA,EAAG,WAAauB,EAAM,EAAE,EAC5DlC,EAAgBqD,GAAA,YAAAA,EAAW,KAEjC,GAAI,CAACrD,GAAiBqD,EAAU,aAAe,WAAaA,EAAU,aAAe,WAC5E,OAAA,QAAQ,KAAK,sDAAsD,EAG5E,MAAMC,EAAmBN,EAA2BhD,EAAeqD,EAAU,UAAU,EAGvF,GAAIA,EAAU,aAAe,UAAYrD,EAAc,MAAQkC,EAAM,KAAM,CAEzE,MAAMqB,EAAYrB,EAAM,KAAK,MAAM,GAAG,EACtCqB,EAAUA,EAAU,OAAS,CAAC,EAAIvD,EAAc,KAC/BsD,EAAA,KAAOC,EAAU,KAAK,GAAG,CAAA,CAI5C,SAASC,EAAeC,EAAgB,CAC/B,OAAA,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACxD,EAAKyD,CAAG,IAAM,CACtCA,IAAQ,OACV,OAAOD,EAAIxD,CAAG,EACLyD,IAAQ,MAAQ,OAAOA,GAAQ,UACxCF,EAAeE,CAAG,CACpB,CACD,CAAA,CAIHF,EAAeF,CAAuC,EAEtD,MAAMK,EAA+C,CACnD,GAAGzB,EACH,GAAGoB,EACH,OAAQ,CACN,IAAIpB,GAAA,YAAAA,EAAO,SAAU,CAAC,EACtB,GAAGoB,EAAiB,MACtB,EACA,OAAQ,CACN,IAAIpB,GAAA,YAAAA,EAAO,SAAU,CAAC,EACtB,GAAGoB,EAAiB,MACtB,EACA,KAAM,CACJ,IAAIpB,GAAA,YAAAA,EAAO,OAAQ,CAAC,EACpB,GAAGoB,EAAiB,IACtB,EACA,QAAS,CACP,IAAIpB,GAAA,YAAAA,EAAO,UAAW,CAAC,EACvB,GAAGoB,EAAiB,OAAA,CAExB,EAGO,OAAA,OAAOpB,EAAOyB,CAAO,CAC9B,EAEMC,GAAiB,CACrBxC,EACA,CACE,MAAAE,EACA,SAAAC,CACF,EAIAC,IACG,CACG,MAAAK,EAAOT,EAAS,IAAKT,IAAQ,CAAE,KAAM,iBAAkB,GAAIA,EAAG,QAAW,EAAA,EACzEkD,EAAUC,EAAAA,QAAsB,KAAK,oBAAoBxC,EAAOO,CAAI,EAE1E,UAAWG,KAAS6B,EACd,GAAA7B,EAAM,eAAiB,uBAAwB,CACjD,MAAM+B,EAAiBxC,EACrBuC,UAAsB,KAAK,gBACzB,uBACA9B,EAAM,aACLE,GAAU,CAET,UAAW8B,KAAiB5C,EAC1B,GAAI4C,EAAc,OAAS,UAAYA,EAAc,KAExC,UAAA5B,KAAQF,EAAM,MAAO,CACxB,MAAA+B,EAAO7B,EAAK,MAAM,KAAM6B,GAASA,EAAK,WAAaD,EAAc,QAAQ,EAC3EC,GACwBnE,EAAAmE,EAAMD,EAAc,IAAI,CACpD,CAGN,CACF,CAEJ,EAGAxC,GAAA,MAAAA,EAAS,KAAKuC,EAAc,CAGlC,EAEMG,EAAiBd,GACdA,EAAW,OAChB,CAAC1B,EAAuD2B,KACtD3B,EAAI2B,EAAU,IAAI,EAAE,KAAKA,CAAS,EAC3B3B,GAET,CACE,OAAQ,CAAC,EACT,OAAQ,CAAC,EACT,OAAQ,CAAA,CAAC,CAEb,EAGIyC,EAAqBC,MAAc,iBAAiB,CACxD,UAAW,CACT,WAAY,CAAA,CAAC,CAEjB,CAAC,EAOKC,GAAgCF,EAAmB,gBAAgB,CACvE,UAAYG,IAAW,CACrB,uBAAwBA,EAAM,SAG5B,CACA,MAAM,QAAQC,EAAK,CAAE,SAAAhD,GAAY,CAC3B,GAAA,CACI,MAAAiD,EAAS,MAAMjD,EAAS4C,EAAmB,UAAU,WAAW,SAASI,CAAG,CAAC,EAGnF,GAAIC,EAAO,MACF,MAAA,CAAE,MAAOA,EAAO,KAA6B,EAGtD,MAAMvB,EAAOuB,EAAO,KAEdC,MAAmB,IACnBC,MAAuB,IAC7B,UAAW/D,KAAMsC,GAAA,YAAAA,EAAM,aAAc,CAAA,EAC/BtC,EAAG,UAAY,IAASA,EAAG,SACxB8D,EAAa,IAAI9D,EAAG,MAAM,GAChB8D,EAAA,IAAI9D,EAAG,MAAM,EAEvB+D,EAAiB,IAAI/D,EAAG,SAAS,GACnB+D,EAAA,IAAI/D,EAAG,SAAS,GAKnC,OAAA8D,EAAa,KAAO,EAMf,CAAE,MALK,CACZ,OAAQ,cACR,MAAO,MAAM,KAAKA,CAAY,EAAE,KAAK,IAAI,EACzC,WAAY,MAAM,KAAKC,CAAgB,CACzC,CACe,EAER,CAAE,KAAAzB,CAAK,QAET0B,EAAQ,CACf,eAAQ,MAAMA,CAAC,EAER,CAAE,MADK,CAAE,OAAQ,cAAe,MAAOA,EAAE,OAAQ,CACzC,CAAA,CAEnB,EACA,MAAM,eACJ,CAAE,uBAAAC,EAAwB,gBAAAC,EAAkB,CAAI,EAAA,YAAAC,CAChD,EAAA,CAAE,SAAAvD,EAAU,eAAAwD,EAAgB,SAAAC,GAC5B,eACI,GAAA,GAACpE,EAAAgE,EAAuB,aAAvB,MAAAhE,EAAmC,QAAQ,OAC1C,KAAA,CAAE,WAAAwC,GAAewB,EAEjBK,EAAmB7B,EAAW,OAClC,CAAC1B,EAA6D2B,KAC5D3B,EAAI2B,EAAU,UAAU,EAAE,KAAKA,CAAS,EACjC3B,GAET,CACE,KAAM,CAAC,EACP,OAAQ,CAAC,EACT,QAAS,CAAC,EACV,QAAS,CAAC,EACV,eAAgB,CAAC,EACjB,SAAU,CAAA,CAAC,CAEf,EAGMJ,EAAQ0D,EAAS,EACjBxD,EAAiB,CAAC,EAGpB,IAAA0D,EAAAD,EAAiB,OAAjB,MAAAC,EAAuB,OAAQ,CAEjC,KAAM,CAAE,OAAQC,EAAW,OAAAC,CAAW,EAAAlB,EAAce,EAAiB,IAAI,EAEnEI,EAAiBD,EAAO,OAC3BzE,GAAO,CAACkE,EAAgB,KAAMS,GAAQA,EAAI,WAAa3E,EAAG,QAAQ,CACrE,EAEAgB,EAAmB0D,EAAgB,CAAE,MAAA/D,EAAO,SAAAC,CAAA,EAAYC,CAAO,EAEvCiB,EAAA,CAAC,GAAG0C,CAAS,EAAG,CACtC,SAAA5D,CAAA,CACD,CAAA,CAIC,IAAAgE,EAAAN,EAAiB,SAAjB,MAAAM,EAAyB,OAAQ,CAEnC,KAAM,CAAE,OAAQJ,EAAW,OAAAC,CAAW,EAAAlB,EAAce,EAAiB,MAAM,EAErEI,EAAiBD,EAAO,OAC3BzE,GAAO,CAACkE,EAAgB,KAAMS,GAAQA,EAAI,WAAa3E,EAAG,QAAQ,CACrE,EAEAiB,EAAqByD,EAAgB,CAAE,MAAA/D,EAAO,SAAAC,CAAA,EAAYC,CAAO,EAE7D2D,EAAU,QACH5D,EAAAoB,EAAA,eAAe,KAAK,eAAe,CAAC,CAAE,KAAM,SAAU,GAAI,MAAQ,CAAA,CAAC,CAAC,CAC/E,CAGF,MAAM6C,EAAkBX,EAAgB,OAAQlE,GAAOA,EAAG,aAAe,MAAM,EACzE8E,EAAoBZ,EAAgB,OAAQlE,GAAOA,EAAG,aAAe,QAAQ,EAE/E6E,EAAgB,QAElB7D,EAAmB6D,EAAiB,CAAE,MAAAlE,EAAO,SAAAC,CAAA,EAAYC,CAAO,EAG9DiE,EAAkB,QAEpB7D,EAAqB6D,EAAmB,CAAE,MAAAnE,EAAO,SAAAC,CAAA,EAAYC,CAAO,EAIvDoC,GAAA,CAAC,GAAGR,EAAY,GAAGyB,CAAe,EAAG,CAAE,MAAAvD,EAAO,SAAAC,CAAS,EAAGC,CAAO,GAG5EkE,EAAAT,EAAiB,UAAjB,MAAAS,EAA0B,QAC5BC,EAAA,cAAcV,EAAiB,QAAS,CAAE,MAAA3D,EAAO,SAAAC,GAAYC,CAAO,GAIlEoE,EAAAX,EAAiB,UAAjB,MAAAW,EAA0B,QAC5BC,EAAA,cAAcZ,EAAiB,QAAS,CAAE,MAAA3D,EAAO,SAAAC,GAAYC,CAAO,EAMtE,MAAMsE,EAAa1C,EAAW,IAAKzC,IAAQ,CACzC,GAAIA,EAAG,SACP,KAAMA,EAAG,UAAA,EACT,EACIoF,EAAeD,EAAW,IAAKE,IAAS,CAC5C,KAAM,WACN,GAAIA,EAAI,EAAA,EACR,EAGIC,EAAuB,IAC3B1E,EAAS2E,EAAAA,oBAAoB,KAAK,eAAeH,CAAY,CAAC,EAI1DI,EAA2BD,sBAAoB,KAAK,oBACxD5E,EACAwE,CACF,EAGMM,EAA6BF,sBAAoB,KAAK,oBAC1D5E,EACAyE,CACF,EAEA,UAAW/D,KAASoE,EAA4B,CAC1C,GAAApE,EAAM,eAAiB,0BAA2B,SACtD,MAAMqE,EAAwB9E,EAC5B2E,sBAAoB,KAAK,gBACvBlE,EAAM,aACNA,EAAM,aACLE,GAAU,CACT,UAAWnC,KAAUmC,EACnBiB,EAAwBC,EAAYrD,CAAM,CAC5C,CACF,CAEJ,EAGAyB,EAAQ,KAAK6E,CAAqB,CAAA,CAGhC,GAAA,CACI,MAAAtB,EAKA,MAAAuB,EAAiBrB,EAAiB,MAAQ,CAAC,EAC3CsB,EAAmBtB,EAAiB,QAAU,CAAC,EAGrD,GAAIqB,EAAe,SAAW,GAAKC,EAAiB,SAAW,EAC7D,OAII,MAAAC,EAAiBC,sBAAoBH,CAAc,EACnDI,EAAmBD,sBAAoBF,CAAgB,EAGvDI,EAAmBH,EAAe,IAAKI,IAAQ,CAAE,KAAM,eAAgB,GAAAA,CAAA,EAAK,EAC5EC,EAA2B9E,EAAA,QAAe,KAC7C,oBAAoBT,EAAOqF,CAAgB,EAC3C,OAAQ3E,GAAUA,EAAM,eAAiB,sBAAsB,EAI9D,GAAAwE,EAAe,OAAS,GAAK1B,EAAa,CAE5C,UAAW9C,KAAS6E,EAClB,MAAMC,4BAA0B,CAC9B,SAAAvF,EACA,YAAAuD,EACA,eAAA0B,EACA,WAAYxE,CAAA,CACb,EAKH,MAAM+E,EAAuBhF,EAAA,QAAe,KACzC,oBAAoBT,EAAOqF,CAAgB,EAC3C,OAAQ3E,GAAUA,EAAM,eAAiB,2BAA2B,EAEvE,UAAWA,KAAS+E,EAClB,MAAMC,oCAAkC,CACtC,SAAAzF,EACA,YAAAuD,EACA,eAAA0B,EACA,WAAYxE,CAAA,CACb,CACH,CAMF,MAAMiF,GAAgBhC,EAAiB,QAAU,CAAI,GAAA,KAClDtE,GAAuBA,EAAG,OAAS,QACtC,EACI+F,EAAiB,OAAS,GAAK5B,GAAe,CAACmC,GACxC1F,EAAAoB,EAAA,eAAe,KAAK,eAAe,CAAC,CAAE,KAAM,SAAU,GAAI,MAAQ,CAAA,CAAC,CAAC,OAEjE,CAEd,UAAWuE,KAAS1F,EAClB0F,EAAM,KAAK,EAGTf,EAAyB,QAGNF,EAAA,CACvB,CAEJ,EACA,gBAAiB,CAACkB,EAAIvB,EAAI,CAAE,uBAAAhB,EAAwB,YAAAE,KAAkB,OAEpE,MAAMsC,EAA0B,CAAC,CAAE,KAAM,SAAU,GAAI,WAAatC,CAAa,CAAA,EAC/EuC,EAAyB,CAAC,EAC1BC,EAA2B,CAAC,EAEP,OAAA1G,EAAAgE,EAAA,aAAA,MAAAhE,EAAY,QAASD,GAAO,CAC3C,KAAA,CAAE,SAAAK,GAAaL,EACjBK,GACFqG,EAAiB,KAAK,CAAE,KAAM,WAAY,GAAIrG,EAAU,EAExDsG,EAAmB,KAAK,CAAE,KAAM,iBAAkB,GAAItG,EAAU,GAGhEqG,EAAiB,KAAK,CAAE,KAAM,WAAY,GAAI,OAAQ,CACxD,GAGK,CAAC,GAAGD,EAAmB,GAAGC,EAAkB,GAAGC,CAAkB,CAAA,CAE3E,CAAA,CACH,EACF,CAAC,EAEY,CAAE,kCAAAC,IAAsClD"}