@ynput/ayon-frontend-shared 0.2.39 → 0.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/api.cjs.js +1 -1
  5. package/dist/api.es.js +256 -248
  6. package/dist/api.es.js.map +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.es.js +11 -9
  9. package/dist/index.es.js.map +1 -1
  10. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  11. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  12. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
  13. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  14. package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
  15. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
  16. package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
  17. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
  18. package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
  19. package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
  20. package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
  21. package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
  22. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  23. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  24. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  25. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  27. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  28. package/dist/shared/src/api/queries/entities/updateEntity.es.js +5 -3
  29. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  31. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  32. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
  33. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  34. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  35. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  36. package/dist/shared/src/api/queries/overview/updateOverview.es.js +68 -66
  37. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  39. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  40. package/dist/shared/src/api/queries/users/getUsers.es.js +34 -32
  41. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  42. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
  43. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
  44. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
  45. package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
  46. package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
  47. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  48. package/dist/shared/src/components/Chips/Chips.es.js +44 -38
  49. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  51. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  53. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  54. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  55. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  56. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
  57. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  58. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  59. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  60. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  61. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  62. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  63. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  64. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  65. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  66. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  67. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  68. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  69. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  74. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  75. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
  77. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  78. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  79. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  81. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  82. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  83. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  84. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +28 -25
  85. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  86. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  88. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
  89. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  90. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
  91. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  92. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  93. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  94. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  95. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  96. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  97. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  98. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  99. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
  107. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  108. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  109. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  110. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  111. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  112. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  113. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  114. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  115. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  116. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  117. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  118. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  119. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  121. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  122. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  129. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  131. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  133. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  135. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  136. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  137. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  139. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  141. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  142. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
  143. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  147. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  148. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  149. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  150. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  151. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  152. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  153. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  154. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  155. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  156. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  157. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  161. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
  163. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  165. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +4 -2
  191. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  194. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  195. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  198. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  199. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  200. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  201. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  203. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  215. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  225. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  227. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  237. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  239. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -2
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  251. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  255. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
  259. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -2
  267. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +30 -28
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -2
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  319. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
  323. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +31 -28
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  332. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  333. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
  335. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  336. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  337. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
  339. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  340. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  341. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  343. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  344. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  345. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
  347. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  348. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  349. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
  351. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  352. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  353. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  355. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  356. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  357. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  359. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  360. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
  363. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  364. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  365. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  367. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  368. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  369. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  370. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  371. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  372. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  373. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  374. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  375. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  376. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  377. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  378. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  379. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  380. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  381. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  382. package/dist/shared/src/context/PowerpackContext.es.js +8 -6
  383. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  384. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  385. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  386. package/dist/shared/src/context/ProjectContext.es.js +44 -38
  387. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  388. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  389. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  390. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  391. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  392. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  393. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  394. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  395. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  396. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  397. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  398. package/dist/shared/src/context/UriContext.es.js +7 -5
  399. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  401. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  402. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  403. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  404. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  405. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  406. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  407. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  408. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  409. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  410. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  411. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  412. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  413. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  414. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  415. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  416. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  417. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  418. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  419. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  420. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  421. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  422. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  423. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  424. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  425. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  426. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  427. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  428. package/dist/types/api/queries/config/getConfig.d.ts +747 -0
  429. package/dist/types/api/queries/config/index.d.ts +2 -0
  430. package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
  431. package/dist/types/api/queries/index.d.ts +1 -0
  432. package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
  433. package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
  434. package/dist/types/components/Chips/Chips.d.ts +1 -0
  435. package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
  436. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useMoveEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useMoveEntities.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport {\n OperationModel,\n OperationResponseModel,\n useUpdateOverviewEntitiesMutation,\n} from '@shared/api'\nimport { useProjectTableContext } from '@shared/containers'\nimport {\n useMoveEntityContext,\n EntityMoveData,\n MultiEntityMoveData,\n} from '@shared/context/MoveEntityContext'\nimport { useProjectFoldersContext } from '@shared/context'\n\nexport type EntityType = 'folder' | 'task'\n\ninterface UseMoveEntitiesProps {\n projectName: string\n}\n\nexport const useMoveEntities = ({ projectName }: UseMoveEntitiesProps) => {\n const {\n movingEntities,\n isEntityPickerOpen,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n } = useMoveEntityContext()\n const [updateOverviewEntities] = useUpdateOverviewEntitiesMutation()\n\n // Get project context for entity data\n const { tableData, getEntityById } = useProjectTableContext()\n\n // Get folder data to check hasVersions property\n const { folders } = useProjectFoldersContext()\n\n // Action dispatchers\n const openMoveDialogHandler = useCallback(\n (entityData: EntityMoveData | MultiEntityMoveData) => {\n openMoveDialog(entityData)\n },\n [openMoveDialog],\n )\n\n const closeMoveDialogHandler = useCallback(() => {\n closeMoveDialog()\n }, [closeMoveDialog])\n\n // Move submit handler\n const handleMoveSubmit = useCallback(\n async (selectedFolderIds: string[]) => {\n if (!movingEntities || selectedFolderIds.length === 0) return\n\n const targetFolderId = selectedFolderIds[0]\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data:\n entity.entityType === 'folder'\n ? { parentId: targetFolderId }\n : { folderId: targetFolderId },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entity:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities'\n\n // Improve specific error messages for better UX\n if (errorMessage.includes('already exists')) {\n // For multiple entities, provide a more general message\n if (movingEntities.entities.length > 1) {\n errorMessage = `Cannot move some entities - one or more entities with the same name already exist in the target location`\n } else {\n const entity = movingEntities.entities[0]\n if (entity.entityType === 'task') {\n // Extract task name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const taskName = nameMatch ? nameMatch[1] : 'this task'\n errorMessage = `Cannot move \"${taskName}\" - a task with this name already exists in the target folder`\n } else {\n // Extract folder name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const folderName = nameMatch ? nameMatch[1] : 'this folder'\n errorMessage = `Cannot move \"${folderName}\" - a folder with this name already exists in the target location`\n }\n }\n }\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n },\n [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ],\n )\n\n // Move to root handler\n const handleMoveToRoot = useCallback(async () => {\n if (!movingEntities) return\n\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities to move to root (null parentId/folderId)\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-to-root-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data: entity.entityType === 'folder' ? { parentId: null } : { folderId: null },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entities to root:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities to root'\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n }, [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ])\n\n // Get disabled folder IDs\n const getDisabledFolderIds = useCallback((): string[] => {\n if (!movingEntities) return []\n const disabledIds: string[] = []\n\n // Add the entities being moved themselves to prevent moving to themselves\n movingEntities.entities.forEach((entity: EntityMoveData) => {\n disabledIds.push(entity.entityId)\n })\n\n // Add folders where name conflicts would occur\n folders.forEach((targetFolder) => {\n // Check if any moving entity has the same name as existing children in this folder\n const hasNameConflict = movingEntities.entities.some((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (hasNameConflict) {\n disabledIds.push(targetFolder.id)\n }\n })\n\n return [...new Set(disabledIds)]\n }, [movingEntities, folders, tableData, getEntityById])\n\n // Get disabled message for a folder\n const getDisabledMessage = useCallback(\n (folderId: string): string | undefined => {\n if (!movingEntities) return undefined\n\n // 1. Check if this folder is the entity being moved itself.\n const isEntityItself = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder' && entity.entityId === folderId,\n )\n\n if (isEntityItself) {\n return 'Cannot move folder to itself'\n }\n\n // 2. Check if this is the current parent folder.\n const isCurrentParent = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.currentParentId === folderId,\n )\n\n if (isCurrentParent) {\n return 'Cannot move to the same location'\n }\n\n // 4. Check for name conflicts - entity with same name already exists in target folder\n const targetFolder = folders.find((folder) => folder.id === folderId)\n if (targetFolder) {\n const conflictingEntity = movingEntities.entities.find((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (conflictingEntity) {\n const entityData = getEntityById(conflictingEntity.entityId)\n const entityName = entityData?.name || 'Entity'\n return `Cannot move \"${entityName}\" - an entity with the same name already exists in this folder`\n }\n }\n\n // 5. Check if the target is a child folder (simplified check)\n const isChildFolder = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )\n\n if (isChildFolder) {\n return 'Cannot move folder to its child'\n }\n\n // Default message\n return 'Cannot move to this location'\n },\n [movingEntities, folders, tableData, getEntityById],\n )\n\n // Check if we can show \"Move to root\" option\n const canMoveToRoot = useMemo(() => {\n return (\n movingEntities?.entities.every((entity: EntityMoveData) => entity.entityType === 'folder') ||\n false\n )\n }, [movingEntities])\n\n return {\n // State\n movingEntities,\n isEntityPickerOpen,\n\n // Actions (keeping legacy names for compatibility)\n isDialogOpen: isEntityPickerOpen,\n openMoveDialog: openMoveDialogHandler,\n closeMoveDialog: closeMoveDialogHandler,\n handleMoveSubmit,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n canMoveToRoot,\n }\n}\n"],"names":["useMoveEntities","projectName","movingEntities","isEntityPickerOpen","openMoveDialog","closeMoveDialog","setEntityPickerOpen","clearMovingEntities","useMoveEntityContext","updateOverviewEntities","useUpdateOverviewEntitiesMutation","tableData","getEntityById","useProjectTableContext","folders","useProjectFoldersContext","openMoveDialogHandler","useCallback","entityData","closeMoveDialogHandler","handleMoveSubmit","selectedFolderIds","targetFolderId","moveOperations","entity","index","result","failedOperations","_a","op","errorDetails","error","errorMessage","_b","nameMatch","toast","handleMoveToRoot","getDisabledFolderIds","disabledIds","targetFolder","movingEntity","movingEntityData","sibling","getDisabledMessage","folderId","folder","conflictingEntity","canMoveToRoot","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"useMoveEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useMoveEntities.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport {\n OperationModel,\n OperationResponseModel,\n useUpdateOverviewEntitiesMutation,\n} from '@shared/api'\nimport { useProjectTableContext } from '@shared/containers'\nimport {\n useMoveEntityContext,\n EntityMoveData,\n MultiEntityMoveData,\n} from '@shared/context/MoveEntityContext'\nimport { useProjectFoldersContext } from '@shared/context'\n\nexport type EntityType = 'folder' | 'task'\n\ninterface UseMoveEntitiesProps {\n projectName: string\n}\n\nexport const useMoveEntities = ({ projectName }: UseMoveEntitiesProps) => {\n const {\n movingEntities,\n isEntityPickerOpen,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n } = useMoveEntityContext()\n const [updateOverviewEntities] = useUpdateOverviewEntitiesMutation()\n\n // Get project context for entity data\n const { tableData, getEntityById } = useProjectTableContext()\n\n // Get folder data to check hasVersions property\n const { folders } = useProjectFoldersContext()\n\n // Action dispatchers\n const openMoveDialogHandler = useCallback(\n (entityData: EntityMoveData | MultiEntityMoveData) => {\n openMoveDialog(entityData)\n },\n [openMoveDialog],\n )\n\n const closeMoveDialogHandler = useCallback(() => {\n closeMoveDialog()\n }, [closeMoveDialog])\n\n // Move submit handler\n const handleMoveSubmit = useCallback(\n async (selectedFolderIds: string[]) => {\n if (!movingEntities || selectedFolderIds.length === 0) return\n\n const targetFolderId = selectedFolderIds[0]\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data:\n entity.entityType === 'folder'\n ? { parentId: targetFolderId }\n : { folderId: targetFolderId },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entity:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities'\n\n // Improve specific error messages for better UX\n if (errorMessage.includes('already exists')) {\n // For multiple entities, provide a more general message\n if (movingEntities.entities.length > 1) {\n errorMessage = `Cannot move some entities - one or more entities with the same name already exist in the target location`\n } else {\n const entity = movingEntities.entities[0]\n if (entity.entityType === 'task') {\n // Extract task name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const taskName = nameMatch ? nameMatch[1] : 'this task'\n errorMessage = `Cannot move \"${taskName}\" - a task with this name already exists in the target folder`\n } else {\n // Extract folder name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const folderName = nameMatch ? nameMatch[1] : 'this folder'\n errorMessage = `Cannot move \"${folderName}\" - a folder with this name already exists in the target location`\n }\n }\n }\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n },\n [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ],\n )\n\n // Move to root handler\n const handleMoveToRoot = useCallback(async () => {\n if (!movingEntities) return\n\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities to move to root (null parentId/folderId)\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-to-root-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data: entity.entityType === 'folder' ? { parentId: null } : { folderId: null },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entities to root:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities to root'\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n }, [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ])\n\n // Get disabled folder IDs\n const getDisabledFolderIds = useCallback((): string[] => {\n if (!movingEntities) return []\n const disabledIds: string[] = []\n\n // Add the entities being moved themselves to prevent moving to themselves\n movingEntities.entities.forEach((entity: EntityMoveData) => {\n disabledIds.push(entity.entityId)\n })\n\n // Add folders where name conflicts would occur\n folders.forEach((targetFolder) => {\n // Check if any moving entity has the same name as existing children in this folder\n const hasNameConflict = movingEntities.entities.some((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (hasNameConflict) {\n disabledIds.push(targetFolder.id)\n }\n })\n\n return [...new Set(disabledIds)]\n }, [movingEntities, folders, tableData, getEntityById])\n\n // Get disabled message for a folder\n const getDisabledMessage = useCallback(\n (folderId: string): string | undefined => {\n if (!movingEntities) return undefined\n\n // 1. Check if this folder is the entity being moved itself.\n const isEntityItself = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder' && entity.entityId === folderId,\n )\n\n if (isEntityItself) {\n return 'Cannot move folder to itself'\n }\n\n // 2. Check if this is the current parent folder.\n const isCurrentParent = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.currentParentId === folderId,\n )\n\n if (isCurrentParent) {\n return 'Cannot move to the same location'\n }\n\n // 4. Check for name conflicts - entity with same name already exists in target folder\n const targetFolder = folders.find((folder) => folder.id === folderId)\n if (targetFolder) {\n const conflictingEntity = movingEntities.entities.find((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (conflictingEntity) {\n const entityData = getEntityById(conflictingEntity.entityId)\n const entityName = entityData?.name || 'Entity'\n return `Cannot move \"${entityName}\" - an entity with the same name already exists in this folder`\n }\n }\n\n // 5. Check if the target is a child folder (simplified check)\n const isChildFolder = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )\n\n if (isChildFolder) {\n return 'Cannot move folder to its child'\n }\n\n // Default message\n return 'Cannot move to this location'\n },\n [movingEntities, folders, tableData, getEntityById],\n )\n\n // Check if we can show \"Move to root\" option\n const canMoveToRoot = useMemo(() => {\n return (\n movingEntities?.entities.every((entity: EntityMoveData) => entity.entityType === 'folder') ||\n false\n )\n }, [movingEntities])\n\n return {\n // State\n movingEntities,\n isEntityPickerOpen,\n\n // Actions (keeping legacy names for compatibility)\n isDialogOpen: isEntityPickerOpen,\n openMoveDialog: openMoveDialogHandler,\n closeMoveDialog: closeMoveDialogHandler,\n handleMoveSubmit,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n canMoveToRoot,\n }\n}\n"],"names":["useMoveEntities","projectName","movingEntities","isEntityPickerOpen","openMoveDialog","closeMoveDialog","setEntityPickerOpen","clearMovingEntities","useMoveEntityContext","updateOverviewEntities","useUpdateOverviewEntitiesMutation","tableData","getEntityById","useProjectTableContext","folders","useProjectFoldersContext","openMoveDialogHandler","useCallback","entityData","closeMoveDialogHandler","handleMoveSubmit","selectedFolderIds","targetFolderId","moveOperations","entity","index","result","failedOperations","_a","op","errorDetails","error","errorMessage","_b","nameMatch","toast","handleMoveToRoot","getDisabledFolderIds","disabledIds","targetFolder","movingEntity","movingEntityData","sibling","getDisabledMessage","folderId","folder","conflictingEntity","canMoveToRoot","useMemo"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const w=require("react");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const M=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const o=require("../../../components/LinksManager/utils/linkUpdates.cjs.js"),N=require("../context/ProjectTableContext.cjs.js");require("lodash");const A=require("react-toastify"),x=require("../../../util/getEntityId.cjs.js");require("../../../util/pubsub.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const R=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("date-fns");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../ProjectTreeTable.cjs.js");const S=require("../context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("uuid");const $=D=>{const{projectName:b}=R.useProjectContext(),{getEntityById:L}=N.useProjectTableContext(),s=b,{history:I}=S.useCellEditing(),[f]=M.useDeleteEntityLinkMutation(),[g]=M.useCreateEntityLinkMutation();return{pasteTableLinks:w.useCallback(async P=>{if(!s||!P.length)return;const c=new Map;for(const i of P){const u=`${i.sourceEntityId}-${i.linkType}-${i.direction}`;c.has(u)||c.set(u,[]),c.get(u).push(i)}const k=[],a=[],d=[];for(const[,i]of c){const{sourceEntityId:u}=i[0],n=new Set;if(i.forEach(q=>q.targetEntityIds.forEach(e=>n.add(e))),n.has(u)){A.toast.error("You can't link an entity to itself");return}}for(const[i,u]of c){const n=u[0],{sourceEntityId:q,sourceEntityType:e,linkType:y,direction:p,targetEntityType:h,operation:j}=n,m=new Set;u.forEach(r=>{r.targetEntityIds.forEach(t=>m.add(t))});const l=[],T=[],C=L(q);if(!C){console.warn(`Entity not found: ${q}`);continue}const E=C.links;if(j==="replace"){if(Array.isArray(E))for(const r of E)r.entityType===h&&r.direction===p&&r.linkType===y.split("|")[0]&&T.push({id:r.id,target:{entityId:r.node.id,entityType:r.entityType},source:{entityId:q,entityType:e},linkType:y,direction:p,projectName:s});for(const r of m){const t=x.getEntityId();l.push({targetEntityId:r,linkId:t,sourceEntityId:q,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}else if(j==="merge"){const r=new Set;Array.isArray(E)&&E.forEach(t=>{t.entityType===h&&t.direction===p&&t.linkType===y&&r.add(t.node.id)}),console.log(r);for(const t of m)if(!r.has(t)){const v=x.getEntityId();l.push({targetEntityId:t,linkId:v,sourceEntityId:q,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}T.length>0&&(k.push(o.removeMultipleLinks(T,f)),d.push(...T)),l.length>0&&(k.push(o.addMultipleLinks(l,g)),a.push(...l))}try{if(await Promise.all(k),I&&(a.length>0||d.length>0)){const i=a.map(e=>({id:e.linkId,projectName:e.projectName,linkType:e.linkType,direction:e.direction,target:{entityId:e.targetEntityId,entityType:e.targetEntityType},source:{entityId:e.sourceEntityId,entityType:e.sourceEntityType}})),u=d.map(e=>({targetEntityId:e.target.entityId,linkId:e.id,sourceEntityId:e.source.entityId,sourceEntityType:e.source.entityType,targetEntityType:e.target.entityType,linkType:e.linkType,direction:e.direction,projectName:e.projectName})),n=()=>{const e=[];i.length&&e.push(o.removeMultipleLinks(i,f)),u.length&&e.push(o.addMultipleLinks(u,g)),e.length&&Promise.all(e).catch(()=>{})},q=()=>{const e=[];d.length&&e.push(o.removeMultipleLinks(d,f)),a.length&&e.push(o.addMultipleLinks(a,g)),e.length&&Promise.all(e).catch(()=>{})};I.pushHistory([n],[q])}}catch(i){throw i}},[s,L,f,g,I])}};module.exports=$;
1
+ "use strict";const w=require("react");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");const M=require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const o=require("../../../components/LinksManager/utils/linkUpdates.cjs.js"),N=require("../context/ProjectTableContext.cjs.js");require("lodash");const A=require("react-toastify"),x=require("../../../util/getEntityId.cjs.js");require("../../../util/pubsub.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const R=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("date-fns");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../ProjectTreeTable.cjs.js");const S=require("../context/CellEditingContext.cjs.js");require("short-uuid");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("uuid");const $=D=>{const{projectName:b}=R.useProjectContext(),{getEntityById:L}=N.useProjectTableContext(),s=b,{history:I}=S.useCellEditing(),[f]=M.useDeleteEntityLinkMutation(),[g]=M.useCreateEntityLinkMutation();return{pasteTableLinks:w.useCallback(async P=>{if(!s||!P.length)return;const c=new Map;for(const i of P){const u=`${i.sourceEntityId}-${i.linkType}-${i.direction}`;c.has(u)||c.set(u,[]),c.get(u).push(i)}const k=[],a=[],d=[];for(const[,i]of c){const{sourceEntityId:u}=i[0],n=new Set;if(i.forEach(q=>q.targetEntityIds.forEach(e=>n.add(e))),n.has(u)){A.toast.error("You can't link an entity to itself");return}}for(const[i,u]of c){const n=u[0],{sourceEntityId:q,sourceEntityType:e,linkType:y,direction:p,targetEntityType:h,operation:j}=n,m=new Set;u.forEach(r=>{r.targetEntityIds.forEach(t=>m.add(t))});const l=[],T=[],C=L(q);if(!C){console.warn(`Entity not found: ${q}`);continue}const E=C.links;if(j==="replace"){if(Array.isArray(E))for(const r of E)r.entityType===h&&r.direction===p&&r.linkType===y.split("|")[0]&&T.push({id:r.id,target:{entityId:r.node.id,entityType:r.entityType},source:{entityId:q,entityType:e},linkType:y,direction:p,projectName:s});for(const r of m){const t=x.getEntityId();l.push({targetEntityId:r,linkId:t,sourceEntityId:q,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}else if(j==="merge"){const r=new Set;Array.isArray(E)&&E.forEach(t=>{t.entityType===h&&t.direction===p&&t.linkType===y&&r.add(t.node.id)}),console.log(r);for(const t of m)if(!r.has(t)){const v=x.getEntityId();l.push({targetEntityId:t,linkId:v,sourceEntityId:q,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}T.length>0&&(k.push(o.removeMultipleLinks(T,f)),d.push(...T)),l.length>0&&(k.push(o.addMultipleLinks(l,g)),a.push(...l))}try{if(await Promise.all(k),I&&(a.length>0||d.length>0)){const i=a.map(e=>({id:e.linkId,projectName:e.projectName,linkType:e.linkType,direction:e.direction,target:{entityId:e.targetEntityId,entityType:e.targetEntityType},source:{entityId:e.sourceEntityId,entityType:e.sourceEntityType}})),u=d.map(e=>({targetEntityId:e.target.entityId,linkId:e.id,sourceEntityId:e.source.entityId,sourceEntityType:e.source.entityType,targetEntityType:e.target.entityType,linkType:e.linkType,direction:e.direction,projectName:e.projectName})),n=()=>{const e=[];i.length&&e.push(o.removeMultipleLinks(i,f)),u.length&&e.push(o.addMultipleLinks(u,g)),e.length&&Promise.all(e).catch(()=>{})},q=()=>{const e=[];d.length&&e.push(o.removeMultipleLinks(d,f)),a.length&&e.push(o.addMultipleLinks(a,g)),e.length&&Promise.all(e).catch(()=>{})};I.pushHistory([n],[q])}}catch(i){throw i}},[s,L,f,g,I])}};module.exports=$;
2
2
  //# sourceMappingURL=usePasteLinks.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePasteLinks.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/usePasteLinks.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '@shared/components/LinksManager/utils/linkUpdates'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityId } from '@shared/util'\nimport { PasteMethod } from '../context'\nimport { useCellEditing } from '@shared/containers'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\n/**\n * Represents a link update operation for table links\n */\nexport type LinkUpdate = {\n /** Row ID in the table */\n rowId: string\n /** ID of the source entity (the entity that will have links) */\n sourceEntityId: string\n /** Type of the source entity (e.g., 'folder', 'task') */\n sourceEntityType: string\n /** Type of link (e.g., 'workflow', 'dependency') */\n linkType: string\n /** Direction of the link from source entity perspective */\n direction: 'in' | 'out'\n /** Type of the target entities that will be linked */\n targetEntityType: string\n /**\n * Operation type:\n * - 'replace': Remove all existing links of this type and add new ones\n * - 'merge': Keep existing links and add new ones (skip duplicates)\n */\n operation: PasteMethod\n /** Array of target entity IDs to link to */\n targetEntityIds: string[]\n}\n\nexport type PasteTableLinks = (linkUpdates: LinkUpdate[]) => Promise<void>\n\ninterface usePasteLinksProps {\n projectName?: string\n}\n\nconst usePasteLinks = (props?: usePasteLinksProps) => {\n const { projectName: contextProjectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const projectName = props?.projectName || contextProjectName\n const { history } = useCellEditing()\n\n // Add mutation hooks for link operations\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // Handle link updates using the utility functions\n const pasteTableLinks = useCallback<PasteTableLinks>(\n async (linkUpdates: LinkUpdate[]) => {\n if (!projectName || !linkUpdates.length) return\n\n // Group operations by entity and link type for processing\n const operationsToProcess = new Map<string, LinkUpdate[]>()\n\n for (const update of linkUpdates) {\n const key = `${update.sourceEntityId}-${update.linkType}-${update.direction}`\n if (!operationsToProcess.has(key)) {\n operationsToProcess.set(key, [])\n }\n operationsToProcess.get(key)!.push(update)\n }\n\n const updatePromises: Promise<void>[] = []\n // Collect all adds/removes across all operations to build a single history entry\n const addedInPaste: LinkToAdd[] = []\n const removedInPaste: LinkToRemove[] = []\n\n // Pre-flight validation: detect any self-referential links across the whole paste\n for (const [, updates] of operationsToProcess) {\n const { sourceEntityId } = updates[0]\n const targets = new Set<string>()\n updates.forEach((u) => u.targetEntityIds.forEach((id) => targets.add(id)))\n if (targets.has(sourceEntityId)) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n }\n // Process each unique entity-linkType-direction combination\n for (const [key, updates] of operationsToProcess) {\n const firstUpdate = updates[0]\n const {\n sourceEntityId,\n sourceEntityType,\n linkType,\n direction,\n targetEntityType,\n operation,\n } = firstUpdate\n\n // Collect all target entity IDs from all updates for this combination\n const allTargetEntityIds = new Set<string>()\n updates.forEach((update) => {\n update.targetEntityIds.forEach((id) => allTargetEntityIds.add(id))\n })\n\n const linksToAdd: LinkToAdd[] = []\n const linksToRemove: LinkToRemove[] = []\n\n // Get current links for this entity and link type\n const entityData = getEntityById(sourceEntityId)\n if (!entityData) {\n console.warn(`Entity not found: ${sourceEntityId}`)\n continue\n }\n\n // Get current links for this link type and direction\n const currentLinks = entityData.links\n\n if (operation === 'replace') {\n // Remove all current links of this (linkType + direction + targetEntityType) only.\n if (Array.isArray(currentLinks)) {\n for (const link of currentLinks) {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType.split('|')[0]\n ) {\n linksToRemove.push({\n id: link.id,\n target: {\n entityId: link.node.id,\n entityType: link.entityType,\n },\n source: { entityId: sourceEntityId, entityType: sourceEntityType },\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n // Add all new links\n for (const targetEntityId of allTargetEntityIds) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n } else if (operation === 'merge') {\n // Get existing target entity IDs for this (linkType + direction + targetEntityType)\n const existingTargetIds = new Set<string>()\n if (Array.isArray(currentLinks)) {\n currentLinks.forEach((link) => {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType\n ) {\n existingTargetIds.add(link.node.id)\n }\n })\n }\n\n console.log(existingTargetIds)\n\n // Only add links that don't already exist\n for (const targetEntityId of allTargetEntityIds) {\n if (!existingTargetIds.has(targetEntityId)) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n if (linksToRemove.length > 0) {\n updatePromises.push(removeMultipleLinks(linksToRemove, deleteLink))\n removedInPaste.push(...linksToRemove)\n }\n if (linksToAdd.length > 0) {\n updatePromises.push(addMultipleLinks(linksToAdd, addLink))\n addedInPaste.push(...linksToAdd)\n }\n }\n try {\n // Execute all link operations in parallel\n await Promise.all(updatePromises)\n\n // Push a single history entry that undoes BOTH: remove added links and re-add removed links\n if (history && (addedInPaste.length > 0 || removedInPaste.length > 0)) {\n // Prepare inverse operations for undo\n const addedToRemove: LinkToRemove[] = addedInPaste.map((link) => ({\n id: link.linkId,\n projectName: link.projectName,\n linkType: link.linkType,\n direction: link.direction,\n target: { entityId: link.targetEntityId, entityType: link.targetEntityType },\n source: { entityId: link.sourceEntityId, entityType: link.sourceEntityType },\n }))\n\n const removedToAdd: LinkToAdd[] = removedInPaste.map((link) => ({\n targetEntityId: link.target.entityId,\n linkId: link.id,\n sourceEntityId: link.source.entityId,\n sourceEntityType: link.source.entityType,\n targetEntityType: link.target.entityType,\n linkType: link.linkType,\n direction: link.direction,\n projectName: link.projectName,\n }))\n\n // Single callbacks to keep history atomic\n const undoCallback = () => {\n const tasks: Promise<void>[] = []\n if (addedToRemove.length) tasks.push(removeMultipleLinks(addedToRemove, deleteLink))\n if (removedToAdd.length) tasks.push(addMultipleLinks(removedToAdd, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n const redoCallback = () => {\n const tasks: Promise<void>[] = []\n if (removedInPaste.length) tasks.push(removeMultipleLinks(removedInPaste, deleteLink))\n if (addedInPaste.length) tasks.push(addMultipleLinks(addedInPaste, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n history.pushHistory([undoCallback], [redoCallback])\n }\n } catch (error) {\n throw error\n }\n },\n [projectName, getEntityById, deleteLink, addLink, history],\n )\n\n return { pasteTableLinks }\n}\n\nexport default usePasteLinks\n"],"names":["usePasteLinks","props","contextProjectName","useProjectContext","getEntityById","useProjectTableContext","projectName","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","useCallback","linkUpdates","operationsToProcess","update","key","updatePromises","addedInPaste","removedInPaste","updates","sourceEntityId","targets","u","id","toast","firstUpdate","sourceEntityType","linkType","direction","targetEntityType","operation","allTargetEntityIds","linksToAdd","linksToRemove","entityData","currentLinks","link","targetEntityId","linkId","getEntityId","existingTargetIds","removeMultipleLinks","addMultipleLinks","addedToRemove","removedToAdd","undoCallback","tasks","redoCallback","error"],"mappings":"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"}
1
+ {"version":3,"file":"usePasteLinks.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/usePasteLinks.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '@shared/components/LinksManager/utils/linkUpdates'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityId } from '@shared/util'\nimport { PasteMethod } from '../context'\nimport { useCellEditing } from '@shared/containers'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\n/**\n * Represents a link update operation for table links\n */\nexport type LinkUpdate = {\n /** Row ID in the table */\n rowId: string\n /** ID of the source entity (the entity that will have links) */\n sourceEntityId: string\n /** Type of the source entity (e.g., 'folder', 'task') */\n sourceEntityType: string\n /** Type of link (e.g., 'workflow', 'dependency') */\n linkType: string\n /** Direction of the link from source entity perspective */\n direction: 'in' | 'out'\n /** Type of the target entities that will be linked */\n targetEntityType: string\n /**\n * Operation type:\n * - 'replace': Remove all existing links of this type and add new ones\n * - 'merge': Keep existing links and add new ones (skip duplicates)\n */\n operation: PasteMethod\n /** Array of target entity IDs to link to */\n targetEntityIds: string[]\n}\n\nexport type PasteTableLinks = (linkUpdates: LinkUpdate[]) => Promise<void>\n\ninterface usePasteLinksProps {\n projectName?: string\n}\n\nconst usePasteLinks = (props?: usePasteLinksProps) => {\n const { projectName: contextProjectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const projectName = props?.projectName || contextProjectName\n const { history } = useCellEditing()\n\n // Add mutation hooks for link operations\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // Handle link updates using the utility functions\n const pasteTableLinks = useCallback<PasteTableLinks>(\n async (linkUpdates: LinkUpdate[]) => {\n if (!projectName || !linkUpdates.length) return\n\n // Group operations by entity and link type for processing\n const operationsToProcess = new Map<string, LinkUpdate[]>()\n\n for (const update of linkUpdates) {\n const key = `${update.sourceEntityId}-${update.linkType}-${update.direction}`\n if (!operationsToProcess.has(key)) {\n operationsToProcess.set(key, [])\n }\n operationsToProcess.get(key)!.push(update)\n }\n\n const updatePromises: Promise<void>[] = []\n // Collect all adds/removes across all operations to build a single history entry\n const addedInPaste: LinkToAdd[] = []\n const removedInPaste: LinkToRemove[] = []\n\n // Pre-flight validation: detect any self-referential links across the whole paste\n for (const [, updates] of operationsToProcess) {\n const { sourceEntityId } = updates[0]\n const targets = new Set<string>()\n updates.forEach((u) => u.targetEntityIds.forEach((id) => targets.add(id)))\n if (targets.has(sourceEntityId)) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n }\n // Process each unique entity-linkType-direction combination\n for (const [key, updates] of operationsToProcess) {\n const firstUpdate = updates[0]\n const {\n sourceEntityId,\n sourceEntityType,\n linkType,\n direction,\n targetEntityType,\n operation,\n } = firstUpdate\n\n // Collect all target entity IDs from all updates for this combination\n const allTargetEntityIds = new Set<string>()\n updates.forEach((update) => {\n update.targetEntityIds.forEach((id) => allTargetEntityIds.add(id))\n })\n\n const linksToAdd: LinkToAdd[] = []\n const linksToRemove: LinkToRemove[] = []\n\n // Get current links for this entity and link type\n const entityData = getEntityById(sourceEntityId)\n if (!entityData) {\n console.warn(`Entity not found: ${sourceEntityId}`)\n continue\n }\n\n // Get current links for this link type and direction\n const currentLinks = entityData.links\n\n if (operation === 'replace') {\n // Remove all current links of this (linkType + direction + targetEntityType) only.\n if (Array.isArray(currentLinks)) {\n for (const link of currentLinks) {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType.split('|')[0]\n ) {\n linksToRemove.push({\n id: link.id,\n target: {\n entityId: link.node.id,\n entityType: link.entityType,\n },\n source: { entityId: sourceEntityId, entityType: sourceEntityType },\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n // Add all new links\n for (const targetEntityId of allTargetEntityIds) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n } else if (operation === 'merge') {\n // Get existing target entity IDs for this (linkType + direction + targetEntityType)\n const existingTargetIds = new Set<string>()\n if (Array.isArray(currentLinks)) {\n currentLinks.forEach((link) => {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType\n ) {\n existingTargetIds.add(link.node.id)\n }\n })\n }\n\n console.log(existingTargetIds)\n\n // Only add links that don't already exist\n for (const targetEntityId of allTargetEntityIds) {\n if (!existingTargetIds.has(targetEntityId)) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n if (linksToRemove.length > 0) {\n updatePromises.push(removeMultipleLinks(linksToRemove, deleteLink))\n removedInPaste.push(...linksToRemove)\n }\n if (linksToAdd.length > 0) {\n updatePromises.push(addMultipleLinks(linksToAdd, addLink))\n addedInPaste.push(...linksToAdd)\n }\n }\n try {\n // Execute all link operations in parallel\n await Promise.all(updatePromises)\n\n // Push a single history entry that undoes BOTH: remove added links and re-add removed links\n if (history && (addedInPaste.length > 0 || removedInPaste.length > 0)) {\n // Prepare inverse operations for undo\n const addedToRemove: LinkToRemove[] = addedInPaste.map((link) => ({\n id: link.linkId,\n projectName: link.projectName,\n linkType: link.linkType,\n direction: link.direction,\n target: { entityId: link.targetEntityId, entityType: link.targetEntityType },\n source: { entityId: link.sourceEntityId, entityType: link.sourceEntityType },\n }))\n\n const removedToAdd: LinkToAdd[] = removedInPaste.map((link) => ({\n targetEntityId: link.target.entityId,\n linkId: link.id,\n sourceEntityId: link.source.entityId,\n sourceEntityType: link.source.entityType,\n targetEntityType: link.target.entityType,\n linkType: link.linkType,\n direction: link.direction,\n projectName: link.projectName,\n }))\n\n // Single callbacks to keep history atomic\n const undoCallback = () => {\n const tasks: Promise<void>[] = []\n if (addedToRemove.length) tasks.push(removeMultipleLinks(addedToRemove, deleteLink))\n if (removedToAdd.length) tasks.push(addMultipleLinks(removedToAdd, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n const redoCallback = () => {\n const tasks: Promise<void>[] = []\n if (removedInPaste.length) tasks.push(removeMultipleLinks(removedInPaste, deleteLink))\n if (addedInPaste.length) tasks.push(addMultipleLinks(addedInPaste, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n history.pushHistory([undoCallback], [redoCallback])\n }\n } catch (error) {\n throw error\n }\n },\n [projectName, getEntityById, deleteLink, addLink, history],\n )\n\n return { pasteTableLinks }\n}\n\nexport default usePasteLinks\n"],"names":["usePasteLinks","props","contextProjectName","useProjectContext","getEntityById","useProjectTableContext","projectName","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","useCallback","linkUpdates","operationsToProcess","update","key","updatePromises","addedInPaste","removedInPaste","updates","sourceEntityId","targets","u","id","toast","firstUpdate","sourceEntityType","linkType","direction","targetEntityType","operation","allTargetEntityIds","linksToAdd","linksToRemove","entityData","currentLinks","link","targetEntityId","linkId","getEntityId","existingTargetIds","removeMultipleLinks","addMultipleLinks","addedToRemove","removedToAdd","undoCallback","tasks","redoCallback","error"],"mappings":"q5bA+CM,MAAAA,EAAiBC,GAA+B,CACpD,KAAM,CAAE,YAAaC,CAAmB,EAAIC,oBAAkB,EACxD,CAAE,cAAAC,CAAc,EAAIC,yBAAuB,EAC3CC,EAAoCJ,EACpC,CAAE,QAAAK,CAAQ,EAAIC,iBAAe,EAG7B,CAACC,CAAU,EAAIC,8BAA4B,EAC3C,CAACC,CAAO,EAAIC,8BAA4B,EAuM9C,MAAO,CAAE,gBApMeC,EAAA,YACtB,MAAOC,GAA8B,CACnC,GAAI,CAACR,GAAe,CAACQ,EAAY,OAAQ,OAGnC,MAAAC,MAA0B,IAEhC,UAAWC,KAAUF,EAAa,CAC1B,MAAAG,EAAM,GAAGD,EAAO,cAAc,IAAIA,EAAO,QAAQ,IAAIA,EAAO,SAAS,GACtED,EAAoB,IAAIE,CAAG,GACVF,EAAA,IAAIE,EAAK,EAAE,EAEjCF,EAAoB,IAAIE,CAAG,EAAG,KAAKD,CAAM,CAAA,CAG3C,MAAME,EAAkC,CAAC,EAEnCC,EAA4B,CAAC,EAC7BC,EAAiC,CAAC,EAGxC,SAAW,CAAA,CAAGC,CAAO,IAAKN,EAAqB,CAC7C,KAAM,CAAE,eAAAO,CAAA,EAAmBD,EAAQ,CAAC,EAC9BE,MAAc,IAEhB,GADJF,EAAQ,QAASG,GAAMA,EAAE,gBAAgB,QAASC,GAAOF,EAAQ,IAAIE,CAAE,CAAC,CAAC,EACrEF,EAAQ,IAAID,CAAc,EAAG,CAC/BI,EAAA,MAAM,MAAM,oCAAoC,EAChD,MAAA,CACF,CAGF,SAAW,CAACT,EAAKI,CAAO,IAAKN,EAAqB,CAC1C,MAAAY,EAAcN,EAAQ,CAAC,EACvB,CACJ,eAAAC,EACA,iBAAAM,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,UAAAC,CAAA,EACEL,EAGEM,MAAyB,IACvBZ,EAAA,QAASL,GAAW,CAC1BA,EAAO,gBAAgB,QAASS,GAAOQ,EAAmB,IAAIR,CAAE,CAAC,CAAA,CAClE,EAED,MAAMS,EAA0B,CAAC,EAC3BC,EAAgC,CAAC,EAGjCC,EAAahC,EAAckB,CAAc,EAC/C,GAAI,CAACc,EAAY,CACP,QAAA,KAAK,qBAAqBd,CAAc,EAAE,EAClD,QAAA,CAIF,MAAMe,EAAeD,EAAW,MAEhC,GAAIJ,IAAc,UAAW,CAEvB,GAAA,MAAM,QAAQK,CAAY,EAC5B,UAAWC,KAAQD,EAEfC,EAAK,aAAeP,GACpBO,EAAK,YAAcR,GACnBQ,EAAK,WAAaT,EAAS,MAAM,GAAG,EAAE,CAAC,GAEvCM,EAAc,KAAK,CACjB,GAAIG,EAAK,GACT,OAAQ,CACN,SAAUA,EAAK,KAAK,GACpB,WAAYA,EAAK,UACnB,EACA,OAAQ,CAAE,SAAUhB,EAAgB,WAAYM,CAAiB,EACjE,SAAAC,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,EAMP,UAAWiC,KAAkBN,EAAoB,CAC/C,MAAMO,EAASC,EAAAA,YAAY,EAE3BP,EAAW,KAAK,CACd,eAAAK,EACA,OAAAC,EACA,eAAAlB,EACA,iBAAAM,EACA,iBAAAG,EACA,SAAAF,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,CAAA,CACH,SACS0B,IAAc,QAAS,CAE1B,MAAAU,MAAwB,IAC1B,MAAM,QAAQL,CAAY,GACfA,EAAA,QAASC,GAAS,CAE3BA,EAAK,aAAeP,GACpBO,EAAK,YAAcR,GACnBQ,EAAK,WAAaT,GAEAa,EAAA,IAAIJ,EAAK,KAAK,EAAE,CACpC,CACD,EAGH,QAAQ,IAAII,CAAiB,EAG7B,UAAWH,KAAkBN,EAC3B,GAAI,CAACS,EAAkB,IAAIH,CAAc,EAAG,CAC1C,MAAMC,EAASC,EAAAA,YAAY,EAE3BP,EAAW,KAAK,CACd,eAAAK,EACA,OAAAC,EACA,eAAAlB,EACA,iBAAAM,EACA,iBAAAG,EACA,SAAAF,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,CAAA,CAEL,CAGE6B,EAAc,OAAS,IACzBjB,EAAe,KAAKyB,EAAAA,oBAAoBR,EAAe1B,CAAU,CAAC,EACnDW,EAAA,KAAK,GAAGe,CAAa,GAElCD,EAAW,OAAS,IACtBhB,EAAe,KAAK0B,EAAAA,iBAAiBV,EAAYvB,CAAO,CAAC,EAC5CQ,EAAA,KAAK,GAAGe,CAAU,EACjC,CAEE,GAAA,CAKF,GAHM,MAAA,QAAQ,IAAIhB,CAAc,EAG5BX,IAAYY,EAAa,OAAS,GAAKC,EAAe,OAAS,GAAI,CAErE,MAAMyB,EAAgC1B,EAAa,IAAKmB,IAAU,CAChE,GAAIA,EAAK,OACT,YAAaA,EAAK,YAClB,SAAUA,EAAK,SACf,UAAWA,EAAK,UAChB,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYA,EAAK,gBAAiB,EAC3E,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYA,EAAK,gBAAiB,CAAA,EAC3E,EAEIQ,EAA4B1B,EAAe,IAAKkB,IAAU,CAC9D,eAAgBA,EAAK,OAAO,SAC5B,OAAQA,EAAK,GACb,eAAgBA,EAAK,OAAO,SAC5B,iBAAkBA,EAAK,OAAO,WAC9B,iBAAkBA,EAAK,OAAO,WAC9B,SAAUA,EAAK,SACf,UAAWA,EAAK,UAChB,YAAaA,EAAK,WAAA,EAClB,EAGIS,EAAe,IAAM,CACzB,MAAMC,EAAyB,CAAC,EAC5BH,EAAc,QAAQG,EAAM,KAAKL,sBAAoBE,EAAepC,CAAU,CAAC,EAC/EqC,EAAa,QAAQE,EAAM,KAAKJ,mBAAiBE,EAAcnC,CAAO,CAAC,EACvEqC,EAAM,QAAQ,QAAQ,IAAIA,CAAK,EAAE,MAAM,IAAM,CAAA,CAAE,CACrD,EAEMC,EAAe,IAAM,CACzB,MAAMD,EAAyB,CAAC,EAC5B5B,EAAe,QAAQ4B,EAAM,KAAKL,sBAAoBvB,EAAgBX,CAAU,CAAC,EACjFU,EAAa,QAAQ6B,EAAM,KAAKJ,mBAAiBzB,EAAcR,CAAO,CAAC,EACvEqC,EAAM,QAAQ,QAAQ,IAAIA,CAAK,EAAE,MAAM,IAAM,CAAA,CAAE,CACrD,EAEAzC,EAAQ,YAAY,CAACwC,CAAY,EAAG,CAACE,CAAY,CAAC,CAAA,QAE7CC,EAAO,CACR,MAAAA,CAAA,CAEV,EACA,CAAC5C,EAAaF,EAAeK,EAAYE,EAASJ,CAAO,CAC3D,CAEyB,CAC3B"}
@@ -49,6 +49,8 @@ import "../../../api/queries/attributes/getAttributes.es.js";
49
49
  import "../../../api/queries/attributes/updateAttributes.es.js";
