@ynput/ayon-frontend-shared 0.3.32 → 0.3.34

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 (832) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +26 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +218 -214
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +19 -18
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs14.js +1 -1
  11. package/dist/_virtual/index.cjs15.js +1 -1
  12. package/dist/_virtual/index.cjs19.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs8.js +1 -1
  17. package/dist/_virtual/index.cjs9.js +1 -1
  18. package/dist/_virtual/index.es10.js +2 -2
  19. package/dist/_virtual/index.es11.js +2 -2
  20. package/dist/_virtual/index.es13.js +2 -2
  21. package/dist/_virtual/index.es14.js +2 -5
  22. package/dist/_virtual/index.es14.js.map +1 -1
  23. package/dist/_virtual/index.es15.js +2 -2
  24. package/dist/_virtual/index.es16.js +2 -2
  25. package/dist/_virtual/index.es17.js +2 -2
  26. package/dist/_virtual/index.es18.js +2 -2
  27. package/dist/_virtual/index.es19.js +2 -2
  28. package/dist/_virtual/index.es4.js +5 -2
  29. package/dist/_virtual/index.es4.js.map +1 -1
  30. package/dist/_virtual/index.es5.js +2 -5
  31. package/dist/_virtual/index.es5.js.map +1 -1
  32. package/dist/_virtual/index.es6.js +2 -2
  33. package/dist/_virtual/index.es8.js +2 -2
  34. package/dist/_virtual/index.es9.js +5 -2
  35. package/dist/_virtual/index.es9.js.map +1 -1
  36. package/dist/api.cjs.js +1 -1
  37. package/dist/api.es.js +435 -430
  38. package/dist/api.es.js.map +1 -1
  39. package/dist/components.cjs.js +1 -1
  40. package/dist/components.es.js +83 -80
  41. package/dist/components.es.js.map +1 -1
  42. package/dist/index.cjs.js +1 -1
  43. package/dist/index.es.js +13 -11
  44. package/dist/index.es.js.map +1 -1
  45. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  46. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  47. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  48. package/dist/node_modules/remove-accents/index.es.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  67. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  76. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  77. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  78. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  79. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  80. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  81. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  82. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  83. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  84. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  85. package/dist/shared/src/api/base/client.cjs.js +1 -1
  86. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  87. package/dist/shared/src/api/base/client.es.js +1 -0
  88. package/dist/shared/src/api/base/client.es.js.map +1 -1
  89. package/dist/shared/src/api/generated/graphql.cjs.js +104 -48
  90. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  91. package/dist/shared/src/api/generated/graphql.es.js +175 -115
  92. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  93. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  94. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  95. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  96. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  97. package/dist/shared/src/api/queries/activities/getActivities.es.js +26 -24
  98. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  99. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  100. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +6 -6
  102. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  103. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +2 -0
  104. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -0
  105. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +68 -0
  106. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -0
  107. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  108. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +73 -69
  110. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  111. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  112. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/overview/updateOverview.es.js +60 -55
  114. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  115. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -4
  116. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  117. package/dist/shared/src/api/queries/users/getUsers.es.js +11 -11
  118. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  119. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  120. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  121. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +3 -2
  122. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  123. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  124. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  125. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  126. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  127. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  128. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  129. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -4
  130. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  131. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  132. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  133. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  134. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  135. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  136. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  137. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  138. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  139. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  142. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  143. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  144. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  145. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +3 -2
  146. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  147. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  148. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  149. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -4
  150. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  151. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  152. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  153. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -4
  154. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  155. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  156. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  157. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
  158. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  159. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  160. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  161. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  162. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  163. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  164. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  165. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
  166. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  167. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  168. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  169. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  170. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  171. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  172. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  173. package/dist/shared/src/components/LinksManager/LinksManager.es.js +3 -2
  174. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  175. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  176. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  177. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -4
  178. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  179. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  180. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  181. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  182. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  183. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  184. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  185. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +3 -2
  186. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  187. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  188. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  189. package/dist/shared/src/components/Menu/Menu.es.js +3 -2
  190. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  191. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  192. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  193. package/dist/shared/src/components/Menu/MenuItem.es.js +1 -0
  194. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  195. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  196. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  197. package/dist/shared/src/components/Menu/MenuList.es.js +3 -2
  198. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  199. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  200. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  201. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +3 -2
  202. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  203. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  204. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  205. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +3 -2
  206. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  207. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
  208. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
  209. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +3 -2
  210. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
  211. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  212. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  213. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +6 -4
  214. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  215. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  216. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +8 -6
  218. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  219. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  220. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -2
  222. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  223. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  224. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  225. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +6 -4
  226. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  227. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  228. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  229. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +6 -4
  230. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  231. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  232. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  233. package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -4
  234. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  235. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  236. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  237. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  238. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  239. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  240. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  241. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -4
  242. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  243. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  244. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  245. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +7 -5
  246. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  247. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  248. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  249. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -4
  250. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  251. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  252. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  253. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  254. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  255. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  256. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  257. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -4
  258. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  259. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  260. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +2 -1
  262. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  263. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +2 -0
  264. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -0
  265. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +24 -0
  266. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -0
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  268. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  269. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +7 -6
  270. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  272. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  273. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +3 -2
  274. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  276. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  277. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +8 -6
  278. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  279. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  280. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  281. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -4
  282. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  283. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  284. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  285. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
  286. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  287. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  288. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  289. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +3 -2
  290. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  291. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  292. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  293. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -4
  294. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  295. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  296. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  297. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +10 -8
  298. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  299. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  300. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  301. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  302. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  303. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  304. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -4
  306. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  307. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  308. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  310. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  311. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  312. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -4
  314. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +6 -4
  318. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -4
  322. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -4
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -4
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +6 -4
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -4
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  342. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +19 -17
  346. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +6 -4
  350. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -3
  354. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +3 -2
  358. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
  362. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +6 -4
  366. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  367. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  368. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -4
  370. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  371. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  372. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -4
  374. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  375. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -4
  378. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  379. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
  382. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  384. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/Feed.es.js +164 -146
  386. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  388. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -4
  390. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  392. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +131 -144
  394. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  396. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  397. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -4
  398. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js +3 -3
  400. package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/components/ActivityDate.es.js +39 -29
  402. package/dist/shared/src/containers/Feed/components/ActivityDate.es.js.map +1 -1
  403. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +24 -20
  406. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +2 -0
  408. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -0
  409. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +345 -0
  410. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -0
  411. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js +59 -0
  412. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js.map +1 -0
  413. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js +65 -0
  414. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js.map +1 -0
  415. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  416. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +3 -2
  418. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  419. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  420. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +349 -290
  422. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  423. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +89 -12
  424. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +101 -19
  426. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
  427. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js +2 -0
  428. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -0
  429. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js +34 -0
  430. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -0
  431. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +10 -8
  434. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  435. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  436. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
  438. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  439. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  440. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
  442. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  443. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  444. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
  446. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  447. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  448. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -3
  450. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  451. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  452. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
  454. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  455. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  456. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  458. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  459. package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js +2 -0
  460. package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js.map +1 -0
  461. package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js +27 -0
  462. package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js.map +1 -0
  463. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +88 -68
  466. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  468. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  470. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +2 -0
  472. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -0
  473. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +113 -0
  474. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -0
  475. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  476. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ListTable/ListTable.es.js +6 -4
  478. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  479. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  480. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +6 -4
  482. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  483. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  484. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -4
  486. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +34 -32
  490. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +6 -4
  494. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -4
  498. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -4
  502. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -4
  506. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -4
  510. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +5 -4
  514. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +6 -4
  518. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  522. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +93 -90
  526. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -4
  530. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +3 -2
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +9 -7
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +121 -104
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -4
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -4
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +6 -4
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -4
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +178 -175
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -4
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +6 -4
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -4
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -4
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -4
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +20 -17
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +6 -4
  590. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +3 -2
  594. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +17 -15
  598. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +61 -61
  602. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js +2 -0
  604. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -0
  605. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js +15 -0
  606. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -0
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -4
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +7 -5
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +8 -6
  618. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +3 -2
  622. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +6 -4
  626. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -4
  630. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
  634. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  635. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  636. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  637. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -4
  638. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  639. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  640. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -4
  642. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  643. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  644. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +52 -50
  646. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  647. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  648. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +3 -2
  650. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  651. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  652. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -4
  654. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  655. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  656. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +56 -53
  658. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  659. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  660. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
  662. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  663. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  664. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +3 -2
  666. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  667. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +6 -4
  670. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  671. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  672. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +3 -2
  674. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  675. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
  676. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
  677. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +12 -18
  678. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +1 -1
  679. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  680. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  681. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +3 -2
  682. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  683. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  684. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  685. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
  686. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  687. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  688. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  689. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  690. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  691. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  692. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  693. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +6 -4
  694. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  695. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  696. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  697. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +3 -2
  698. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  699. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  700. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  701. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +5 -4
  702. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  703. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  704. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  705. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
  706. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  707. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  708. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  709. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +6 -5
  710. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  711. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  712. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  714. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  715. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  716. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  718. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  719. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  720. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  721. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  722. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  723. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  724. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  725. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  726. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  727. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  728. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  729. package/dist/shared/src/context/DetailsPanelContext.es.js +5 -4
  730. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  731. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  732. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  733. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  734. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  735. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  736. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  737. package/dist/shared/src/context/PowerpackContext.es.js +7 -6
  738. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  739. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  740. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  741. package/dist/shared/src/context/ProjectContext.es.js +5 -4
  742. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  743. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  744. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  745. package/dist/shared/src/context/ProjectFoldersContext.es.js +5 -4
  746. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  747. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  748. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  749. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  750. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  751. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  752. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  753. package/dist/shared/src/context/SubtasksModulesContext.es.js +5 -4
  754. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  755. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  756. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  757. package/dist/shared/src/context/UriContext.es.js +6 -5
  758. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  759. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  760. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  761. package/dist/shared/src/context/WebsocketContext.es.js +8 -6
  762. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  763. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  764. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  765. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  766. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  767. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  768. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  769. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  770. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  771. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  772. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  773. package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
  774. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  775. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  776. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  777. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
  778. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  779. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  780. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  781. package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
  782. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  783. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  784. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  785. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  786. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  787. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  788. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  789. package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
  790. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  791. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  792. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  793. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  794. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  795. package/dist/types/api/generated/graphql.d.ts +129 -0
  796. package/dist/types/api/generated/graphqlLinks.d.ts +74 -0
  797. package/dist/types/api/queries/activities/getActivities.d.ts +459 -0
  798. package/dist/types/api/queries/activities/updateActivities.d.ts +22 -0
  799. package/dist/types/api/queries/entities/getEntity.d.ts +10 -0
  800. package/dist/types/api/queries/entities/getEntityPanel.d.ts +10 -0
  801. package/dist/types/api/queries/entities/updateEntity.d.ts +10 -0
  802. package/dist/types/api/queries/entityLists/getLists.d.ts +10 -0
  803. package/dist/types/api/queries/entityLists/index.d.ts +1 -0
  804. package/dist/types/api/queries/entityLists/listItemsColumnStats.d.ts +312 -0
  805. package/dist/types/api/queries/entityLists/types.d.ts +3 -0
  806. package/dist/types/api/queries/overview/getOverview.d.ts +10 -0
  807. package/dist/types/api/queries/project/getProject.d.ts +10 -0
  808. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +10 -0
  809. package/dist/types/api/queries/users/getUsers.d.ts +10 -0
  810. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +20 -0
  811. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +5 -0
  812. package/dist/types/components/SearchFilter/index.d.ts +1 -0
  813. package/dist/types/containers/Feed/Feed.d.ts +2 -1
  814. package/dist/types/containers/Feed/components/ActivityDate.d.ts +3 -1
  815. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
  816. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +21 -0
  817. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.d.ts +3 -0
  818. package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +8 -0
  819. package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +19 -0
  820. package/dist/types/containers/Feed/components/CommentInput/VersionReviewPill.d.ts +7 -0
  821. package/dist/types/containers/Feed/hooks/useCategoryData.d.ts +7 -0
  822. package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +2 -0
  823. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -0
  824. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +11 -0
  825. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -1
  826. package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +2 -1
  827. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  828. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  829. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +1 -0
  830. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  831. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +2 -0
  832. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useMoveEntities.cjs.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","failedOperations","op","errorDetails","error","errorMessage","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.cjs.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","failedOperations","op","errorDetails","error","errorMessage","nameMatch","toast","handleMoveToRoot","getDisabledFolderIds","disabledIds","targetFolder","movingEntity","movingEntityData","sibling","getDisabledMessage","folderId","folder","conflictingEntity","canMoveToRoot","useMemo"],"mappings":"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"}
