@ynput/ayon-frontend-shared 0.3.40 → 0.3.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +29 -27
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +225 -223
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +25 -16
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs15.js +1 -1
  11. package/dist/_virtual/index.cjs19.js +1 -1
  12. package/dist/_virtual/index.cjs4.js +1 -1
  13. package/dist/_virtual/index.cjs5.js +1 -1
  14. package/dist/_virtual/index.cjs6.js +1 -1
  15. package/dist/_virtual/index.cjs8.js +1 -1
  16. package/dist/_virtual/index.es15.js +2 -2
  17. package/dist/_virtual/index.es16.js +2 -2
  18. package/dist/_virtual/index.es17.js +2 -2
  19. package/dist/_virtual/index.es18.js +2 -2
  20. package/dist/_virtual/index.es19.js +2 -2
  21. package/dist/_virtual/index.es4.js +5 -2
  22. package/dist/_virtual/index.es4.js.map +1 -1
  23. package/dist/_virtual/index.es5.js +2 -5
  24. package/dist/_virtual/index.es5.js.map +1 -1
  25. package/dist/_virtual/index.es6.js +2 -2
  26. package/dist/_virtual/index.es8.js +2 -2
  27. package/dist/api.cjs.js +1 -1
  28. package/dist/api.es.js +227 -227
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +16 -14
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  35. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  36. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  37. package/dist/node_modules/remove-accents/index.es.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  39. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  40. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  41. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  42. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  43. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  44. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  45. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  52. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  54. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  55. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  56. package/dist/shared/src/api/generated/graphql.cjs.js +55 -79
  57. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/graphql.es.js +278 -154
  59. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/graphqlLinks.es.js +70 -19
  62. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  64. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/activities/updateActivities.es.js +40 -43
  66. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  67. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  68. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +149 -55
  70. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  71. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +105 -51
  76. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  78. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  80. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/entityLists/getLists.es.js +178 -130
  82. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  84. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +94 -40
  86. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  88. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  89. package/dist/shared/src/api/queries/folders/getFolders.es.js +109 -55
  90. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  91. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  92. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
  94. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  95. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  96. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  97. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +117 -63
  98. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  99. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  100. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/links/getLinks.es.js +108 -54
  102. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  103. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  104. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  105. package/dist/shared/src/api/queries/overview/getOverview.es.js +220 -167
  106. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  107. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  108. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
  110. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  111. package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
  112. package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
  113. package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
  114. package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
  115. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  116. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  117. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +133 -80
  118. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  119. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  120. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  121. package/dist/shared/src/api/queries/review/getReview.es.js +127 -75
  122. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  123. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  124. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  125. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +142 -90
  126. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  127. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
  128. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  129. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  130. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  131. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  132. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +537 -331
  134. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  135. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  136. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  137. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +124 -29
  138. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  139. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  140. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  141. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +140 -45
  142. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  143. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  144. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  145. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +9 -7
  146. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  147. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -4
  149. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -18
  152. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  153. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  154. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +108 -13
  156. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -3
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +119 -24
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +97 -2
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  167. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  168. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  169. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -7
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +9 -7
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  175. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  176. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -5
  177. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  178. package/dist/shared/src/components/LinksManager/LinksManager.es.js +9 -9
  179. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  180. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  181. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -7
  182. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.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.es.js +4 -4
  185. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  186. package/dist/shared/src/components/Menu/Menu.es.js +7 -7
  187. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  188. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  189. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +23 -21
  190. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  191. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  192. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  193. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +57 -55
  194. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  195. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  196. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  197. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +19 -16
  198. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  199. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  200. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  201. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +10 -8
  202. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  203. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  204. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  205. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
  206. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  207. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  208. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  209. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +9 -7
  210. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  211. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  212. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  213. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -8
  214. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  215. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  216. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -7
  218. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  219. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  220. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +9 -7
  222. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  223. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  224. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  225. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +340 -354
  226. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  227. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  228. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  229. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +11 -9
  230. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  231. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  232. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  233. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +9 -7
  234. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  235. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  236. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  237. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +122 -27
  238. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  239. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  240. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  241. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +117 -22
  242. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  243. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  244. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  245. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +9 -7
  246. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  247. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  248. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  249. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +13 -11
  250. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  251. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  252. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -7
  254. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  255. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  256. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/Actions/Actions.es.js +42 -42
  258. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  259. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  260. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
  262. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  263. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
  264. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
  266. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  267. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  268. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -7
  270. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  271. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  272. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +119 -124
  274. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  276. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +9 -7
  278. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  279. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  280. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -7
  282. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  283. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  284. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +139 -128
  286. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  287. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
  288. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  291. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
  292. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
  293. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
  294. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
  295. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
  296. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
  297. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
  298. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
  299. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +13 -11
  302. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  304. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +115 -20
  306. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  307. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  308. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +9 -7
  310. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +23 -21
  314. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +9 -7
  318. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +9 -7
  322. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
  324. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
  325. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
  326. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
  327. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
  330. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +105 -10
  334. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -2
  339. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  340. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +31 -29
  342. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  343. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  344. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +9 -7
  346. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  347. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  348. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +9 -7
  350. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  351. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  352. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +9 -7
  354. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  355. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  356. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +106 -11
  358. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  359. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  360. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +122 -27
  362. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  363. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  364. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +9 -7
  366. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  367. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  368. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +91 -80
  370. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  371. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  372. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -7
  374. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  375. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  376. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +119 -24
  378. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  379. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  380. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +29 -29
  382. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  384. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +9 -7
  386. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  388. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +13 -11
  390. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  392. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +104 -9
  394. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  396. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +1 -1
  397. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  398. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +9 -7
  400. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
  402. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
  403. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
  404. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
  405. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  406. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +185 -87
  408. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  409. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  410. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +105 -10
  412. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  413. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  414. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +108 -13
  416. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  417. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  418. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ListTable/ListTable.es.js +22 -20
  420. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  421. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  422. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +9 -7
  424. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  425. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  426. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +9 -7
  428. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +622 -616
  432. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +72 -70
  436. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
  440. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +9 -7
  444. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +9 -7
  448. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +9 -7
  452. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +23 -21
  456. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +9 -7
  460. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +178 -83
  464. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +31 -29
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +24 -22
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +9 -7
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +9 -7
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +26 -24
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +9 -7
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +72 -72
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +26 -24
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +25 -23
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +9 -7
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +10 -8
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -22
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +13 -16
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +48 -42
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +38 -36
  528. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +9 -7
  532. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -8
  536. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +9 -7
  540. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +11 -9
  544. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +4 -4
  547. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +25 -23
  550. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -7
  554. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +4 -4
  557. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  558. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +175 -80
  560. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  562. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +107 -12
  564. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  565. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  566. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +42 -40
  568. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  569. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  570. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +9 -7
  572. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  573. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  574. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
  576. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  577. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  578. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +9 -7
  580. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  581. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  582. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +273 -124
  584. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  585. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
  586. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
  587. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
  588. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
  589. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  590. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  591. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +4 -2
  592. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  593. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
  594. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
  595. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +156 -0
  596. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
  597. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
  598. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
  599. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +187 -0
  600. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
  601. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
  602. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
  603. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +143 -0
  604. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
  605. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  606. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +47 -43
  608. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  609. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
  610. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  611. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +8 -13
  612. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  613. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +2 -0
  614. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +1 -0
  615. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +8 -0
  616. package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +1 -0
  617. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  618. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  619. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +124 -29
  620. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  621. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  622. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +2 -2
  623. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  624. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -6
  626. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  627. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  628. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +113 -18
  630. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  631. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  632. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +158 -84
  634. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  635. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  636. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +2 -2
  637. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  639. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  640. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  641. package/dist/shared/src/context/DetailsPanelContext.es.js +64 -63
  642. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  643. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  644. package/dist/shared/src/context/PowerpackContext.es.js +2 -2
  645. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  646. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  647. package/dist/shared/src/context/ProjectContext.es.js +83 -66
  648. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  649. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  650. package/dist/shared/src/context/ProjectFoldersContext.es.js +2 -2
  651. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  652. package/dist/shared/src/context/SubtasksModulesContext.es.js +2 -2
  653. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  654. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  655. package/dist/shared/src/context/UriContext.es.js +1 -1
  656. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  657. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  658. package/dist/shared/src/context/WebsocketContext.es.js +18 -16
  659. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  660. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  661. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  662. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +2 -2
  663. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  664. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  665. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +115 -20
  666. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  667. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  668. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  669. package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
  670. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
  671. package/dist/shared/src/util/getBundleMode.es.js +118 -0
  672. package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
  673. package/dist/types/api/generated/graphql.d.ts +640 -887
  674. package/dist/types/api/generated/graphqlLinks.d.ts +190 -284
  675. package/dist/types/api/queries/activities/getActivities.d.ts +144 -137
  676. package/dist/types/api/queries/activities/updateActivities.d.ts +288 -274
  677. package/dist/types/api/queries/columnStats/columnStats.d.ts +3 -21
  678. package/dist/types/api/queries/entities/getEntity.d.ts +144 -137
  679. package/dist/types/api/queries/entities/getEntityPanel.d.ts +144 -137
  680. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
  681. package/dist/types/api/queries/entities/updateEntity.d.ts +144 -137
  682. package/dist/types/api/queries/entityLists/getLists.d.ts +1406 -1712
  683. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  684. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +66 -66
  685. package/dist/types/api/queries/overview/getOverview.d.ts +630 -623
  686. package/dist/types/api/queries/products/createProduct.d.ts +2 -2
  687. package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
  688. package/dist/types/api/queries/products/getProduct.d.ts +259 -0
  689. package/dist/types/api/queries/project/getProject.d.ts +264 -257
  690. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +192 -185
  691. package/dist/types/api/queries/users/getUsers.d.ts +177 -170
  692. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +784 -770
  693. package/dist/types/api/queries/versions/updateVersions.d.ts +106 -143
  694. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  695. package/dist/types/containers/Actions/Actions.d.ts +3 -2
  696. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
  697. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
  698. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
  699. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
  700. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
  701. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  702. package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
  703. package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -2
  704. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
  705. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  706. package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
  707. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -19
  708. package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
  709. package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
  710. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
  711. package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
  712. package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +20 -0
  713. package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
  714. package/dist/types/containers/Slicer/types.d.ts +7 -0
  715. package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +5 -3
  716. package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
  717. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  718. package/dist/types/context/DetailsPanelContext.d.ts +2 -1
  719. package/dist/types/context/ProjectContext.d.ts +2 -1
  720. package/dist/types/util/getBundleMode.d.ts +4 -0
  721. package/dist/types/util/index.d.ts +1 -0
  722. package/dist/util.cjs.js +1 -1
  723. package/dist/util.es.js +33 -30
  724. package/dist/util.es.js.map +1 -1
  725. package/package.json +3 -3
  726. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
  727. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
  728. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
  729. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
  730. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