50
50
  import "../../../api/queries/authentication/getAuthentication.es.js";
51
51
  import "../../../api/queries/cloud/cloud.es.js";
52
+ import "../../../api/queries/config/getConfig.es.js";
53
+ import "../../../api/queries/config/updateConfig.es.js";
52
54
  import "../../../api/queries/entities/getEntity.es.js";
53
55
  import "../../../api/queries/entities/getEntityPanel.es.js";
54
56
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -245,7 +247,7 @@ import "../../Views/Views.styled.es.js";
245
247
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
246
248
  import "../../Views/ViewsMenu/ViewsMenu.es.js";
247
249
  import "uuid";
248
- const Tp = (H) => {
250
+ const Ip = (H) => {
249
251
  const { projectName: A } = R(), { getEntityById: j } = S(), n = A, { history: E } = B(), [u] = M(), [l] = $();
250
252
  return { pasteTableLinks: x(
251
253
  async (w) => {
@@ -367,6 +369,6 @@ const Tp = (H) => {
367
369
  ) };
368
370
  };
369
371
  export {
370
- Tp as default
372
+ Ip as default
371
373
  };
372
374
  //# sourceMappingURL=usePasteLinks.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePasteLinks.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/usePasteLinks.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '@shared/components/LinksManager/utils/linkUpdates'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityId } from '@shared/util'\nimport { PasteMethod } from '../context'\nimport { useCellEditing } from '@shared/containers'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\n/**\n * Represents a link update operation for table links\n */\nexport type LinkUpdate = {\n /** Row ID in the table */\n rowId: string\n /** ID of the source entity (the entity that will have links) */\n sourceEntityId: string\n /** Type of the source entity (e.g., 'folder', 'task') */\n sourceEntityType: string\n /** Type of link (e.g., 'workflow', 'dependency') */\n linkType: string\n /** Direction of the link from source entity perspective */\n direction: 'in' | 'out'\n /** Type of the target entities that will be linked */\n targetEntityType: string\n /**\n * Operation type:\n * - 'replace': Remove all existing links of this type and add new ones\n * - 'merge': Keep existing links and add new ones (skip duplicates)\n */\n operation: PasteMethod\n /** Array of target entity IDs to link to */\n targetEntityIds: string[]\n}\n\nexport type PasteTableLinks = (linkUpdates: LinkUpdate[]) => Promise<void>\n\ninterface usePasteLinksProps {\n projectName?: string\n}\n\nconst usePasteLinks = (props?: usePasteLinksProps) => {\n const { projectName: contextProjectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const projectName = props?.projectName || contextProjectName\n const { history } = useCellEditing()\n\n // Add mutation hooks for link operations\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // Handle link updates using the utility functions\n const pasteTableLinks = useCallback<PasteTableLinks>(\n async (linkUpdates: LinkUpdate[]) => {\n if (!projectName || !linkUpdates.length) return\n\n // Group operations by entity and link type for processing\n const operationsToProcess = new Map<string, LinkUpdate[]>()\n\n for (const update of linkUpdates) {\n const key = `${update.sourceEntityId}-${update.linkType}-${update.direction}`\n if (!operationsToProcess.has(key)) {\n operationsToProcess.set(key, [])\n }\n operationsToProcess.get(key)!.push(update)\n }\n\n const updatePromises: Promise<void>[] = []\n // Collect all adds/removes across all operations to build a single history entry\n const addedInPaste: LinkToAdd[] = []\n const removedInPaste: LinkToRemove[] = []\n\n // Pre-flight validation: detect any self-referential links across the whole paste\n for (const [, updates] of operationsToProcess) {\n const { sourceEntityId } = updates[0]\n const targets = new Set<string>()\n updates.forEach((u) => u.targetEntityIds.forEach((id) => targets.add(id)))\n if (targets.has(sourceEntityId)) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n }\n // Process each unique entity-linkType-direction combination\n for (const [key, updates] of operationsToProcess) {\n const firstUpdate = updates[0]\n const {\n sourceEntityId,\n sourceEntityType,\n linkType,\n direction,\n targetEntityType,\n operation,\n } = firstUpdate\n\n // Collect all target entity IDs from all updates for this combination\n const allTargetEntityIds = new Set<string>()\n updates.forEach((update) => {\n update.targetEntityIds.forEach((id) => allTargetEntityIds.add(id))\n })\n\n const linksToAdd: LinkToAdd[] = []\n const linksToRemove: LinkToRemove[] = []\n\n // Get current links for this entity and link type\n const entityData = getEntityById(sourceEntityId)\n if (!entityData) {\n console.warn(`Entity not found: ${sourceEntityId}`)\n continue\n }\n\n // Get current links for this link type and direction\n const currentLinks = entityData.links\n\n if (operation === 'replace') {\n // Remove all current links of this (linkType + direction + targetEntityType) only.\n if (Array.isArray(currentLinks)) {\n for (const link of currentLinks) {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType.split('|')[0]\n ) {\n linksToRemove.push({\n id: link.id,\n target: {\n entityId: link.node.id,\n entityType: link.entityType,\n },\n source: { entityId: sourceEntityId, entityType: sourceEntityType },\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n // Add all new links\n for (const targetEntityId of allTargetEntityIds) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n } else if (operation === 'merge') {\n // Get existing target entity IDs for this (linkType + direction + targetEntityType)\n const existingTargetIds = new Set<string>()\n if (Array.isArray(currentLinks)) {\n currentLinks.forEach((link) => {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType\n ) {\n existingTargetIds.add(link.node.id)\n }\n })\n }\n\n console.log(existingTargetIds)\n\n // Only add links that don't already exist\n for (const targetEntityId of allTargetEntityIds) {\n if (!existingTargetIds.has(targetEntityId)) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n if (linksToRemove.length > 0) {\n updatePromises.push(removeMultipleLinks(linksToRemove, deleteLink))\n removedInPaste.push(...linksToRemove)\n }\n if (linksToAdd.length > 0) {\n updatePromises.push(addMultipleLinks(linksToAdd, addLink))\n addedInPaste.push(...linksToAdd)\n }\n }\n try {\n // Execute all link operations in parallel\n await Promise.all(updatePromises)\n\n // Push a single history entry that undoes BOTH: remove added links and re-add removed links\n if (history && (addedInPaste.length > 0 || removedInPaste.length > 0)) {\n // Prepare inverse operations for undo\n const addedToRemove: LinkToRemove[] = addedInPaste.map((link) => ({\n id: link.linkId,\n projectName: link.projectName,\n linkType: link.linkType,\n direction: link.direction,\n target: { entityId: link.targetEntityId, entityType: link.targetEntityType },\n source: { entityId: link.sourceEntityId, entityType: link.sourceEntityType },\n }))\n\n const removedToAdd: LinkToAdd[] = removedInPaste.map((link) => ({\n targetEntityId: link.target.entityId,\n linkId: link.id,\n sourceEntityId: link.source.entityId,\n sourceEntityType: link.source.entityType,\n targetEntityType: link.target.entityType,\n linkType: link.linkType,\n direction: link.direction,\n projectName: link.projectName,\n }))\n\n // Single callbacks to keep history atomic\n const undoCallback = () => {\n const tasks: Promise<void>[] = []\n if (addedToRemove.length) tasks.push(removeMultipleLinks(addedToRemove, deleteLink))\n if (removedToAdd.length) tasks.push(addMultipleLinks(removedToAdd, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n const redoCallback = () => {\n const tasks: Promise<void>[] = []\n if (removedInPaste.length) tasks.push(removeMultipleLinks(removedInPaste, deleteLink))\n if (addedInPaste.length) tasks.push(addMultipleLinks(addedInPaste, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n history.pushHistory([undoCallback], [redoCallback])\n }\n } catch (error) {\n throw error\n }\n },\n [projectName, getEntityById, deleteLink, addLink, history],\n )\n\n return { pasteTableLinks }\n}\n\nexport default usePasteLinks\n"],"names":["usePasteLinks","props","contextProjectName","useProjectContext","getEntityById","useProjectTableContext","projectName","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","useCallback","linkUpdates","operationsToProcess","update","key","updatePromises","addedInPaste","removedInPaste","updates","sourceEntityId","targets","u","id","toast","firstUpdate","sourceEntityType","linkType","direction","targetEntityType","operation","allTargetEntityIds","linksToAdd","linksToRemove","entityData","currentLinks","link","targetEntityId","linkId","getEntityId","existingTargetIds","removeMultipleLinks","addMultipleLinks","addedToRemove","removedToAdd","undoCallback","tasks","redoCallback","error"],"mappings":"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"}
1
+ {"version":3,"file":"usePasteLinks.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/usePasteLinks.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '@shared/components/LinksManager/utils/linkUpdates'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityId } from '@shared/util'\nimport { PasteMethod } from '../context'\nimport { useCellEditing } from '@shared/containers'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\n/**\n * Represents a link update operation for table links\n */\nexport type LinkUpdate = {\n /** Row ID in the table */\n rowId: string\n /** ID of the source entity (the entity that will have links) */\n sourceEntityId: string\n /** Type of the source entity (e.g., 'folder', 'task') */\n sourceEntityType: string\n /** Type of link (e.g., 'workflow', 'dependency') */\n linkType: string\n /** Direction of the link from source entity perspective */\n direction: 'in' | 'out'\n /** Type of the target entities that will be linked */\n targetEntityType: string\n /**\n * Operation type:\n * - 'replace': Remove all existing links of this type and add new ones\n * - 'merge': Keep existing links and add new ones (skip duplicates)\n */\n operation: PasteMethod\n /** Array of target entity IDs to link to */\n targetEntityIds: string[]\n}\n\nexport type PasteTableLinks = (linkUpdates: LinkUpdate[]) => Promise<void>\n\ninterface usePasteLinksProps {\n projectName?: string\n}\n\nconst usePasteLinks = (props?: usePasteLinksProps) => {\n const { projectName: contextProjectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const projectName = props?.projectName || contextProjectName\n const { history } = useCellEditing()\n\n // Add mutation hooks for link operations\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // Handle link updates using the utility functions\n const pasteTableLinks = useCallback<PasteTableLinks>(\n async (linkUpdates: LinkUpdate[]) => {\n if (!projectName || !linkUpdates.length) return\n\n // Group operations by entity and link type for processing\n const operationsToProcess = new Map<string, LinkUpdate[]>()\n\n for (const update of linkUpdates) {\n const key = `${update.sourceEntityId}-${update.linkType}-${update.direction}`\n if (!operationsToProcess.has(key)) {\n operationsToProcess.set(key, [])\n }\n operationsToProcess.get(key)!.push(update)\n }\n\n const updatePromises: Promise<void>[] = []\n // Collect all adds/removes across all operations to build a single history entry\n const addedInPaste: LinkToAdd[] = []\n const removedInPaste: LinkToRemove[] = []\n\n // Pre-flight validation: detect any self-referential links across the whole paste\n for (const [, updates] of operationsToProcess) {\n const { sourceEntityId } = updates[0]\n const targets = new Set<string>()\n updates.forEach((u) => u.targetEntityIds.forEach((id) => targets.add(id)))\n if (targets.has(sourceEntityId)) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n }\n // Process each unique entity-linkType-direction combination\n for (const [key, updates] of operationsToProcess) {\n const firstUpdate = updates[0]\n const {\n sourceEntityId,\n sourceEntityType,\n linkType,\n direction,\n targetEntityType,\n operation,\n } = firstUpdate\n\n // Collect all target entity IDs from all updates for this combination\n const allTargetEntityIds = new Set<string>()\n updates.forEach((update) => {\n update.targetEntityIds.forEach((id) => allTargetEntityIds.add(id))\n })\n\n const linksToAdd: LinkToAdd[] = []\n const linksToRemove: LinkToRemove[] = []\n\n // Get current links for this entity and link type\n const entityData = getEntityById(sourceEntityId)\n if (!entityData) {\n console.warn(`Entity not found: ${sourceEntityId}`)\n continue\n }\n\n // Get current links for this link type and direction\n const currentLinks = entityData.links\n\n if (operation === 'replace') {\n // Remove all current links of this (linkType + direction + targetEntityType) only.\n if (Array.isArray(currentLinks)) {\n for (const link of currentLinks) {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType.split('|')[0]\n ) {\n linksToRemove.push({\n id: link.id,\n target: {\n entityId: link.node.id,\n entityType: link.entityType,\n },\n source: { entityId: sourceEntityId, entityType: sourceEntityType },\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n // Add all new links\n for (const targetEntityId of allTargetEntityIds) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n } else if (operation === 'merge') {\n // Get existing target entity IDs for this (linkType + direction + targetEntityType)\n const existingTargetIds = new Set<string>()\n if (Array.isArray(currentLinks)) {\n currentLinks.forEach((link) => {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType\n ) {\n existingTargetIds.add(link.node.id)\n }\n })\n }\n\n console.log(existingTargetIds)\n\n // Only add links that don't already exist\n for (const targetEntityId of allTargetEntityIds) {\n if (!existingTargetIds.has(targetEntityId)) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n if (linksToRemove.length > 0) {\n updatePromises.push(removeMultipleLinks(linksToRemove, deleteLink))\n removedInPaste.push(...linksToRemove)\n }\n if (linksToAdd.length > 0) {\n updatePromises.push(addMultipleLinks(linksToAdd, addLink))\n addedInPaste.push(...linksToAdd)\n }\n }\n try {\n // Execute all link operations in parallel\n await Promise.all(updatePromises)\n\n // Push a single history entry that undoes BOTH: remove added links and re-add removed links\n if (history && (addedInPaste.length > 0 || removedInPaste.length > 0)) {\n // Prepare inverse operations for undo\n const addedToRemove: LinkToRemove[] = addedInPaste.map((link) => ({\n id: link.linkId,\n projectName: link.projectName,\n linkType: link.linkType,\n direction: link.direction,\n target: { entityId: link.targetEntityId, entityType: link.targetEntityType },\n source: { entityId: link.sourceEntityId, entityType: link.sourceEntityType },\n }))\n\n const removedToAdd: LinkToAdd[] = removedInPaste.map((link) => ({\n targetEntityId: link.target.entityId,\n linkId: link.id,\n sourceEntityId: link.source.entityId,\n sourceEntityType: link.source.entityType,\n targetEntityType: link.target.entityType,\n linkType: link.linkType,\n direction: link.direction,\n projectName: link.projectName,\n }))\n\n // Single callbacks to keep history atomic\n const undoCallback = () => {\n const tasks: Promise<void>[] = []\n if (addedToRemove.length) tasks.push(removeMultipleLinks(addedToRemove, deleteLink))\n if (removedToAdd.length) tasks.push(addMultipleLinks(removedToAdd, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n const redoCallback = () => {\n const tasks: Promise<void>[] = []\n if (removedInPaste.length) tasks.push(removeMultipleLinks(removedInPaste, deleteLink))\n if (addedInPaste.length) tasks.push(addMultipleLinks(addedInPaste, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n history.pushHistory([undoCallback], [redoCallback])\n }\n } catch (error) {\n throw error\n }\n },\n [projectName, getEntityById, deleteLink, addLink, history],\n )\n\n return { pasteTableLinks }\n}\n\nexport default usePasteLinks\n"],"names":["usePasteLinks","props","contextProjectName","useProjectContext","getEntityById","useProjectTableContext","projectName","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","useCallback","linkUpdates","operationsToProcess","update","key","updatePromises","addedInPaste","removedInPaste","updates","sourceEntityId","targets","u","id","toast","firstUpdate","sourceEntityType","linkType","direction","targetEntityType","operation","allTargetEntityIds","linksToAdd","linksToRemove","entityData","currentLinks","link","targetEntityId","linkId","getEntityId","existingTargetIds","removeMultipleLinks","addMultipleLinks","addedToRemove","removedToAdd","undoCallback","tasks","redoCallback","error"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),f=require("@ynput/ayon-react-components"),S=require("../utils/clientFilterToQueryFilter.cjs.js");require("short-uuid");require("react-toastify");require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("../ProjectTreeTable.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");;/* empty css */require("clsx");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const h=({queryFilters:q,sliceFilter:r})=>d.useMemo(()=>{var o,s,l,a;let e=q;if((o=r==null?void 0:r.values)!=null&&o.length){const i=S.clientFilterToQueryFilter([r]);(s=i.conditions)!=null&&s.length&&(e={conditions:[...(e==null?void 0:e.conditions)||[],...i.conditions],operator:"and"})}let g=q,n="";if((l=e==null?void 0:e.conditions)!=null&&l.length){const i=[],t=e.conditions.filter(c=>{if(c.key===f.SEARCH_FILTER_ID){const u=c.value;return u!=null&&String(u).trim()!==""&&i.push(String(u)),!1}return!0});n=i.join(" "),e=t.length?{...e,conditions:t}:{...e,conditions:[]}}return{filterString:(a=e==null?void 0:e.conditions)!=null&&a.length?JSON.stringify(e):"",filter:e,search:n,combinedFilters:e,displayFilters:g}},[q,r]);exports.useQueryFilters=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),f=require("@ynput/ayon-react-components"),S=require("../utils/clientFilterToQueryFilter.cjs.js");require("short-uuid");require("react-toastify");require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../context/CellEditingContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("../ProjectTreeTable.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");;/* empty css */require("clsx");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const h=({queryFilters:q,sliceFilter:r})=>d.useMemo(()=>{var o,s,l,a;let e=q;if((o=r==null?void 0:r.values)!=null&&o.length){const i=S.clientFilterToQueryFilter([r]);(s=i.conditions)!=null&&s.length&&(e={conditions:[...(e==null?void 0:e.conditions)||[],...i.conditions],operator:"and"})}let g=q,n="";if((l=e==null?void 0:e.conditions)!=null&&l.length){const i=[],t=e.conditions.filter(c=>{if(c.key===f.SEARCH_FILTER_ID){const u=c.value;return u!=null&&String(u).trim()!==""&&i.push(String(u)),!1}return!0});n=i.join(" "),e=t.length?{...e,conditions:t}:{...e,conditions:[]}}return{filterString:(a=e==null?void 0:e.conditions)!=null&&a.length?JSON.stringify(e):"",filter:e,search:n,combinedFilters:e,displayFilters:g}},[q,r]);exports.useQueryFilters=h;
2
2
  //# sourceMappingURL=useQueryFilters.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryFilters.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n if ((condition as QueryCondition).key === SEARCH_FILTER_ID) {\n const val = (condition as QueryCondition).value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","useMemo","combinedQueryFilter","_a","sliceQueryFilter","clientFilterToQueryFilter","_b","displayQueryFilter","fuzzySearchFilter","_c","searchValues","remainingConditions","condition","SEARCH_FILTER_ID","val","_d"],"mappings":"iwbAmBO,MAAMA,EAAkB,CAAC,CAC9B,aAAAC,EACA,YAAAC,CACF,IACSC,UAAQ,IAAM,aACnB,IAAIC,EAAsBH,EAGtB,IAAAI,EAAAH,GAAA,YAAAA,EAAa,SAAb,MAAAG,EAAqB,OAAQ,CAC/B,MAAMC,EAAmBC,EAAAA,0BAA0B,CAACL,CAAW,CAAC,GAG5DM,EAAAF,EAAiB,aAAjB,MAAAE,EAA6B,SAETJ,EAAA,CACpB,WAAY,CAAC,IAFYA,GAAA,YAAAA,EAAqB,aAAc,CAAC,EAEzB,GAAGE,EAAiB,UAAU,EAClE,SAAU,KACZ,EACF,CAKF,IAAIG,EAAqBR,EAGrBS,EAAoB,GAEpB,IAAAC,EAAAP,GAAA,YAAAA,EAAqB,aAArB,MAAAO,EAAiC,OAAQ,CAC3C,MAAMC,EAAyB,CAAC,EAE1BC,EAAsBT,EAAoB,WAAW,OAAQU,GAAc,CAC1E,GAAAA,EAA6B,MAAQC,mBAAkB,CAC1D,MAAMC,EAAOF,EAA6B,MACtC,OAAqBE,GAAQ,MAAQ,OAAOA,CAAG,EAAE,KAAK,IAAM,IACjDJ,EAAA,KAAK,OAAOI,CAAG,CAAC,EAExB,EAAA,CAEF,MAAA,EAAA,CACR,EAGmBN,EAAAE,EAAa,KAAK,GAAG,EAGzCR,EAAsBS,EAAoB,OACtC,CAAE,GAAGT,EAAqB,WAAYS,CAAoB,EAC1D,CAAE,GAAGT,EAAqB,WAAY,CAAA,CAAG,CAAA,CAOxC,MAAA,CACL,cALwBa,EAAAb,GAAA,YAAAA,EAAqB,aAArB,MAAAa,EAAiC,OACvD,KAAK,UAAUb,CAAmB,EAClC,GAIF,OAAQA,EACR,OAAQM,EACR,gBAAiBN,EACjB,eAAgBK,CAClB,CAAA,EACC,CAACR,EAAcC,CAAW,CAAC"}
1
+ {"version":3,"file":"useQueryFilters.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n if ((condition as QueryCondition).key === SEARCH_FILTER_ID) {\n const val = (condition as QueryCondition).value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","useMemo","combinedQueryFilter","_a","sliceQueryFilter","clientFilterToQueryFilter","_b","displayQueryFilter","fuzzySearchFilter","_c","searchValues","remainingConditions","condition","SEARCH_FILTER_ID","val","_d"],"mappings":"o3bAmBO,MAAMA,EAAkB,CAAC,CAC9B,aAAAC,EACA,YAAAC,CACF,IACSC,UAAQ,IAAM,aACnB,IAAIC,EAAsBH,EAGtB,IAAAI,EAAAH,GAAA,YAAAA,EAAa,SAAb,MAAAG,EAAqB,OAAQ,CAC/B,MAAMC,EAAmBC,EAAAA,0BAA0B,CAACL,CAAW,CAAC,GAG5DM,EAAAF,EAAiB,aAAjB,MAAAE,EAA6B,SAETJ,EAAA,CACpB,WAAY,CAAC,IAFYA,GAAA,YAAAA,EAAqB,aAAc,CAAC,EAEzB,GAAGE,EAAiB,UAAU,EAClE,SAAU,KACZ,EACF,CAKF,IAAIG,EAAqBR,EAGrBS,EAAoB,GAEpB,IAAAC,EAAAP,GAAA,YAAAA,EAAqB,aAArB,MAAAO,EAAiC,OAAQ,CAC3C,MAAMC,EAAyB,CAAC,EAE1BC,EAAsBT,EAAoB,WAAW,OAAQU,GAAc,CAC1E,GAAAA,EAA6B,MAAQC,mBAAkB,CAC1D,MAAMC,EAAOF,EAA6B,MACtC,OAAqBE,GAAQ,MAAQ,OAAOA,CAAG,EAAE,KAAK,IAAM,IACjDJ,EAAA,KAAK,OAAOI,CAAG,CAAC,EAExB,EAAA,CAEF,MAAA,EAAA,CACR,EAGmBN,EAAAE,EAAa,KAAK,GAAG,EAGzCR,EAAsBS,EAAoB,OACtC,CAAE,GAAGT,EAAqB,WAAYS,CAAoB,EAC1D,CAAE,GAAGT,EAAqB,WAAY,CAAA,CAAG,CAAA,CAOxC,MAAA,CACL,cALwBa,EAAAb,GAAA,YAAAA,EAAqB,aAArB,MAAAa,EAAiC,OACvD,KAAK,UAAUb,CAAmB,EAClC,GAIF,OAAQA,EACR,OAAQM,EACR,gBAAiBN,EACjB,eAAgBK,CAClB,CAAA,EACC,CAACR,EAAcC,CAAW,CAAC"}
@@ -88,6 +88,8 @@ import "../../../api/queries/attributes/getAttributes.es.js";
88
88
  import "../../../api/queries/attributes/updateAttributes.es.js";
89
89
  import "../../../api/queries/authentication/getAuthentication.es.js";
90
90
  import "../../../api/queries/cloud/cloud.es.js";
91
+ import "../../../api/queries/config/getConfig.es.js";
92
+ import "../../../api/queries/config/updateConfig.es.js";
91
93
  import "../../../api/queries/entities/getEntity.es.js";
92
94
  import "../../../api/queries/entities/getEntityPanel.es.js";
93
95
  import "../../../api/queries/entities/updateEntity.es.js";
@@ -244,7 +246,7 @@ import "../widgets/EmptyWidget.es.js";
244
246
  import "../widgets/ErrorWidget.es.js";
245
247
  import "../ProjectTreeTable.styled.es.js";
246
248
  import "../widgets/LoadMoreWidget.es.js";
247
- const Yr = ({
249
+ const $r = ({
248
250
  queryFilters: p,
249
251
  sliceFilter: i
250
252
  }) => u(() => {
@@ -277,6 +279,6 @@ const Yr = ({
277
279
  };
278
280
  }, [p, i]);
279
281
  export {
280
- Yr as useQueryFilters
282
+ $r as useQueryFilters
281
283
  };
282
284
  //# sourceMappingURL=useQueryFilters.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryFilters.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n if ((condition as QueryCondition).key === SEARCH_FILTER_ID) {\n const val = (condition as QueryCondition).value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","useMemo","combinedQueryFilter","_a","sliceQueryFilter","clientFilterToQueryFilter","_b","displayQueryFilter","fuzzySearchFilter","_c","searchValues","remainingConditions","condition","SEARCH_FILTER_ID","val","_d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAMA,KAAkB,CAAC;AAAA,EAC9B,cAAAC;AAAA,EACA,aAAAC;AACF,MACSC,EAAQ,MAAM;;AACnB,MAAIC,IAAsBH;AAGtB,OAAAI,IAAAH,KAAA,gBAAAA,EAAa,WAAb,QAAAG,EAAqB,QAAQ;AAC/B,UAAMC,IAAmBC,EAA0B,CAACL,CAAW,CAAC;AAG5D,KAAAM,IAAAF,EAAiB,eAAjB,QAAAE,EAA6B,WAETJ,IAAA;AAAA,MACpB,YAAY,CAAC,IAFYA,KAAA,gBAAAA,EAAqB,eAAc,CAAC,GAEzB,GAAGE,EAAiB,UAAU;AAAA,MAClE,UAAU;AAAA,IACZ;AAAA,EACF;AAKF,MAAIG,IAAqBR,GAGrBS,IAAoB;AAEpB,OAAAC,IAAAP,KAAA,gBAAAA,EAAqB,eAArB,QAAAO,EAAiC,QAAQ;AAC3C,UAAMC,IAAyB,CAAC,GAE1BC,IAAsBT,EAAoB,WAAW,OAAO,CAACU,MAAc;AAC1E,UAAAA,EAA6B,QAAQC,GAAkB;AAC1D,cAAMC,IAAOF,EAA6B;AACtC,eAAqBE,KAAQ,QAAQ,OAAOA,CAAG,EAAE,KAAK,MAAM,MACjDJ,EAAA,KAAK,OAAOI,CAAG,CAAC,GAExB;AAAA,MAAA;AAEF,aAAA;AAAA,IAAA,CACR;AAGmB,IAAAN,IAAAE,EAAa,KAAK,GAAG,GAGzCR,IAAsBS,EAAoB,SACtC,EAAE,GAAGT,GAAqB,YAAYS,EAAoB,IAC1D,EAAE,GAAGT,GAAqB,YAAY,CAAA,EAAG;AAAA,EAAA;AAOxC,SAAA;AAAA,IACL,eALwBa,IAAAb,KAAA,gBAAAA,EAAqB,eAArB,QAAAa,EAAiC,SACvD,KAAK,UAAUb,CAAmB,IAClC;AAAA,IAIF,QAAQA;AAAA,IACR,QAAQM;AAAA,IACR,iBAAiBN;AAAA,IACjB,gBAAgBK;AAAA,EAClB;AAAA,GACC,CAACR,GAAcC,CAAW,CAAC;"}
1
+ {"version":3,"file":"useQueryFilters.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useQueryFilters.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { type QueryTasksFoldersApiArg } from '@shared/api'\nimport { clientFilterToQueryFilter } from '../utils'\nimport { QueryFilter, QueryCondition } from '../types/operations'\n\ninterface UseQueryFiltersProps {\n queryFilters: QueryFilter\n sliceFilter?: Filter | null\n}\n\ninterface QueryFiltersResult {\n filter: QueryTasksFoldersApiArg['tasksFoldersQuery']['filter']\n filterString?: string\n search: QueryTasksFoldersApiArg['tasksFoldersQuery']['search']\n combinedFilters: QueryFilter // For data fetching (includes slice filters)\n displayFilters: QueryFilter // For SearchFilterWrapper (excludes slice filters, except hierarchy)\n}\n\nexport const useQueryFilters = ({\n queryFilters,\n sliceFilter,\n}: UseQueryFiltersProps): QueryFiltersResult => {\n return useMemo(() => {\n let combinedQueryFilter = queryFilters\n\n // If there's a slice filter, convert it and merge it with the query filters\n if (sliceFilter?.values?.length) {\n const sliceQueryFilter = clientFilterToQueryFilter([sliceFilter])\n\n // Merge the slice filter with existing query filters for data fetching\n if (sliceQueryFilter.conditions?.length) {\n const existingConditions = combinedQueryFilter?.conditions || []\n combinedQueryFilter = {\n conditions: [...existingConditions, ...sliceQueryFilter.conditions],\n operator: 'and',\n }\n }\n }\n\n // Create display filters (for SearchFilterWrapper)\n // This excludes slice filters, except for hierarchy when slice type changes\n let displayQueryFilter = queryFilters\n\n // extract text search conditions, remove them from combinedQueryFilter and merge to fuzzySearchFilter\n let fuzzySearchFilter = ''\n\n if (combinedQueryFilter?.conditions?.length) {\n const searchValues: string[] = []\n\n const remainingConditions = combinedQueryFilter.conditions.filter((condition) => {\n if ((condition as QueryCondition).key === SEARCH_FILTER_ID) {\n const val = (condition as QueryCondition).value\n if (val !== undefined && val !== null && String(val).trim() !== '') {\n searchValues.push(String(val))\n }\n return false // remove search condition\n }\n return true\n })\n\n // Join multiple search conditions into one space-separated fuzzy search string\n fuzzySearchFilter = searchValues.join(' ')\n\n // If there are remaining conditions, keep them; otherwise set empty conditions\n combinedQueryFilter = remainingConditions.length\n ? { ...combinedQueryFilter, conditions: remainingConditions }\n : { ...combinedQueryFilter, conditions: [] }\n }\n\n const queryFilterString = combinedQueryFilter?.conditions?.length\n ? JSON.stringify(combinedQueryFilter)\n : ''\n\n return {\n filterString: queryFilterString,\n filter: combinedQueryFilter,\n search: fuzzySearchFilter,\n combinedFilters: combinedQueryFilter,\n displayFilters: displayQueryFilter,\n }\n }, [queryFilters, sliceFilter])\n}\n"],"names":["useQueryFilters","queryFilters","sliceFilter","useMemo","combinedQueryFilter","_a","sliceQueryFilter","clientFilterToQueryFilter","_b","displayQueryFilter","fuzzySearchFilter","_c","searchValues","remainingConditions","condition","SEARCH_FILTER_ID","val","_d"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAMA,KAAkB,CAAC;AAAA,EAC9B,cAAAC;AAAA,EACA,aAAAC;AACF,MACSC,EAAQ,MAAM;;AACnB,MAAIC,IAAsBH;AAGtB,OAAAI,IAAAH,KAAA,gBAAAA,EAAa,WAAb,QAAAG,EAAqB,QAAQ;AAC/B,UAAMC,IAAmBC,EAA0B,CAACL,CAAW,CAAC;AAG5D,KAAAM,IAAAF,EAAiB,eAAjB,QAAAE,EAA6B,WAETJ,IAAA;AAAA,MACpB,YAAY,CAAC,IAFYA,KAAA,gBAAAA,EAAqB,eAAc,CAAC,GAEzB,GAAGE,EAAiB,UAAU;AAAA,MAClE,UAAU;AAAA,IACZ;AAAA,EACF;AAKF,MAAIG,IAAqBR,GAGrBS,IAAoB;AAEpB,OAAAC,IAAAP,KAAA,gBAAAA,EAAqB,eAArB,QAAAO,EAAiC,QAAQ;AAC3C,UAAMC,IAAyB,CAAC,GAE1BC,IAAsBT,EAAoB,WAAW,OAAO,CAACU,MAAc;AAC1E,UAAAA,EAA6B,QAAQC,GAAkB;AAC1D,cAAMC,IAAOF,EAA6B;AACtC,eAAqBE,KAAQ,QAAQ,OAAOA,CAAG,EAAE,KAAK,MAAM,MACjDJ,EAAA,KAAK,OAAOI,CAAG,CAAC,GAExB;AAAA,MAAA;AAEF,aAAA;AAAA,IAAA,CACR;AAGmB,IAAAN,IAAAE,EAAa,KAAK,GAAG,GAGzCR,IAAsBS,EAAoB,SACtC,EAAE,GAAGT,GAAqB,YAAYS,EAAoB,IAC1D,EAAE,GAAGT,GAAqB,YAAY,CAAA,EAAG;AAAA,EAAA;AAOxC,SAAA;AAAA,IACL,eALwBa,IAAAb,KAAA,gBAAAA,EAAqB,eAArB,QAAAa,EAAiC,SACvD,KAAK,UAAUb,CAAmB,IAClC;AAAA,IAIF,QAAQA;AAAA,IACR,QAAQM;AAAA,IACR,iBAAiBN;AAAA,IACjB,gBAAgBK;AAAA,EAClB;AAAA,GACC,CAACR,GAAcC,CAAW,CAAC;"}