@@ -65,6 +65,7 @@ import "../../../api/queries/entities/updateEntity.es.js";
65
65
  import "../../../api/queries/entityLists/getLists.es.js";
66
66
  import "../../../api/queries/entityLists/updateLists.es.js";
67
67
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
68
+ import "../../../api/queries/entityLists/listItemsColumnStats.es.js";
68
69
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
69
70
  import "../../../api/queries/entityLists/listFolders.es.js";
70
71
  import "../../../api/queries/folders/getFolders.es.js";
@@ -229,10 +230,11 @@ import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.e
229
230
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
230
231
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
231
232
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
232
- import "../../Feed/Feed.styled.es.js";
233
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
233
+ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js";
234
234
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
235
235
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
236
+ import "../../Feed/Feed.styled.es.js";
237
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
236
238
  import "@tanstack/react-virtual";
237
239
  import "@tanstack/react-table";
238
240
  import "../widgets/CollapsedWidget.es.js";
@@ -282,7 +284,7 @@ import "../../Views/Views.styled.es.js";
282
284
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
283
285
  import "../../ListTable/ListTableRow.es.js";
284
286
  import "../../ListTable/ListTable.styled.es.js";
285
- const Xe = ({ projectName: f }) => {
287
+ const Ze = ({ projectName: f }) => {
286
288
  const {
287
289
  movingEntities: i,
288
290
  isEntityPickerOpen: M,
@@ -443,6 +445,6 @@ const Xe = ({ projectName: f }) => {
443
445
  };
444
446
  };
445
447
  export {
446
- Xe as useMoveEntities
448
+ Ze as useMoveEntities
447
449
  };
448
450
  //# sourceMappingURL=useMoveEntities.es.js.map
@@ -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","failedOperations","op","errorDetails","error","errorMessage","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","failedOperations","op","errorDetails","error","errorMessage","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/dataImport.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/projectFolders.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/columnStats/metricTargets.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/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.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/folders/getFolderDeleteInfo.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/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.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/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.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("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.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/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("../../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("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.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/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");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("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.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("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");const S=require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("uuid");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");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(t=>t.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:t,sourceEntityType:e,linkType:y,direction:p,targetEntityType:h,operation:j}=n,m=new Set;u.forEach(r=>{r.targetEntityIds.forEach(q=>m.add(q))});const l=[],T=[],C=L(t);if(!C){console.warn(`Entity not found: ${t}`);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:t,entityType:e},linkType:y,direction:p,projectName:s});for(const r of m){const q=x.getEntityId();l.push({targetEntityId:r,linkId:q,sourceEntityId:t,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}else if(j==="merge"){const r=new Set;Array.isArray(E)&&E.forEach(q=>{q.entityType===h&&q.direction===p&&q.linkType===y&&r.add(q.node.id)}),console.log(r);for(const q of m)if(!r.has(q)){const v=x.getEntityId();l.push({targetEntityId:q,linkId:v,sourceEntityId:t,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(()=>{})},t=()=>{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],[t])}}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/dataImport.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/projectFolders.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/columnStats/metricTargets.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/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.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/listItemsColumnStats.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/folders/getFolderDeleteInfo.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/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.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/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.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("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.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/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("../../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("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.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/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");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/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.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("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");const S=require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("uuid");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");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(t=>t.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:t,sourceEntityType:e,linkType:y,direction:p,targetEntityType:h,operation:j}=n,m=new Set;u.forEach(r=>{r.targetEntityIds.forEach(q=>m.add(q))});const l=[],T=[],C=L(t);if(!C){console.warn(`Entity not found: ${t}`);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:t,entityType:e},linkType:y,direction:p,projectName:s});for(const r of m){const q=x.getEntityId();l.push({targetEntityId:r,linkId:q,sourceEntityId:t,sourceEntityType:e,targetEntityType:h,linkType:y,direction:p,projectName:s})}}else if(j==="merge"){const r=new Set;Array.isArray(E)&&E.forEach(q=>{q.entityType===h&&q.direction===p&&q.linkType===y&&r.add(q.node.id)}),console.log(r);for(const q of m)if(!r.has(q)){const v=x.getEntityId();l.push({targetEntityId:q,linkId:v,sourceEntityId:t,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(()=>{})},t=()=>{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],[t])}}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":"kvgBA+CA,MAAMA,EAAiBC,GAA+B,CACpD,KAAM,CAAE,YAAaC,CAAA,EAAuBC,oBAAA,EACtC,CAAE,cAAAC,CAAA,EAAkBC,yBAAA,EACpBC,EAAoCJ,EACpC,CAAE,QAAAK,CAAA,EAAYC,iBAAA,EAGd,CAACC,CAAU,EAAIC,8BAAA,EACf,CAACC,CAAO,EAAIC,8BAAA,EAuMlB,MAAO,CAAE,gBApMeC,EAAAA,YACtB,MAAOC,GAA8B,CACnC,GAAI,CAACR,GAAe,CAACQ,EAAY,OAAQ,OAGzC,MAAMC,MAA0B,IAEhC,UAAWC,KAAUF,EAAa,CAChC,MAAMG,EAAM,GAAGD,EAAO,cAAc,IAAIA,EAAO,QAAQ,IAAIA,EAAO,SAAS,GACtED,EAAoB,IAAIE,CAAG,GAC9BF,EAAoB,IAAIE,EAAK,EAAE,EAEjCF,EAAoB,IAAIE,CAAG,EAAG,KAAKD,CAAM,CAC3C,CAEA,MAAME,EAAkC,CAAA,EAElCC,EAA4B,CAAA,EAC5BC,EAAiC,CAAA,EAGvC,SAAW,CAAA,CAAGC,CAAO,IAAKN,EAAqB,CAC7C,KAAM,CAAE,eAAAO,CAAA,EAAmBD,EAAQ,CAAC,EAC9BE,MAAc,IAEpB,GADAF,EAAQ,QAASG,GAAMA,EAAE,gBAAgB,QAASC,GAAOF,EAAQ,IAAIE,CAAE,CAAC,CAAC,EACrEF,EAAQ,IAAID,CAAc,EAAG,CAC/BI,EAAAA,MAAM,MAAM,oCAAoC,EAChD,MACF,CACF,CAEA,SAAW,CAACT,EAAKI,CAAO,IAAKN,EAAqB,CAChD,MAAMY,EAAcN,EAAQ,CAAC,EACvB,CACJ,eAAAC,EACA,iBAAAM,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,UAAAC,CAAA,EACEL,EAGEM,MAAyB,IAC/BZ,EAAQ,QAASL,GAAW,CAC1BA,EAAO,gBAAgB,QAASS,GAAOQ,EAAmB,IAAIR,CAAE,CAAC,CACnE,CAAC,EAED,MAAMS,EAA0B,CAAA,EAC1BC,EAAgC,CAAA,EAGhCC,EAAahC,EAAckB,CAAc,EAC/C,GAAI,CAACc,EAAY,CACf,QAAQ,KAAK,qBAAqBd,CAAc,EAAE,EAClD,QACF,CAGA,MAAMe,EAAeD,EAAW,MAEhC,GAAIJ,IAAc,UAAW,CAE3B,GAAI,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,UAAA,EAEnB,OAAQ,CAAE,SAAUhB,EAAgB,WAAYM,CAAA,EAChD,SAAAC,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,EAMP,UAAWiC,KAAkBN,EAAoB,CAC/C,MAAMO,EAASC,EAAAA,YAAA,EAEfP,EAAW,KAAK,CACd,eAAAK,EACA,OAAAC,EACA,eAAAlB,EACA,iBAAAM,EACA,iBAAAG,EACA,SAAAF,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,CACH,CACF,SAAW0B,IAAc,QAAS,CAEhC,MAAMU,MAAwB,IAC1B,MAAM,QAAQL,CAAY,GAC5BA,EAAa,QAASC,GAAS,CAE3BA,EAAK,aAAeP,GACpBO,EAAK,YAAcR,GACnBQ,EAAK,WAAaT,GAElBa,EAAkB,IAAIJ,EAAK,KAAK,EAAE,CAEtC,CAAC,EAGH,QAAQ,IAAII,CAAiB,EAG7B,UAAWH,KAAkBN,EAC3B,GAAI,CAACS,EAAkB,IAAIH,CAAc,EAAG,CAC1C,MAAMC,EAASC,EAAAA,YAAA,EAEfP,EAAW,KAAK,CACd,eAAAK,EACA,OAAAC,EACA,eAAAlB,EACA,iBAAAM,EACA,iBAAAG,EACA,SAAAF,EACA,UAAAC,EACA,YAAAxB,CAAA,CACD,CACH,CAEJ,CAEI6B,EAAc,OAAS,IACzBjB,EAAe,KAAKyB,EAAAA,oBAAoBR,EAAe1B,CAAU,CAAC,EAClEW,EAAe,KAAK,GAAGe,CAAa,GAElCD,EAAW,OAAS,IACtBhB,EAAe,KAAK0B,EAAAA,iBAAiBV,EAAYvB,CAAO,CAAC,EACzDQ,EAAa,KAAK,GAAGe,CAAU,EAEnC,CACA,GAAI,CAKF,GAHA,MAAM,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,gBAAA,EAC1D,OAAQ,CAAE,SAAUA,EAAK,eAAgB,WAAYA,EAAK,gBAAA,CAAiB,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,CAAA,EAC3BH,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,CAAC,CAAC,CACrD,EAEMC,EAAe,IAAM,CACzB,MAAMD,EAAyB,CAAA,EAC3B5B,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,CAAC,CAAC,CACrD,EAEAzC,EAAQ,YAAY,CAACwC,CAAY,EAAG,CAACE,CAAY,CAAC,CACpD,CACF,OAASC,EAAO,CACd,MAAMA,CACR,CACF,EACA,CAAC5C,EAAaF,EAAeK,EAAYE,EAASJ,CAAO,CAAA,CAGlD,CACX"}
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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"}
@@ -64,6 +64,7 @@ import "../../../api/queries/entities/updateEntity.es.js";
64
64
  import "../../../api/queries/entityLists/getLists.es.js";
65
65
  import "../../../api/queries/entityLists/updateLists.es.js";
66
66
  import "../../../api/queries/entityLists/getListsAttributes.es.js";
67
+ import "../../../api/queries/entityLists/listItemsColumnStats.es.js";
67
68
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
68
69
  import "../../../api/queries/entityLists/listFolders.es.js";
69
70
  import "../../../api/queries/folders/getFolders.es.js";
@@ -231,10 +232,11 @@ import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.e
231
232
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
232
233
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
233
234
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
234
- import "../../Feed/Feed.styled.es.js";
235
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
235
+ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js";
236
236
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
237
237
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
238
+ import "../../Feed/Feed.styled.es.js";
239
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
238
240
  import "@tanstack/react-virtual";
239
241
  import "@tanstack/react-table";
240
242
  import "../widgets/CollapsedWidget.es.js";
@@ -284,7 +286,7 @@ import "../../Views/Views.styled.es.js";
284
286
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
285
287
  import "../../ListTable/ListTableRow.es.js";
286
288
  import "../../ListTable/ListTable.styled.es.js";
287
- const rm = (H) => {
289
+ const mm = (H) => {
288
290
  const { projectName: A } = R(), { getEntityById: j } = S(), n = A, { history: E } = B(), [u] = M(), [l] = $();
289
291
  return { pasteTableLinks: x(
290
292
  async (w) => {
@@ -406,6 +408,6 @@ const rm = (H) => {
406
408
  ) };
407
409
  };
408
410
  export {
409
- rm as default
411
+ mm as default
410
412
  };
411
413
  //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,KAAgB,CAACC,MAA+B;AACpD,QAAM,EAAE,aAAaC,EAAA,IAAuBC,EAAA,GACtC,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpBC,IAAoCJ,GACpC,EAAE,SAAAK,EAAA,IAAYC,EAAA,GAGd,CAACC,CAAU,IAAIC,EAAA,GACf,CAACC,CAAO,IAAIC,EAAA;AAuMlB,SAAO,EAAE,iBApMeC;AAAA,IACtB,OAAOC,MAA8B;AACnC,UAAI,CAACR,KAAe,CAACQ,EAAY,OAAQ;AAGzC,YAAMC,wBAA0B,IAAA;AAEhC,iBAAWC,KAAUF,GAAa;AAChC,cAAMG,IAAM,GAAGD,EAAO,cAAc,IAAIA,EAAO,QAAQ,IAAIA,EAAO,SAAS;AAC3E,QAAKD,EAAoB,IAAIE,CAAG,KAC9BF,EAAoB,IAAIE,GAAK,EAAE,GAEjCF,EAAoB,IAAIE,CAAG,EAAG,KAAKD,CAAM;AAAA,MAC3C;AAEA,YAAME,IAAkC,CAAA,GAElCC,IAA4B,CAAA,GAC5BC,IAAiC,CAAA;AAGvC,iBAAW,CAAA,EAAGC,CAAO,KAAKN,GAAqB;AAC7C,cAAM,EAAE,gBAAAO,EAAA,IAAmBD,EAAQ,CAAC,GAC9BE,wBAAc,IAAA;AAEpB,YADAF,EAAQ,QAAQ,CAACG,MAAMA,EAAE,gBAAgB,QAAQ,CAACC,MAAOF,EAAQ,IAAIE,CAAE,CAAC,CAAC,GACrEF,EAAQ,IAAID,CAAc,GAAG;AAC/B,UAAAI,EAAM,MAAM,oCAAoC;AAChD;AAAA,QACF;AAAA,MACF;AAEA,iBAAW,CAACT,GAAKI,CAAO,KAAKN,GAAqB;AAChD,cAAMY,IAAcN,EAAQ,CAAC,GACvB;AAAA,UACJ,gBAAAC;AAAA,UACA,kBAAAM;AAAA,UACA,UAAAC;AAAA,UACA,WAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,WAAAC;AAAA,QAAA,IACEL,GAGEM,wBAAyB,IAAA;AAC/B,QAAAZ,EAAQ,QAAQ,CAACL,MAAW;AAC1B,UAAAA,EAAO,gBAAgB,QAAQ,CAACS,MAAOQ,EAAmB,IAAIR,CAAE,CAAC;AAAA,QACnE,CAAC;AAED,cAAMS,IAA0B,CAAA,GAC1BC,IAAgC,CAAA,GAGhCC,IAAahC,EAAckB,CAAc;AAC/C,YAAI,CAACc,GAAY;AACf,kBAAQ,KAAK,qBAAqBd,CAAc,EAAE;AAClD;AAAA,QACF;AAGA,cAAMe,IAAeD,EAAW;AAEhC,YAAIJ,MAAc,WAAW;AAE3B,cAAI,MAAM,QAAQK,CAAY;AAC5B,uBAAWC,KAAQD;AACjB,cACEC,EAAK,eAAeP,KACpBO,EAAK,cAAcR,KACnBQ,EAAK,aAAaT,EAAS,MAAM,GAAG,EAAE,CAAC,KAEvCM,EAAc,KAAK;AAAA,gBACjB,IAAIG,EAAK;AAAA,gBACT,QAAQ;AAAA,kBACN,UAAUA,EAAK,KAAK;AAAA,kBACpB,YAAYA,EAAK;AAAA,gBAAA;AAAA,gBAEnB,QAAQ,EAAE,UAAUhB,GAAgB,YAAYM,EAAA;AAAA,gBAChD,UAAAC;AAAA,gBACA,WAAAC;AAAA,gBACA,aAAAxB;AAAA,cAAA,CACD;AAMP,qBAAWiC,KAAkBN,GAAoB;AAC/C,kBAAMO,IAASC,EAAA;AAEf,YAAAP,EAAW,KAAK;AAAA,cACd,gBAAAK;AAAA,cACA,QAAAC;AAAA,cACA,gBAAAlB;AAAA,cACA,kBAAAM;AAAA,cACA,kBAAAG;AAAA,cACA,UAAAF;AAAA,cACA,WAAAC;AAAA,cACA,aAAAxB;AAAA,YAAA,CACD;AAAA,UACH;AAAA,QACF,WAAW0B,MAAc,SAAS;AAEhC,gBAAMU,wBAAwB,IAAA;AAC9B,UAAI,MAAM,QAAQL,CAAY,KAC5BA,EAAa,QAAQ,CAACC,MAAS;AAC7B,YACEA,EAAK,eAAeP,KACpBO,EAAK,cAAcR,KACnBQ,EAAK,aAAaT,KAElBa,EAAkB,IAAIJ,EAAK,KAAK,EAAE;AAAA,UAEtC,CAAC,GAGH,QAAQ,IAAII,CAAiB;AAG7B,qBAAWH,KAAkBN;AAC3B,gBAAI,CAACS,EAAkB,IAAIH,CAAc,GAAG;AAC1C,oBAAMC,IAASC,EAAA;AAEf,cAAAP,EAAW,KAAK;AAAA,gBACd,gBAAAK;AAAA,gBACA,QAAAC;AAAA,gBACA,gBAAAlB;AAAA,gBACA,kBAAAM;AAAA,gBACA,kBAAAG;AAAA,gBACA,UAAAF;AAAA,gBACA,WAAAC;AAAA,gBACA,aAAAxB;AAAA,cAAA,CACD;AAAA,YACH;AAAA,QAEJ;AAEA,QAAI6B,EAAc,SAAS,MACzBjB,EAAe,KAAKyB,EAAoBR,GAAe1B,CAAU,CAAC,GAClEW,EAAe,KAAK,GAAGe,CAAa,IAElCD,EAAW,SAAS,MACtBhB,EAAe,KAAK0B,EAAiBV,GAAYvB,CAAO,CAAC,GACzDQ,EAAa,KAAK,GAAGe,CAAU;AAAA,MAEnC;AACA,UAAI;AAKF,YAHA,MAAM,QAAQ,IAAIhB,CAAc,GAG5BX,MAAYY,EAAa,SAAS,KAAKC,EAAe,SAAS,IAAI;AAErE,gBAAMyB,IAAgC1B,EAAa,IAAI,CAACmB,OAAU;AAAA,YAChE,IAAIA,EAAK;AAAA,YACT,aAAaA,EAAK;AAAA,YAClB,UAAUA,EAAK;AAAA,YACf,WAAWA,EAAK;AAAA,YAChB,QAAQ,EAAE,UAAUA,EAAK,gBAAgB,YAAYA,EAAK,iBAAA;AAAA,YAC1D,QAAQ,EAAE,UAAUA,EAAK,gBAAgB,YAAYA,EAAK,iBAAA;AAAA,UAAiB,EAC3E,GAEIQ,IAA4B1B,EAAe,IAAI,CAACkB,OAAU;AAAA,YAC9D,gBAAgBA,EAAK,OAAO;AAAA,YAC5B,QAAQA,EAAK;AAAA,YACb,gBAAgBA,EAAK,OAAO;AAAA,YAC5B,kBAAkBA,EAAK,OAAO;AAAA,YAC9B,kBAAkBA,EAAK,OAAO;AAAA,YAC9B,UAAUA,EAAK;AAAA,YACf,WAAWA,EAAK;AAAA,YAChB,aAAaA,EAAK;AAAA,UAAA,EAClB,GAGIS,IAAe,MAAM;AACzB,kBAAMC,IAAyB,CAAA;AAC/B,YAAIH,EAAc,UAAQG,EAAM,KAAKL,EAAoBE,GAAepC,CAAU,CAAC,GAC/EqC,EAAa,UAAQE,EAAM,KAAKJ,EAAiBE,GAAcnC,CAAO,CAAC,GACvEqC,EAAM,UAAQ,QAAQ,IAAIA,CAAK,EAAE,MAAM,MAAM;AAAA,YAAC,CAAC;AAAA,UACrD,GAEMC,IAAe,MAAM;AACzB,kBAAMD,IAAyB,CAAA;AAC/B,YAAI5B,EAAe,UAAQ4B,EAAM,KAAKL,EAAoBvB,GAAgBX,CAAU,CAAC,GACjFU,EAAa,UAAQ6B,EAAM,KAAKJ,EAAiBzB,GAAcR,CAAO,CAAC,GACvEqC,EAAM,UAAQ,QAAQ,IAAIA,CAAK,EAAE,MAAM,MAAM;AAAA,YAAC,CAAC;AAAA,UACrD;AAEA,UAAAzC,EAAQ,YAAY,CAACwC,CAAY,GAAG,CAACE,CAAY,CAAC;AAAA,QACpD;AAAA,MACF,SAASC,GAAO;AACd,cAAMA;AAAA,MACR;AAAA,IACF;AAAA,IACA,CAAC5C,GAAaF,GAAeK,GAAYE,GAASJ,CAAO;AAAA,EAAA,EAGlD;AACX;"}