@@ -200,7 +200,12 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
200
200
  import "../../../components/SizeSlider/SizeSlider.es.js";
201
201
  import "react-router-dom";
202
202
  import "../../Slicer/components/Slicer.es.js";
203
- import "../../Slicer/context/SlicerContext.es.js";
203
+ import "../../Views/ViewsMenu/ViewsMenu.es.js";
204
+ import "../../Views/context/ViewsContextInstance.es.js";
205
+ import "../../Views/Views.styled.es.js";
206
+ import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
207
+ import "../../Slicer/context/SlicerContextInstance.es.js";
208
+ import "../../Slicer/components/SlicerDropdownFallback.es.js";
204
209
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
205
210
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
206
211
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
@@ -271,6 +276,7 @@ import "../components/HeaderActionButton.es.js";
271
276
  import "../components/TableFooterRow.es.js";
272
277
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
273
278
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
279
+ import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
274
280
  import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
275
281
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
276
282
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -282,13 +288,9 @@ import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.
282
288
  import "../../Actions/Actions.styled.es.js";
283
289
  import "../../Actions/ActionsDropdown/ActionsDropdown.es.js";
284
290
  import "../../Actions/ActionIcon.es.js";
285
- import "../../Views/ViewsMenu/ViewsMenu.es.js";
286
- import "../../Views/context/ViewsContextInstance.es.js";
287
- import "../../Views/Views.styled.es.js";
288
- import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
289
291
  import "../../ListTable/ListTableRow.es.js";
290
292
  import "../../ListTable/ListTable.styled.es.js";
291
- const im = ({ projectName: f }) => {
293
+ const em = ({ projectName: f }) => {
292
294
  const {
293
295
  movingEntities: i,
294
296
  isEntityPickerOpen: M,
@@ -449,6 +451,6 @@ const im = ({ projectName: f }) => {
449
451
  };
450
452
  };
451
453
  export {
452
- im as useMoveEntities
454
+ em as useMoveEntities
453
455
  };
454
456
  //# 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/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/SearchFilter/CustomDateRangeDialog.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("../../Feed/components/FeedSearchFilter.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("../widgets/LinksWidget.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("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.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/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.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("../../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("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.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/SearchFilter/CustomDateRangeDialog.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("../../Feed/components/FeedSearchFilter.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("../widgets/LinksWidget.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("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.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/LinkedTaskRow.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/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.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("../../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":"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"}
1
+ {"version":3,"file":"usePasteLinks.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/usePasteLinks.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { useCreateEntityLinkMutation, useDeleteEntityLinkMutation } from '@shared/api'\nimport {\n addMultipleLinks,\n removeMultipleLinks,\n LinkToAdd,\n LinkToRemove,\n} from '@shared/components/LinksManager/utils/linkUpdates'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityId } from '@shared/util'\nimport { PasteMethod } from '../context'\nimport { useCellEditing } from '@shared/containers'\nimport { toast } from 'react-toastify'\nimport { useProjectContext } from '@shared/context'\n\n/**\n * Represents a link update operation for table links\n */\nexport type LinkUpdate = {\n /** Row ID in the table */\n rowId: string\n /** ID of the source entity (the entity that will have links) */\n sourceEntityId: string\n /** Type of the source entity (e.g., 'folder', 'task') */\n sourceEntityType: string\n /** Type of link (e.g., 'workflow', 'dependency') */\n linkType: string\n /** Direction of the link from source entity perspective */\n direction: 'in' | 'out'\n /** Type of the target entities that will be linked */\n targetEntityType: string\n /**\n * Operation type:\n * - 'replace': Remove all existing links of this type and add new ones\n * - 'merge': Keep existing links and add new ones (skip duplicates)\n */\n operation: PasteMethod\n /** Array of target entity IDs to link to */\n targetEntityIds: string[]\n}\n\nexport type PasteTableLinks = (linkUpdates: LinkUpdate[]) => Promise<void>\n\ninterface usePasteLinksProps {\n projectName?: string\n}\n\nconst usePasteLinks = (props?: usePasteLinksProps) => {\n const { projectName: contextProjectName } = useProjectContext()\n const { getEntityById } = useProjectTableContext()\n const projectName = props?.projectName || contextProjectName\n const { history } = useCellEditing()\n\n // Add mutation hooks for link operations\n const [deleteLink] = useDeleteEntityLinkMutation()\n const [addLink] = useCreateEntityLinkMutation()\n\n // Handle link updates using the utility functions\n const pasteTableLinks = useCallback<PasteTableLinks>(\n async (linkUpdates: LinkUpdate[]) => {\n if (!projectName || !linkUpdates.length) return\n\n // Group operations by entity and link type for processing\n const operationsToProcess = new Map<string, LinkUpdate[]>()\n\n for (const update of linkUpdates) {\n const key = `${update.sourceEntityId}-${update.linkType}-${update.direction}`\n if (!operationsToProcess.has(key)) {\n operationsToProcess.set(key, [])\n }\n operationsToProcess.get(key)!.push(update)\n }\n\n const updatePromises: Promise<void>[] = []\n // Collect all adds/removes across all operations to build a single history entry\n const addedInPaste: LinkToAdd[] = []\n const removedInPaste: LinkToRemove[] = []\n\n // Pre-flight validation: detect any self-referential links across the whole paste\n for (const [, updates] of operationsToProcess) {\n const { sourceEntityId } = updates[0]\n const targets = new Set<string>()\n updates.forEach((u) => u.targetEntityIds.forEach((id) => targets.add(id)))\n if (targets.has(sourceEntityId)) {\n toast.error(\"You can't link an entity to itself\")\n return\n }\n }\n // Process each unique entity-linkType-direction combination\n for (const [key, updates] of operationsToProcess) {\n const firstUpdate = updates[0]\n const {\n sourceEntityId,\n sourceEntityType,\n linkType,\n direction,\n targetEntityType,\n operation,\n } = firstUpdate\n\n // Collect all target entity IDs from all updates for this combination\n const allTargetEntityIds = new Set<string>()\n updates.forEach((update) => {\n update.targetEntityIds.forEach((id) => allTargetEntityIds.add(id))\n })\n\n const linksToAdd: LinkToAdd[] = []\n const linksToRemove: LinkToRemove[] = []\n\n // Get current links for this entity and link type\n const entityData = getEntityById(sourceEntityId)\n if (!entityData) {\n console.warn(`Entity not found: ${sourceEntityId}`)\n continue\n }\n\n // Get current links for this link type and direction\n const currentLinks = entityData.links\n\n if (operation === 'replace') {\n // Remove all current links of this (linkType + direction + targetEntityType) only.\n if (Array.isArray(currentLinks)) {\n for (const link of currentLinks) {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType.split('|')[0]\n ) {\n linksToRemove.push({\n id: link.id,\n target: {\n entityId: link.node.id,\n entityType: link.entityType,\n },\n source: { entityId: sourceEntityId, entityType: sourceEntityType },\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n // Add all new links\n for (const targetEntityId of allTargetEntityIds) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n } else if (operation === 'merge') {\n // Get existing target entity IDs for this (linkType + direction + targetEntityType)\n const existingTargetIds = new Set<string>()\n if (Array.isArray(currentLinks)) {\n currentLinks.forEach((link) => {\n if (\n link.entityType === targetEntityType &&\n link.direction === direction &&\n link.linkType === linkType\n ) {\n existingTargetIds.add(link.node.id)\n }\n })\n }\n\n console.log(existingTargetIds)\n\n // Only add links that don't already exist\n for (const targetEntityId of allTargetEntityIds) {\n if (!existingTargetIds.has(targetEntityId)) {\n const linkId = getEntityId()\n\n linksToAdd.push({\n targetEntityId,\n linkId,\n sourceEntityId,\n sourceEntityType,\n targetEntityType,\n linkType,\n direction,\n projectName,\n })\n }\n }\n }\n\n if (linksToRemove.length > 0) {\n updatePromises.push(removeMultipleLinks(linksToRemove, deleteLink))\n removedInPaste.push(...linksToRemove)\n }\n if (linksToAdd.length > 0) {\n updatePromises.push(addMultipleLinks(linksToAdd, addLink))\n addedInPaste.push(...linksToAdd)\n }\n }\n try {\n // Execute all link operations in parallel\n await Promise.all(updatePromises)\n\n // Push a single history entry that undoes BOTH: remove added links and re-add removed links\n if (history && (addedInPaste.length > 0 || removedInPaste.length > 0)) {\n // Prepare inverse operations for undo\n const addedToRemove: LinkToRemove[] = addedInPaste.map((link) => ({\n id: link.linkId,\n projectName: link.projectName,\n linkType: link.linkType,\n direction: link.direction,\n target: { entityId: link.targetEntityId, entityType: link.targetEntityType },\n source: { entityId: link.sourceEntityId, entityType: link.sourceEntityType },\n }))\n\n const removedToAdd: LinkToAdd[] = removedInPaste.map((link) => ({\n targetEntityId: link.target.entityId,\n linkId: link.id,\n sourceEntityId: link.source.entityId,\n sourceEntityType: link.source.entityType,\n targetEntityType: link.target.entityType,\n linkType: link.linkType,\n direction: link.direction,\n projectName: link.projectName,\n }))\n\n // Single callbacks to keep history atomic\n const undoCallback = () => {\n const tasks: Promise<void>[] = []\n if (addedToRemove.length) tasks.push(removeMultipleLinks(addedToRemove, deleteLink))\n if (removedToAdd.length) tasks.push(addMultipleLinks(removedToAdd, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n const redoCallback = () => {\n const tasks: Promise<void>[] = []\n if (removedInPaste.length) tasks.push(removeMultipleLinks(removedInPaste, deleteLink))\n if (addedInPaste.length) tasks.push(addMultipleLinks(addedInPaste, addLink))\n if (tasks.length) Promise.all(tasks).catch(() => {})\n }\n\n history.pushHistory([undoCallback], [redoCallback])\n }\n } catch (error) {\n throw error\n }\n },\n [projectName, getEntityById, deleteLink, addLink, history],\n )\n\n return { pasteTableLinks }\n}\n\nexport default usePasteLinks\n"],"names":["usePasteLinks","props","contextProjectName","useProjectContext","getEntityById","useProjectTableContext","projectName","history","useCellEditing","deleteLink","useDeleteEntityLinkMutation","addLink","useCreateEntityLinkMutation","useCallback","linkUpdates","operationsToProcess","update","key","updatePromises","addedInPaste","removedInPaste","updates","sourceEntityId","targets","u","id","toast","firstUpdate","sourceEntityType","linkType","direction","targetEntityType","operation","allTargetEntityIds","linksToAdd","linksToRemove","entityData","currentLinks","link","targetEntityId","linkId","getEntityId","existingTargetIds","removeMultipleLinks","addMultipleLinks","addedToRemove","removedToAdd","undoCallback","tasks","redoCallback","error"],"mappings":"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"}
@@ -202,7 +202,13 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
202
202
  import "../../../components/SizeSlider/SizeSlider.es.js";
203
203
  import "react-router-dom";
204
204
  import "../../Slicer/components/Slicer.es.js";
205
- import "../../Slicer/context/SlicerContext.es.js";
205
+ import "../../Views/ViewsMenu/ViewsMenu.es.js";
206
+ import "uuid";
207
+ import "../../Views/context/ViewsContextInstance.es.js";
208
+ import "../../Views/Views.styled.es.js";
209
+ import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
210
+ import "../../Slicer/context/SlicerContextInstance.es.js";
211
+ import "../../Slicer/components/SlicerDropdownFallback.es.js";
206
212
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
207
213
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
208
214
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
@@ -272,6 +278,7 @@ import "../components/HeaderActionButton.es.js";
272
278
  import "../components/TableFooterRow.es.js";
273
279
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
274
280
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
281
+ import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
275
282
  import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
276
283
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
277
284
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -283,14 +290,9 @@ import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.
283
290
  import "../../Actions/Actions.styled.es.js";
284
291
  import "../../Actions/ActionsDropdown/ActionsDropdown.es.js";
285
292
  import "../../Actions/ActionIcon.es.js";
286
- import "../../Views/ViewsMenu/ViewsMenu.es.js";
287
- import "uuid";
288
- import "../../Views/context/ViewsContextInstance.es.js";
289
- import "../../Views/Views.styled.es.js";
290
- import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
291
293
  import "../../ListTable/ListTableRow.es.js";
292
294
  import "../../ListTable/ListTable.styled.es.js";
293
- const am = (H) => {
295
+ const ym = (H) => {
294
296
  const { projectName: A } = R(), { getEntityById: j } = S(), n = A, { history: E } = B(), [u] = M(), [l] = $();
295
297
  return { pasteTableLinks: x(
296
298
  async (w) => {
@@ -412,6 +414,6 @@ const am = (H) => {
412
414
  ) };
413
415
  };
414
416
  export {
415
- am as default
417
+ ym as default
416
418
  };
417
419
  //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;"}
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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"}