@ynput/ayon-frontend-shared 0.3.46 → 0.3.48

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 (761) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +38 -35
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +231 -228
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +193 -25
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/Views.cjs.js +1 -1
  11. package/dist/Views.es.js +27 -26
  12. package/dist/_virtual/index.cjs15.js +1 -1
  13. package/dist/_virtual/index.cjs18.js +1 -1
  14. package/dist/_virtual/index.cjs19.js +1 -1
  15. package/dist/_virtual/index.cjs22.js +1 -1
  16. package/dist/_virtual/index.cjs23.js +1 -1
  17. package/dist/_virtual/index.cjs24.js +1 -1
  18. package/dist/_virtual/index.cjs4.js +1 -1
  19. package/dist/_virtual/index.cjs5.js +1 -1
  20. package/dist/_virtual/index.cjs6.js +1 -1
  21. package/dist/_virtual/index.cjs8.js +1 -1
  22. package/dist/_virtual/index.cjs9.js +1 -1
  23. package/dist/_virtual/index.es10.js +2 -2
  24. package/dist/_virtual/index.es11.js +2 -2
  25. package/dist/_virtual/index.es13.js +2 -2
  26. package/dist/_virtual/index.es14.js +2 -2
  27. package/dist/_virtual/index.es15.js +2 -2
  28. package/dist/_virtual/index.es16.js +2 -2
  29. package/dist/_virtual/index.es17.js +2 -2
  30. package/dist/_virtual/index.es18.js +5 -2
  31. package/dist/_virtual/index.es18.js.map +1 -1
  32. package/dist/_virtual/index.es19.js +2 -2
  33. package/dist/_virtual/index.es22.js +3 -3
  34. package/dist/_virtual/index.es23.js +5 -5
  35. package/dist/_virtual/index.es24.js +5 -5
  36. package/dist/_virtual/index.es4.js +2 -5
  37. package/dist/_virtual/index.es4.js.map +1 -1
  38. package/dist/_virtual/index.es5.js +5 -2
  39. package/dist/_virtual/index.es5.js.map +1 -1
  40. package/dist/_virtual/index.es6.js +2 -2
  41. package/dist/_virtual/index.es8.js +2 -2
  42. package/dist/_virtual/index.es9.js +2 -5
  43. package/dist/_virtual/index.es9.js.map +1 -1
  44. package/dist/api.cjs.js +1 -1
  45. package/dist/api.es.js +347 -344
  46. package/dist/api.es.js.map +1 -1
  47. package/dist/components.cjs.js +1 -1
  48. package/dist/components.es.js +41 -39
  49. package/dist/components.es.js.map +1 -1
  50. package/dist/context.cjs.js +1 -1
  51. package/dist/context.es.js +55 -48
  52. package/dist/context.es.js.map +1 -1
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.es.js +24 -21
  55. package/dist/index.es.js.map +1 -1
  56. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  57. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  58. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  59. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  60. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  61. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  62. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  63. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  64. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  65. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  66. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  67. package/dist/node_modules/remove-accents/index.es.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  79. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  80. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  82. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  83. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  84. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  85. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  86. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  87. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  88. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  89. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  90. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  91. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  92. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  93. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  94. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  95. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  96. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  97. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  98. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  99. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  100. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  101. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  102. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  103. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  104. package/dist/shared/src/api/generated/graphql.cjs.js +3 -3
  105. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  106. package/dist/shared/src/api/generated/graphql.es.js +3 -3
  107. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js +2 -0
  109. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js.map +1 -0
  110. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js +42 -0
  111. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js.map +1 -0
  112. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/activities/getActivities.es.js +121 -156
  115. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +93 -68
  119. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  121. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  122. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +63 -56
  123. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  124. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  125. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  126. package/dist/shared/src/api/queries/entities/updateEntity.es.js +120 -119
  127. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  128. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  129. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  130. package/dist/shared/src/api/queries/entityLists/getLists.es.js +70 -62
  131. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +85 -85
  137. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js +267 -259
  141. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  142. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  143. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  144. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +85 -79
  145. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  146. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  147. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +170 -2
  149. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  151. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +18 -15
  153. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +165 -2
  157. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  159. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +164 -2
  161. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +174 -2
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  166. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  167. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  168. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +173 -2
  169. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  175. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +16 -13
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  178. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  179. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  180. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +168 -2
  181. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  182. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  183. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  184. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +260 -89
  185. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  186. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  187. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  188. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +44 -78
  189. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  190. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  191. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  192. package/dist/shared/src/components/LinksManager/LinksManager.es.js +172 -2
  193. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  194. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  195. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  196. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  197. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  198. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  199. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  200. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +173 -2
  201. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  202. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  203. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  204. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +158 -2
  205. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  206. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  207. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  208. package/dist/shared/src/components/Menu/Menu.es.js +171 -2
  209. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  210. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  211. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  212. package/dist/shared/src/components/Menu/MenuItem.es.js +167 -0
  213. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  214. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  215. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  216. package/dist/shared/src/components/Menu/MenuList.es.js +209 -40
  217. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  218. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  219. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  220. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +171 -2
  221. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  222. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  223. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  224. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +170 -2
  225. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  226. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  227. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  228. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +16 -13
  229. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  230. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  231. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  232. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +82 -79
  233. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  234. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  235. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  236. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +169 -3
  237. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  238. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  239. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  240. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +12 -9
  241. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  242. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  243. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  244. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -2
  245. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  246. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  247. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  248. package/dist/shared/src/components/RenameForm/RenameForm.es.js +5 -2
  249. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  252. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +41 -38
  253. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  254. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  255. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  256. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +19 -16
  257. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  258. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  259. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +17 -14
  261. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  263. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  264. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +18 -15
  265. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  268. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +453 -284
  269. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  270. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -2
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  272. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +172 -2
  273. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  274. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  276. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +18 -15
  277. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  278. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  279. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  280. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +18 -15
  281. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  282. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +52 -0
  283. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -0
  284. package/dist/shared/src/components/SyncButton/SyncButton.es.js +265 -0
  285. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -0
  286. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  287. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  288. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +171 -2
  289. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  290. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  291. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  292. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +18 -15
  293. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  294. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  295. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  296. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +20 -17
  297. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  298. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  299. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +18 -15
  301. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  302. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  303. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/Actions/Actions.es.js +213 -44
  305. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  306. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  307. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +18 -15
  309. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  310. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +39 -36
  313. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  314. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +18 -15
  317. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +19 -16
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +51 -48
  325. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +173 -3
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +18 -15
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +18 -15
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +168 -2
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +32 -29
  345. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  346. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +18 -15
  349. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  350. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +81 -78
  353. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +144 -2
  357. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +174 -2
  361. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  362. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +18 -15
  365. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  366. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  367. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  368. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +18 -15
  369. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  370. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  371. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +18 -15
  373. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  374. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  375. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +18 -15
  377. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  378. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  379. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +178 -7
  381. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  382. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  383. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/Feed/Feed.es.js +206 -59
  385. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  386. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  387. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +18 -15
  389. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  391. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +19 -16
  393. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  395. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -15
  397. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  399. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +16 -16
  401. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  403. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +30 -17
  405. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js +11 -0
  407. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js.map +1 -0
  408. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js +27 -0
  409. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js.map +1 -0
  410. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  411. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +20 -17
  413. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  414. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  415. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +218 -39
  417. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  418. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  419. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +78 -75
  421. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  422. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  423. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  424. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +22 -19
  425. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  427. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +173 -2
  429. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  431. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +173 -2
  433. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  434. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  435. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  436. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +181 -14
  437. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  438. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  439. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  440. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +169 -2
  441. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  443. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +80 -77
  445. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  446. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  447. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +197 -26
  449. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  450. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  451. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +9 -8
  453. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  454. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  455. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/ListTable/ListTable.es.js +24 -21
  457. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  458. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  459. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +18 -15
  461. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  462. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  463. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +17 -14
  465. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +5 -2
  469. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +18 -15
  473. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +5 -2
  477. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +84 -81
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +17 -14
  485. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +18 -15
  489. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  491. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +508 -321
  493. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +18 -15
  497. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +175 -4
  501. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +176 -6
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +18 -15
  509. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +174 -2
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +21 -18
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +18 -15
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +18 -15
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +18 -15
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +18 -15
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +5 -2
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +406 -396
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +18 -15
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +18 -15
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +19 -17
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -15
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +18 -15
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +265 -95
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +29 -26
  577. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +18 -15
  581. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  583. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +94 -91
  585. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +3 -3
  587. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +25 -22
  589. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +20 -17
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +4 -4
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +188 -34
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +18 -15
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +25 -22
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +2 -2
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +225 -61
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  610. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  611. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +18 -15
  613. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  614. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  615. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +21 -18
  617. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  618. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  619. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +37 -37
  621. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  622. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  623. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +353 -51
  625. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  626. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  627. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +172 -2
  629. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  630. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  631. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +18 -15
  633. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  634. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  635. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +216 -45
  637. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  638. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  639. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +185 -13
  641. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  642. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +174 -2
  645. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  646. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +40 -289
  649. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  650. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  651. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +174 -2
  653. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  654. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  655. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +173 -2
  657. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  658. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  659. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +174 -2
  661. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  663. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +174 -2
  665. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  666. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  667. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +227 -53
  669. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  670. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  671. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +176 -6
  673. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  674. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  675. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -2
  677. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  678. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  679. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  680. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +185 -18
  681. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  682. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  683. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  684. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +209 -38
  685. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  686. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  687. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  688. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +180 -10
  689. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  690. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  691. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  692. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +107 -73
  693. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  694. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  695. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  696. package/dist/shared/src/context/DetailsPanelContext.es.js +210 -38
  697. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  698. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +2 -0
  699. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -0
  700. package/dist/shared/src/context/EntityUpdatesContext.es.js +392 -0
  701. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -0
  702. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js +2 -0
  703. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js.map +1 -0
  704. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js +6 -0
  705. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js.map +1 -0
  706. package/dist/shared/src/context/MenuContext.es.js +3 -3
  707. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  708. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  709. package/dist/shared/src/context/PowerpackContext.es.js +178 -6
  710. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  711. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  712. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  713. package/dist/shared/src/context/ProjectFoldersContext.es.js +196 -24
  714. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  715. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  716. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  717. package/dist/shared/src/context/SubtasksModulesContext.es.js +176 -4
  718. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  719. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  720. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  721. package/dist/shared/src/context/WebsocketContext.es.js +52 -45
  722. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  723. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  724. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  725. package/dist/shared/src/hooks/useEntityUpdate.es.js +174 -2
  726. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  727. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  728. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  729. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +174 -2
  730. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  731. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  732. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  733. package/dist/shared/src/hooks/useHierarchyTable.es.js +174 -2
  734. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  735. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  736. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  737. package/dist/shared/src/hooks/useUserProjectConfig.es.js +174 -2
  738. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  739. package/dist/types/api/generated/graphql.d.ts +3 -3
  740. package/dist/types/api/queries/actions/index.d.ts +1 -0
  741. package/dist/types/api/queries/actions/refreshActiveAndPurgeOthers.d.ts +11 -0
  742. package/dist/types/api/queries/activities/getActivities.d.ts +65 -855
  743. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +19 -0
  744. package/dist/types/api/queries/links/getEntityLinks.d.ts +4 -2
  745. package/dist/types/components/SyncButton/SyncButton.d.ts +11 -0
  746. package/dist/types/components/SyncButton/index.d.ts +1 -0
  747. package/dist/types/components/index.d.ts +1 -0
  748. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.d.ts +7 -0
  749. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +3 -0
  750. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -42
  751. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -4
  752. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +10 -2
  753. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +9 -2
  754. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  755. package/dist/types/containers/Slicer/hooks/useSelectedEntityIds.d.ts +7 -1
  756. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -0
  757. package/dist/types/context/EntityUpdatesContext.d.ts +44 -0
  758. package/dist/types/context/EntityUpdatesContextInstance.d.ts +2 -0
  759. package/dist/types/context/ProjectFoldersContext.d.ts +2 -2
  760. package/dist/types/context/index.d.ts +1 -0
  761. package/package.json +1 -1
@@ -172,19 +172,7 @@ import "../../../context/WebsocketContext.es.js";
172
172
  import "../../../context/GlobalContext.es.js";
173
173
  import "../../../context/ProjectContext.es.js";
174
174
  import "../../../context/ProjectFoldersContextInstance.es.js";
175
- import "react-redux";
176
- import "custom-protocol-check";
177
- import "../components/GroupSettingsFallback.es.js";
178
- import "../../../components/DetailsPanelDetails/DetailsSection.es.js";
179
- import "../../../components/DetailsPanelDetails/FieldLabel.es.js";
180
- import "../../../components/DoneCheckbox/DoneCheckbox.es.js";
181
- import "../../../components/EarlyPreview/EarlyPreview.es.js";
182
- import "../../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
183
- import "../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
184
- import "../../../components/InfoMessage/InfoMessage.es.js";
185
- import "@dnd-kit/core";
186
- import "@dnd-kit/sortable";
187
- import "../../../components/EnumEditor/EnumEditor.styled.es.js";
175
+ import "../../../context/EntityUpdatesContextInstance.es.js";
188
176
  import "../../ContextMenu/ContextMenuContext.es.js";
189
177
  /* empty css */
190
178
  import "../../Feed/context/FeedContext.es.js";
@@ -210,6 +198,7 @@ import "../../Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
210
198
  import "../../Feed/components/ActivityDate.es.js";
211
199
  import "../../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
212
200
  import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
201
+ import "../../Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js";
213
202
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
214
203
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
215
204
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
@@ -217,6 +206,8 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
217
206
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
218
207
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
219
208
  import "../../Feed/Feed.styled.es.js";
209
+ import "../../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
210
+ import "../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
220
211
  import "../../Feed/components/FeedSearchFilter.es.js";
221
212
  import "@tanstack/react-virtual";
222
213
  import "../ProjectTreeTable.styled.es.js";
@@ -229,12 +220,15 @@ import "../context/ColumnSettingsContext.es.js";
229
220
  import "../context/SelectedRowsContext.es.js";
230
221
  import "../components/DeleteConfirmContent.es.js";
231
222
  import { isEntityRestricted as V } from "../utils/restrictedEntity.es.js";
223
+ import "@dnd-kit/core";
224
+ import "@dnd-kit/sortable";
232
225
  import "../components/TableFooterRow.es.js";
233
226
  import "../../EntityPickerDialog/EntityPickerDialog.es.js";
234
227
  import "../../Slicer/components/Slicer.es.js";
235
228
  import "../../Slicer/context/SlicerContextInstance.es.js";
236
229
  import "../../Slicer/components/SlicerDropdownFallback.es.js";
237
230
  import "../../Slicer/hooks/useTableDataBySlice.es.js";
231
+ import "react-redux";
238
232
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
239
233
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
240
234
  import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
@@ -255,6 +249,14 @@ import "../../Views/Views.styled.es.js";
255
249
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
256
250
  import "../../ListTable/ListTableRow.es.js";
257
251
  import "../../ListTable/ListTable.styled.es.js";
252
+ import "custom-protocol-check";
253
+ import "../components/GroupSettingsFallback.es.js";
254
+ import "../../../components/DetailsPanelDetails/DetailsSection.es.js";
255
+ import "../../../components/DetailsPanelDetails/FieldLabel.es.js";
256
+ import "../../../components/DoneCheckbox/DoneCheckbox.es.js";
257
+ import "../../../components/EarlyPreview/EarlyPreview.es.js";
258
+ import "../../../components/InfoMessage/InfoMessage.es.js";
259
+ import "../../../components/EnumEditor/EnumEditor.styled.es.js";
258
260
  import "../../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
259
261
  import "axios";
260
262
  import "../../../components/ReviewablesList/ReviewablesList.styled.es.js";
@@ -282,6 +284,7 @@ import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
282
284
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
283
285
  import "../../../components/SimpleFormDialog/SimpleFormDialog.es.js";
284
286
  import "../../../components/StyledLink/StyledLink.es.js";
287
+ import "../../../components/SyncButton/SyncButton.es.js";
285
288
  import "../../../components/TableGridSwitch/TableGridSwitch.es.js";
286
289
  import "../../../components/Thumbnail/Thumbnail.styled.es.js";
287
290
  import "../../../components/Thumbnail/StackedThumbnails.es.js";
@@ -296,7 +299,7 @@ import "../../../components/ColumnHeaderMenuUI.es.js";
296
299
  import "../widgets/EmptyWidget.es.js";
297
300
  import "../widgets/ErrorWidget.es.js";
298
301
  import "../widgets/LoadMoreWidget.es.js";
299
- function wm() {
302
+ function xm() {
300
303
  const { attribFields: E, getEntityById: C, onOpenPlayer: h, playerOpen: y } = W(), { canWriteLabelPermission: K, canWriteNamePermission: R } = j(), v = K || R, { focusedCellId: c, gridMap: r, selectCell: p, focusCell: m, clearSelection: g, setFocusedCellId: A } = O(), { setEditingCellId: f, editingCellId: x } = S(), { setSelectedEntity: b } = z(), T = N(
301
304
  (o) => {
302
305
  const a = o.target;
@@ -393,8 +396,7 @@ function wm() {
393
396
  o.preventDefault(), k(n);
394
397
  break;
395
398
  }
396
- case "r":
397
- case "R": {
399
+ case "r": {
398
400
  if (o.ctrlKey || o.metaKey)
399
401
  return;
400
402
  if (o.preventDefault(), d === "name" && v) {
@@ -447,6 +449,6 @@ function wm() {
447
449
  };
448
450
  }
449
451
  export {
450
- wm as default
452
+ xm as default
451
453
  };
452
454
  //# sourceMappingURL=useKeyboardNavigation.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\nimport { useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useCellEditing } from '../context/CellEditingContext' // keep for editingCellId/setEditingCellId\nimport { parseCellId, getCellId } from '../utils/cellUtils'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useDetailsPanelEntityContext } from '../context/DetailsPanelEntityContext'\nimport { getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\n\nexport default function useKeyboardNavigation() {\n const { attribFields, getEntityById, onOpenPlayer, playerOpen } = useProjectTableContext()\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const canOpenRenameDialog = canWriteLabelPermission || canWriteNamePermission\n\n const { focusedCellId, gridMap, selectCell, focusCell, clearSelection, setFocusedCellId } =\n useSelectionCellsContext()\n\n const { setEditingCellId, editingCellId } = useCellEditing()\n const { setSelectedEntity } = useDetailsPanelEntityContext()\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n // is target inside table or not body?\n // NOTE: we must check for body because there is a bug that means the active element goes to body not the table td\n if (!target?.closest('table') && !target.closest('body')) {\n return\n }\n\n // Skip if event target is an input element or contentEditable\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // allow keyboard and up and down only if the player is open\n if (playerOpen && e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return\n\n // Don't handle keyboard events if we are currently editing a cell\n if (editingCellId) return\n\n // Don't handle keyboard events if we don't have a focused cell\n if (!focusedCellId) return\n\n const position = parseCellId(focusedCellId)\n if (!position) return\n\n const { rowId, colId } = position\n const rowIndex = gridMap.rowIdToIndex.get(rowId)\n const colIndex = gridMap.colIdToIndex.get(colId)\n\n if (rowIndex === undefined || colIndex === undefined) return\n\n const isReadOnly =\n colId.startsWith('attrib_') &&\n attribFields.find((a) => a.name === colId.replace('attrib_', ''))?.readOnly\n\n const openPlayer = (entityId: string) => {\n // try to open the player if onOpenPlayer is defined\n if (onOpenPlayer) {\n const entity = getEntityById(entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n\n // Handle different keys\n switch (e.key) {\n case 'ArrowUp': {\n e.preventDefault()\n if (rowIndex > 0) {\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n }\n break\n }\n case 'ArrowDown': {\n e.preventDefault()\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n break\n }\n case 'ArrowLeft': {\n e.preventDefault()\n if (colIndex > 0) {\n const newColId = gridMap.indexToColId.get(colIndex - 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n }\n break\n }\n case 'ArrowRight': {\n e.preventDefault()\n const newColId = gridMap.indexToColId.get(colIndex + 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n break\n }\n case 'Enter': {\n e.preventDefault()\n // Only open details panel for name column on folders/tasks\n if (colId === 'name') {\n const entity = getEntityById(rowId)\n // Check if entity is restricted - prevent opening details panel\n const isRestricted = entity && isEntityRestricted(entity.entityType)\n if (\n entity &&\n (entity.entityType === 'folder' || entity.entityType === 'task') &&\n !isRestricted\n ) {\n setSelectedEntity({\n entityId: rowId,\n entityType: entity.entityType,\n })\n }\n } else {\n // For all other columns, start editing the cell (if not read-only)\n if (!isReadOnly) {\n setEditingCellId(focusedCellId)\n }\n }\n break\n }\n case 'Escape': {\n e.preventDefault()\n // Clear selection and stop editing\n clearSelection()\n setEditingCellId(null)\n setFocusedCellId(null)\n break\n }\n case 'Tab': {\n e.preventDefault()\n // Move to next cell (right if no shift, left if shift)\n const nextColIndex = e.shiftKey ? colIndex - 1 : colIndex + 1\n const nextColId = gridMap.indexToColId.get(nextColIndex)\n\n if (nextColId) {\n // Move to next/prev column in same row\n const newCellId = getCellId(rowId, nextColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n } else if (!e.shiftKey && rowIndex < gridMap.rowIdToIndex.size - 1) {\n // Move to first column of next row\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n const firstColId = gridMap.indexToColId.get(0)\n if (newRowId && firstColId) {\n const newCellId = getCellId(newRowId, firstColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n } else if (e.shiftKey && rowIndex > 0) {\n // Move to last column of previous row\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n const lastColId = gridMap.indexToColId.get(gridMap.colIdToIndex.size - 1)\n if (newRowId && lastColId) {\n const newCellId = getCellId(newRowId, lastColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n }\n break\n }\n case ' ': {\n e.preventDefault()\n // attempt to open the player\n openPlayer(rowId)\n break\n }\n case 'r':\n case 'R': {\n // Don't prevent default if Ctrl/Cmd is held (allow page reload)\n if (e.ctrlKey || e.metaKey) {\n return\n }\n e.preventDefault()\n // Check if focused cell is name column on folder/task and user has rename permissions\n if (colId === 'name' && canOpenRenameDialog) {\n const entity = getEntityById(rowId)\n if (entity && (entity.entityType === 'folder' || entity.entityType === 'task')) {\n const nameCellId = getCellId(rowId, 'name')\n setEditingCellId(nameCellId)\n }\n }\n break\n }\n }\n },\n [\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n getEntityById,\n playerOpen,\n setSelectedEntity,\n canOpenRenameDialog,\n ],\n )\n\n // Attach the keydown event handler to the document\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown)\n\n // Cleanup the event listener on component unmount\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n playerOpen,\n setSelectedEntity,\n ])\n return {\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n }\n}\n"],"names":["useKeyboardNavigation","attribFields","getEntityById","onOpenPlayer","playerOpen","useProjectTableContext","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","canOpenRenameDialog","focusedCellId","gridMap","selectCell","focusCell","clearSelection","setFocusedCellId","useSelectionCellsContext","setEditingCellId","editingCellId","useCellEditing","setSelectedEntity","useDetailsPanelEntityContext","handleKeyDown","useCallback","e","target","position","parseCellId","rowId","colId","rowIndex","colIndex","isReadOnly","a","openPlayer","entityId","entity","targetIds","getEntityViewierIds","newRowId","newCellId","getCellId","newColId","isRestricted","isEntityRestricted","nextColIndex","nextColId","firstColId","lastColId","nameCellId","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,SAAwBA,KAAwB;AAC9C,QAAM,EAAE,cAAAC,GAAc,eAAAC,GAAe,cAAAC,GAAc,YAAAC,EAAA,IAAeC,EAAA,GAC5D,EAAE,yBAAAC,GAAyB,wBAAAC,EAAA,IAA2BC,EAAA,GACtDC,IAAsBH,KAA2BC,GAEjD,EAAE,eAAAG,GAAe,SAAAC,GAAS,YAAAC,GAAY,WAAAC,GAAW,gBAAAC,GAAgB,kBAAAC,EAAA,IACrEC,EAAA,GAEI,EAAE,kBAAAC,GAAkB,eAAAC,EAAA,IAAkBC,EAAA,GACtC,EAAE,mBAAAC,EAAA,IAAsBC,EAAA,GAExBC,IAAgBC;AAAA,IACpB,CAACC,MAAqB;AACpB,YAAMC,IAASD,EAAE;AAyBjB,UAtBI,CAACC,GAAQ,QAAQ,OAAO,KAAK,CAACA,EAAO,QAAQ,MAAM,KAMrDA,EAAO,YAAY,WACnBA,EAAO,YAAY,cACnBA,EAAO,qBACPA,EAAO,aAAa,MAAM,MAAM,aAChCA,EAAO,YAAY,QAMjBrB,KAAcoB,EAAE,QAAQ,eAAeA,EAAE,QAAQ,aAGjDN,KAGA,CAACR,EAAe;AAEpB,YAAMgB,IAAWC,EAAYjB,CAAa;AAC1C,UAAI,CAACgB,EAAU;AAEf,YAAM,EAAE,OAAAE,GAAO,OAAAC,EAAA,IAAUH,GACnBI,IAAWnB,EAAQ,aAAa,IAAIiB,CAAK,GACzCG,IAAWpB,EAAQ,aAAa,IAAIkB,CAAK;AAE/C,UAAIC,MAAa,UAAaC,MAAa,OAAW;AAEtD,YAAMC,IACJH,EAAM,WAAW,SAAS,KAC1B5B,EAAa,KAAK,CAACgC,MAAMA,EAAE,SAASJ,EAAM,QAAQ,WAAW,EAAE,CAAC,GAAG,UAE/DK,IAAa,CAACC,MAAqB;AAEvC,YAAIhC,GAAc;AAChB,gBAAMiC,IAASlC,EAAciC,CAAQ;AACrC,cAAIC,GAAQ;AACV,kBAAMC,IAAYC,EAAoBF,CAAM;AAC5C,YAAAjC,EAAakC,GAAW,EAAE,WAAW,GAAA,CAAM;AAAA,UAC7C;AAAA,QACF;AAAA,MACF;AAGA,cAAQb,EAAE,KAAA;AAAA,QACR,KAAK,WAAW;AAEd,cADAA,EAAE,eAAA,GACEM,IAAW,GAAG;AAChB,kBAAMS,IAAW5B,EAAQ,aAAa,IAAImB,IAAW,CAAC;AACtD,gBAAIS,GAAU;AACZ,oBAAMC,IAAYC,EAAUF,GAAUV,CAAK;AAC3C,cAAAjB,EAAW4B,GAAWhB,EAAE,UAAUA,EAAE,QAAQ,GAC5CX,EAAU2B,CAAS,GAGfpC,KACF8B,EAAWK,CAAQ;AAAA,YAEvB;AAAA,UACF;AACA;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,UAAAf,EAAE,eAAA;AACF,gBAAMe,IAAW5B,EAAQ,aAAa,IAAImB,IAAW,CAAC;AACtD,cAAIS,GAAU;AACZ,kBAAMC,IAAYC,EAAUF,GAAUV,CAAK;AAC3C,YAAAjB,EAAW4B,GAAWhB,EAAE,UAAUA,EAAE,QAAQ,GAC5CX,EAAU2B,CAAS,GAGfpC,KACF8B,EAAWK,CAAQ;AAAA,UAEvB;AACA;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAEhB,cADAf,EAAE,eAAA,GACEO,IAAW,GAAG;AAChB,kBAAMW,IAAW/B,EAAQ,aAAa,IAAIoB,IAAW,CAAC;AACtD,gBAAIW,GAAU;AACZ,oBAAMF,IAAYC,EAAUb,GAAOc,CAAQ;AAC3C,cAAA9B,EAAW4B,GAAWhB,EAAE,UAAUA,EAAE,QAAQ,GAC5CX,EAAU2B,CAAS;AAAA,YACrB;AAAA,UACF;AACA;AAAA,QACF;AAAA,QACA,KAAK,cAAc;AACjB,UAAAhB,EAAE,eAAA;AACF,gBAAMkB,IAAW/B,EAAQ,aAAa,IAAIoB,IAAW,CAAC;AACtD,cAAIW,GAAU;AACZ,kBAAMF,IAAYC,EAAUb,GAAOc,CAAQ;AAC3C,YAAA9B,EAAW4B,GAAWhB,EAAE,UAAUA,EAAE,QAAQ,GAC5CX,EAAU2B,CAAS;AAAA,UACrB;AACA;AAAA,QACF;AAAA,QACA,KAAK,SAAS;AAGZ,cAFAhB,EAAE,eAAA,GAEEK,MAAU,QAAQ;AACpB,kBAAMO,IAASlC,EAAc0B,CAAK,GAE5Be,IAAeP,KAAUQ,EAAmBR,EAAO,UAAU;AACnE,YACEA,MACCA,EAAO,eAAe,YAAYA,EAAO,eAAe,WACzD,CAACO,KAEDvB,EAAkB;AAAA,cAChB,UAAUQ;AAAA,cACV,YAAYQ,EAAO;AAAA,YAAA,CACpB;AAAA,UAEL;AAEE,YAAKJ,KACHf,EAAiBP,CAAa;AAGlC;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,UAAAc,EAAE,eAAA,GAEFV,EAAA,GACAG,EAAiB,IAAI,GACrBF,EAAiB,IAAI;AACrB;AAAA,QACF;AAAA,QACA,KAAK,OAAO;AACV,UAAAS,EAAE,eAAA;AAEF,gBAAMqB,IAAerB,EAAE,WAAWO,IAAW,IAAIA,IAAW,GACtDe,IAAYnC,EAAQ,aAAa,IAAIkC,CAAY;AAEvD,cAAIC,GAAW;AAEb,kBAAMN,IAAYC,EAAUb,GAAOkB,CAAS;AAC5C,YAAAlC,EAAW4B,GAAW,IAAO,EAAK,GAClC3B,EAAU2B,CAAS;AAAA,UACrB,WAAW,CAAChB,EAAE,YAAYM,IAAWnB,EAAQ,aAAa,OAAO,GAAG;AAElE,kBAAM4B,IAAW5B,EAAQ,aAAa,IAAImB,IAAW,CAAC,GAChDiB,IAAapC,EAAQ,aAAa,IAAI,CAAC;AAC7C,gBAAI4B,KAAYQ,GAAY;AAC1B,oBAAMP,IAAYC,EAAUF,GAAUQ,CAAU;AAChD,cAAAnC,EAAW4B,GAAW,IAAO,EAAK,GAClC3B,EAAU2B,CAAS;AAAA,YACrB;AAAA,UACF,WAAWhB,EAAE,YAAYM,IAAW,GAAG;AAErC,kBAAMS,IAAW5B,EAAQ,aAAa,IAAImB,IAAW,CAAC,GAChDkB,IAAYrC,EAAQ,aAAa,IAAIA,EAAQ,aAAa,OAAO,CAAC;AACxE,gBAAI4B,KAAYS,GAAW;AACzB,oBAAMR,IAAYC,EAAUF,GAAUS,CAAS;AAC/C,cAAApC,EAAW4B,GAAW,IAAO,EAAK,GAClC3B,EAAU2B,CAAS;AAAA,YACrB;AAAA,UACF;AACA;AAAA,QACF;AAAA,QACA,KAAK,KAAK;AACR,UAAAhB,EAAE,eAAA,GAEFU,EAAWN,CAAK;AAChB;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK,KAAK;AAER,cAAIJ,EAAE,WAAWA,EAAE;AACjB;AAIF,cAFAA,EAAE,eAAA,GAEEK,MAAU,UAAUpB,GAAqB;AAC3C,kBAAM2B,IAASlC,EAAc0B,CAAK;AAClC,gBAAIQ,MAAWA,EAAO,eAAe,YAAYA,EAAO,eAAe,SAAS;AAC9E,oBAAMa,IAAaR,EAAUb,GAAO,MAAM;AAC1C,cAAAX,EAAiBgC,CAAU;AAAA,YAC7B;AAAA,UACF;AACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA;AAAA,MACEvC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAG;AAAA,MACAC;AAAA,MACAhB;AAAA,MACAE;AAAA,MACAgB;AAAA,MACAX;AAAA,IAAA;AAAA,EACF;AAIF,SAAAyC,EAAU,OACR,SAAS,iBAAiB,WAAW5B,CAAa,GAG3C,MAAM;AACX,aAAS,oBAAoB,WAAWA,CAAa;AAAA,EACvD,IACC;AAAA,IACDA;AAAA,IACAZ;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAG;AAAA,IACAC;AAAA,IACAd;AAAA,IACAgB;AAAA,EAAA,CACD,GACM;AAAA,IACL,eAAAE;AAAA,IACA,eAAAZ;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAG;AAAA,IACA,eAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useKeyboardNavigation.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\nimport { useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useCellEditing } from '../context/CellEditingContext' // keep for editingCellId/setEditingCellId\nimport { parseCellId, getCellId } from '../utils/cellUtils'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useDetailsPanelEntityContext } from '../context/DetailsPanelEntityContext'\nimport { getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\n\nexport default function useKeyboardNavigation() {\n const { attribFields, getEntityById, onOpenPlayer, playerOpen } = useProjectTableContext()\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const canOpenRenameDialog = canWriteLabelPermission || canWriteNamePermission\n\n const { focusedCellId, gridMap, selectCell, focusCell, clearSelection, setFocusedCellId } =\n useSelectionCellsContext()\n\n const { setEditingCellId, editingCellId } = useCellEditing()\n const { setSelectedEntity } = useDetailsPanelEntityContext()\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n // is target inside table or not body?\n // NOTE: we must check for body because there is a bug that means the active element goes to body not the table td\n if (!target?.closest('table') && !target.closest('body')) {\n return\n }\n\n // Skip if event target is an input element or contentEditable\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // allow keyboard and up and down only if the player is open\n if (playerOpen && e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return\n\n // Don't handle keyboard events if we are currently editing a cell\n if (editingCellId) return\n\n // Don't handle keyboard events if we don't have a focused cell\n if (!focusedCellId) return\n\n const position = parseCellId(focusedCellId)\n if (!position) return\n\n const { rowId, colId } = position\n const rowIndex = gridMap.rowIdToIndex.get(rowId)\n const colIndex = gridMap.colIdToIndex.get(colId)\n\n if (rowIndex === undefined || colIndex === undefined) return\n\n const isReadOnly =\n colId.startsWith('attrib_') &&\n attribFields.find((a) => a.name === colId.replace('attrib_', ''))?.readOnly\n\n const openPlayer = (entityId: string) => {\n // try to open the player if onOpenPlayer is defined\n if (onOpenPlayer) {\n const entity = getEntityById(entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n\n // Handle different keys\n switch (e.key) {\n case 'ArrowUp': {\n e.preventDefault()\n if (rowIndex > 0) {\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n }\n break\n }\n case 'ArrowDown': {\n e.preventDefault()\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n break\n }\n case 'ArrowLeft': {\n e.preventDefault()\n if (colIndex > 0) {\n const newColId = gridMap.indexToColId.get(colIndex - 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n }\n break\n }\n case 'ArrowRight': {\n e.preventDefault()\n const newColId = gridMap.indexToColId.get(colIndex + 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n break\n }\n case 'Enter': {\n e.preventDefault()\n // Only open details panel for name column on folders/tasks\n if (colId === 'name') {\n const entity = getEntityById(rowId)\n // Check if entity is restricted - prevent opening details panel\n const isRestricted = entity && isEntityRestricted(entity.entityType)\n if (\n entity &&\n (entity.entityType === 'folder' || entity.entityType === 'task') &&\n !isRestricted\n ) {\n setSelectedEntity({\n entityId: rowId,\n entityType: entity.entityType,\n })\n }\n } else {\n // For all other columns, start editing the cell (if not read-only)\n if (!isReadOnly) {\n setEditingCellId(focusedCellId)\n }\n }\n break\n }\n case 'Escape': {\n e.preventDefault()\n // Clear selection and stop editing\n clearSelection()\n setEditingCellId(null)\n setFocusedCellId(null)\n break\n }\n case 'Tab': {\n e.preventDefault()\n // Move to next cell (right if no shift, left if shift)\n const nextColIndex = e.shiftKey ? colIndex - 1 : colIndex + 1\n const nextColId = gridMap.indexToColId.get(nextColIndex)\n\n if (nextColId) {\n // Move to next/prev column in same row\n const newCellId = getCellId(rowId, nextColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n } else if (!e.shiftKey && rowIndex < gridMap.rowIdToIndex.size - 1) {\n // Move to first column of next row\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n const firstColId = gridMap.indexToColId.get(0)\n if (newRowId && firstColId) {\n const newCellId = getCellId(newRowId, firstColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n } else if (e.shiftKey && rowIndex > 0) {\n // Move to last column of previous row\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n const lastColId = gridMap.indexToColId.get(gridMap.colIdToIndex.size - 1)\n if (newRowId && lastColId) {\n const newCellId = getCellId(newRowId, lastColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n }\n break\n }\n case ' ': {\n e.preventDefault()\n // attempt to open the player\n openPlayer(rowId)\n break\n }\n case 'r': {\n // Don't prevent default if Ctrl/Cmd is held (allow page reload)\n if (e.ctrlKey || e.metaKey) {\n return\n }\n e.preventDefault()\n // Check if focused cell is name column on folder/task and user has rename permissions\n if (colId === 'name' && canOpenRenameDialog) {\n const entity = getEntityById(rowId)\n if (entity && (entity.entityType === 'folder' || entity.entityType === 'task')) {\n const nameCellId = getCellId(rowId, 'name')\n setEditingCellId(nameCellId)\n }\n }\n break\n }\n }\n },\n [\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n getEntityById,\n playerOpen,\n setSelectedEntity,\n canOpenRenameDialog,\n ],\n )\n\n // Attach the keydown event handler to the document\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown)\n\n // Cleanup the event listener on component unmount\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n playerOpen,\n setSelectedEntity,\n ])\n return {\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n }\n}\n"],"names":["useKeyboardNavigation","attribFields","getEntityById","onOpenPlayer","playerOpen","useProjectTableContext","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","canOpenRenameDialog","focusedCellId","gridMap","selectCell","focusCell","clearSelection","setFocusedCellId","useSelectionCellsContext","setEditingCellId","editingCellId","useCellEditing","setSelectedEntity","useDetailsPanelEntityContext","handleKeyDown","useCallback","e","target","position","parseCellId","rowId","colId","rowIndex","colIndex","isReadOnly","a","openPlayer","entityId","entity","targetIds","getEntityViewierIds","newRowId","newCellId","getCellId","newColId","isRestricted","isEntityRestricted","nextColIndex","nextColId","firstColId","lastColId","nameCellId","useEffect"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),C=require("react-toastify");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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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");const E=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");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");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("lodash");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("uuid");require("../../../util/pubsub.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");const O=require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const P=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("../../../components/InfoMessage/InfoMessage.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/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/VersionUploadContextInstance.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");const S=require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");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/ProjectDataContextInstance.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("../../Views/ViewsMenu/ViewsMenu.cjs.js");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 $=({projectName:c})=>{const{movingEntities:i,isEntityPickerOpen:I,openMoveDialog:f,closeMoveDialog:y,setEntityPickerOpen:l,clearMovingEntities:m}=O.useMoveEntityContext(),[p]=E.useUpdateOverviewEntitiesMutation(),{tableData:h,getEntityById:d}=S.useProjectTableContext(),{folders:v}=P.useProjectFoldersContext(),M=a.useCallback(t=>{f(t)},[f]),T=a.useCallback(()=>{y()},[y]),w=a.useCallback(async t=>{if(!i||t.length===0)return;const q=t[0];l(!1);try{const n=i.entities.map((e,u)=>({id:`move-${e.entityId}-${Date.now()}-${u}`,type:"update",entityType:e.entityType,entityId:e.entityId,data:e.entityType==="folder"?{parentId:q}:{folderId:q}})),o=(await p({projectName:c,operationsRequestModel:{operations:n}}).unwrap())?.operations?.filter(e=>e.success===!1)||[];if(o.length>0){const e=o.map(u=>u.detail).join(", ");throw new Error(e||"Some move operations failed")}}catch(n){console.error("Failed to move entity:",n);let r=n?.data?.detail||n?.error||n?.message||"Failed to move entities";if(r.includes("already exists"))if(i.entities.length>1)r="Cannot move some entities - one or more entities with the same name already exist in the target location";else if(i.entities[0].entityType==="task"){const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this task"}" - a task with this name already exists in the target folder`}else{const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this folder"}" - a folder with this name already exists in the target location`}C.toast.error(r)}finally{m(),l(!1)}},[i,c,p,f,y,l,m]),D=a.useCallback(async()=>{if(i){l(!1);try{const t=i.entities.map((r,o)=>({id:`move-to-root-${r.entityId}-${Date.now()}-${o}`,type:"update",entityType:r.entityType,entityId:r.entityId,data:r.entityType==="folder"?{parentId:null}:{folderId:null}})),n=(await p({projectName:c,operationsRequestModel:{operations:t}}).unwrap())?.operations?.filter(r=>r.success===!1)||[];if(n.length>0){const r=n.map(o=>o.detail).join(", ");throw new Error(r||"Some move operations failed")}}catch(t){console.error("Failed to move entities to root:",t);let q=t?.data?.detail||t?.error||t?.message||"Failed to move entities to root";C.toast.error(q)}finally{m(),l(!1)}}},[i,c,p,f,y,l,m]),b=a.useCallback(()=>{if(!i)return[];const t=[];return i.entities.forEach(q=>{t.push(q.entityId)}),v.forEach(q=>{i.entities.some(r=>{const o=d(r.entityId);return o?.name?h.filter(u=>r.entityType==="folder"?u.entityType==="folder"&&u.parentId===q.id:r.entityType==="task"?u.entityType==="task"&&u.folderId===q.id:!1).some(u=>u.name===o.name&&u.entityId!==r.entityId):!1})&&t.push(q.id)}),[...new Set(t)]},[i,v,h,d]),k=a.useCallback(t=>{if(!i)return;if(i.entities.some(e=>e.entityType==="folder"&&e.entityId===t))return"Cannot move folder to itself";if(i.entities.some(e=>e.currentParentId===t))return"Cannot move to the same location";const r=v.find(e=>e.id===t);if(r){const e=i.entities.find(u=>{const g=d(u.entityId);return g?.name?h.filter(s=>u.entityType==="folder"?s.entityType==="folder"&&s.parentId===r.id:u.entityType==="task"?s.entityType==="task"&&s.folderId===r.id:!1).some(s=>s.name===g.name&&s.entityId!==u.entityId):!1});if(e)return`Cannot move "${d(e.entityId)?.name||"Entity"}" - an entity with the same name already exists in this folder`}return i.entities.some(e=>e.entityType==="folder")?"Cannot move folder to its child":"Cannot move to this location"},[i,v,h,d]),x=a.useMemo(()=>i?.entities.every(t=>t.entityType==="folder")||!1,[i]);return{movingEntities:i,isEntityPickerOpen:I,isDialogOpen:I,openMoveDialog:M,closeMoveDialog:T,handleMoveSubmit:w,handleMoveToRoot:D,getDisabledFolderIds:b,getDisabledMessage:k,canMoveToRoot:x}};exports.useMoveEntities=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),C=require("react-toastify");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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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");const E=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");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");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("lodash");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("uuid");require("../../../util/pubsub.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");const O=require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const P=require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/EntityUpdatesContextInstance.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("../../../components/InfoMessage/InfoMessage.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/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/SyncButton/SyncButton.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/VersionUploadContextInstance.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/ActivityStatusChange/ActivityStatusSecondary.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");const S=require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");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/ProjectDataContextInstance.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("../../Views/ViewsMenu/ViewsMenu.cjs.js");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 $=({projectName:c})=>{const{movingEntities:i,isEntityPickerOpen:I,openMoveDialog:f,closeMoveDialog:y,setEntityPickerOpen:l,clearMovingEntities:m}=O.useMoveEntityContext(),[p]=E.useUpdateOverviewEntitiesMutation(),{tableData:h,getEntityById:d}=S.useProjectTableContext(),{folders:v}=P.useProjectFoldersContext(),M=a.useCallback(t=>{f(t)},[f]),T=a.useCallback(()=>{y()},[y]),w=a.useCallback(async t=>{if(!i||t.length===0)return;const q=t[0];l(!1);try{const n=i.entities.map((e,u)=>({id:`move-${e.entityId}-${Date.now()}-${u}`,type:"update",entityType:e.entityType,entityId:e.entityId,data:e.entityType==="folder"?{parentId:q}:{folderId:q}})),o=(await p({projectName:c,operationsRequestModel:{operations:n}}).unwrap())?.operations?.filter(e=>e.success===!1)||[];if(o.length>0){const e=o.map(u=>u.detail).join(", ");throw new Error(e||"Some move operations failed")}}catch(n){console.error("Failed to move entity:",n);let r=n?.data?.detail||n?.error||n?.message||"Failed to move entities";if(r.includes("already exists"))if(i.entities.length>1)r="Cannot move some entities - one or more entities with the same name already exist in the target location";else if(i.entities[0].entityType==="task"){const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this task"}" - a task with this name already exists in the target folder`}else{const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this folder"}" - a folder with this name already exists in the target location`}C.toast.error(r)}finally{m(),l(!1)}},[i,c,p,f,y,l,m]),D=a.useCallback(async()=>{if(i){l(!1);try{const t=i.entities.map((r,o)=>({id:`move-to-root-${r.entityId}-${Date.now()}-${o}`,type:"update",entityType:r.entityType,entityId:r.entityId,data:r.entityType==="folder"?{parentId:null}:{folderId:null}})),n=(await p({projectName:c,operationsRequestModel:{operations:t}}).unwrap())?.operations?.filter(r=>r.success===!1)||[];if(n.length>0){const r=n.map(o=>o.detail).join(", ");throw new Error(r||"Some move operations failed")}}catch(t){console.error("Failed to move entities to root:",t);let q=t?.data?.detail||t?.error||t?.message||"Failed to move entities to root";C.toast.error(q)}finally{m(),l(!1)}}},[i,c,p,f,y,l,m]),b=a.useCallback(()=>{if(!i)return[];const t=[];return i.entities.forEach(q=>{t.push(q.entityId)}),v.forEach(q=>{i.entities.some(r=>{const o=d(r.entityId);return o?.name?h.filter(u=>r.entityType==="folder"?u.entityType==="folder"&&u.parentId===q.id:r.entityType==="task"?u.entityType==="task"&&u.folderId===q.id:!1).some(u=>u.name===o.name&&u.entityId!==r.entityId):!1})&&t.push(q.id)}),[...new Set(t)]},[i,v,h,d]),k=a.useCallback(t=>{if(!i)return;if(i.entities.some(e=>e.entityType==="folder"&&e.entityId===t))return"Cannot move folder to itself";if(i.entities.some(e=>e.currentParentId===t))return"Cannot move to the same location";const r=v.find(e=>e.id===t);if(r){const e=i.entities.find(u=>{const g=d(u.entityId);return g?.name?h.filter(s=>u.entityType==="folder"?s.entityType==="folder"&&s.parentId===r.id:u.entityType==="task"?s.entityType==="task"&&s.folderId===r.id:!1).some(s=>s.name===g.name&&s.entityId!==u.entityId):!1});if(e)return`Cannot move "${d(e.entityId)?.name||"Entity"}" - an entity with the same name already exists in this folder`}return i.entities.some(e=>e.entityType==="folder")?"Cannot move folder to its child":"Cannot move to this location"},[i,v,h,d]),x=a.useMemo(()=>i?.entities.every(t=>t.entityType==="folder")||!1,[i]);return{movingEntities:i,isEntityPickerOpen:I,isDialogOpen:I,openMoveDialog:M,closeMoveDialog:T,handleMoveSubmit:w,handleMoveToRoot:D,getDisabledFolderIds:b,getDisabledMessage:k,canMoveToRoot:x}};exports.useMoveEntities=$;
2
2
  //# sourceMappingURL=useMoveEntities.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMoveEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useMoveEntities.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport {\n OperationModel,\n OperationResponseModel,\n useUpdateOverviewEntitiesMutation,\n} from '@shared/api'\nimport { useProjectTableContext } from '@shared/containers'\nimport {\n useMoveEntityContext,\n EntityMoveData,\n MultiEntityMoveData,\n} from '@shared/context/MoveEntityContext'\nimport { useProjectFoldersContext } from '@shared/context'\n\nexport type EntityType = 'folder' | 'task'\n\ninterface UseMoveEntitiesProps {\n projectName: string\n}\n\nexport const useMoveEntities = ({ projectName }: UseMoveEntitiesProps) => {\n const {\n movingEntities,\n isEntityPickerOpen,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n } = useMoveEntityContext()\n const [updateOverviewEntities] = useUpdateOverviewEntitiesMutation()\n\n // Get project context for entity data\n const { tableData, getEntityById } = useProjectTableContext()\n\n // Get folder data to check hasVersions property\n const { folders } = useProjectFoldersContext()\n\n // Action dispatchers\n const openMoveDialogHandler = useCallback(\n (entityData: EntityMoveData | MultiEntityMoveData) => {\n openMoveDialog(entityData)\n },\n [openMoveDialog],\n )\n\n const closeMoveDialogHandler = useCallback(() => {\n closeMoveDialog()\n }, [closeMoveDialog])\n\n // Move submit handler\n const handleMoveSubmit = useCallback(\n async (selectedFolderIds: string[]) => {\n if (!movingEntities || selectedFolderIds.length === 0) return\n\n const targetFolderId = selectedFolderIds[0]\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data:\n entity.entityType === 'folder'\n ? { parentId: targetFolderId }\n : { folderId: targetFolderId },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entity:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities'\n\n // Improve specific error messages for better UX\n if (errorMessage.includes('already exists')) {\n // For multiple entities, provide a more general message\n if (movingEntities.entities.length > 1) {\n errorMessage = `Cannot move some entities - one or more entities with the same name already exist in the target location`\n } else {\n const entity = movingEntities.entities[0]\n if (entity.entityType === 'task') {\n // Extract task name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const taskName = nameMatch ? nameMatch[1] : 'this task'\n errorMessage = `Cannot move \"${taskName}\" - a task with this name already exists in the target folder`\n } else {\n // Extract folder name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const folderName = nameMatch ? nameMatch[1] : 'this folder'\n errorMessage = `Cannot move \"${folderName}\" - a folder with this name already exists in the target location`\n }\n }\n }\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n },\n [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ],\n )\n\n // Move to root handler\n const handleMoveToRoot = useCallback(async () => {\n if (!movingEntities) return\n\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities to move to root (null parentId/folderId)\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-to-root-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data: entity.entityType === 'folder' ? { parentId: null } : { folderId: null },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entities to root:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities to root'\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n }, [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ])\n\n // Get disabled folder IDs\n const getDisabledFolderIds = useCallback((): string[] => {\n if (!movingEntities) return []\n const disabledIds: string[] = []\n\n // Add the entities being moved themselves to prevent moving to themselves\n movingEntities.entities.forEach((entity: EntityMoveData) => {\n disabledIds.push(entity.entityId)\n })\n\n // Add folders where name conflicts would occur\n folders.forEach((targetFolder) => {\n // Check if any moving entity has the same name as existing children in this folder\n const hasNameConflict = movingEntities.entities.some((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (hasNameConflict) {\n disabledIds.push(targetFolder.id)\n }\n })\n\n return [...new Set(disabledIds)]\n }, [movingEntities, folders, tableData, getEntityById])\n\n // Get disabled message for a folder\n const getDisabledMessage = useCallback(\n (folderId: string): string | undefined => {\n if (!movingEntities) return undefined\n\n // 1. Check if this folder is the entity being moved itself.\n const isEntityItself = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder' && entity.entityId === folderId,\n )\n\n if (isEntityItself) {\n return 'Cannot move folder to itself'\n }\n\n // 2. Check if this is the current parent folder.\n const isCurrentParent = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.currentParentId === folderId,\n )\n\n if (isCurrentParent) {\n return 'Cannot move to the same location'\n }\n\n // 4. Check for name conflicts - entity with same name already exists in target folder\n const targetFolder = folders.find((folder) => folder.id === folderId)\n if (targetFolder) {\n const conflictingEntity = movingEntities.entities.find((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (conflictingEntity) {\n const entityData = getEntityById(conflictingEntity.entityId)\n const entityName = entityData?.name || 'Entity'\n return `Cannot move \"${entityName}\" - an entity with the same name already exists in this folder`\n }\n }\n\n // 5. Check if the target is a child folder (simplified check)\n const isChildFolder = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )\n\n if (isChildFolder) {\n return 'Cannot move folder to its child'\n }\n\n // Default message\n return 'Cannot move to this location'\n },\n [movingEntities, folders, tableData, getEntityById],\n )\n\n // Check if we can show \"Move to root\" option\n const canMoveToRoot = useMemo(() => {\n return (\n movingEntities?.entities.every((entity: EntityMoveData) => entity.entityType === 'folder') ||\n false\n )\n }, [movingEntities])\n\n return {\n // State\n movingEntities,\n isEntityPickerOpen,\n\n // Actions (keeping legacy names for compatibility)\n isDialogOpen: isEntityPickerOpen,\n openMoveDialog: openMoveDialogHandler,\n closeMoveDialog: closeMoveDialogHandler,\n handleMoveSubmit,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n canMoveToRoot,\n }\n}\n"],"names":["useMoveEntities","projectName","movingEntities","isEntityPickerOpen","openMoveDialog","closeMoveDialog","setEntityPickerOpen","clearMovingEntities","useMoveEntityContext","updateOverviewEntities","useUpdateOverviewEntitiesMutation","tableData","getEntityById","useProjectTableContext","folders","useProjectFoldersContext","openMoveDialogHandler","useCallback","entityData","closeMoveDialogHandler","handleMoveSubmit","selectedFolderIds","targetFolderId","moveOperations","entity","index","failedOperations","op","errorDetails","error","errorMessage","nameMatch","toast","handleMoveToRoot","getDisabledFolderIds","disabledIds","targetFolder","movingEntity","movingEntityData","sibling","getDisabledMessage","folderId","folder","conflictingEntity","canMoveToRoot","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"useMoveEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useMoveEntities.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport {\n OperationModel,\n OperationResponseModel,\n useUpdateOverviewEntitiesMutation,\n} from '@shared/api'\nimport { useProjectTableContext } from '@shared/containers'\nimport {\n useMoveEntityContext,\n EntityMoveData,\n MultiEntityMoveData,\n} from '@shared/context/MoveEntityContext'\nimport { useProjectFoldersContext } from '@shared/context'\n\nexport type EntityType = 'folder' | 'task'\n\ninterface UseMoveEntitiesProps {\n projectName: string\n}\n\nexport const useMoveEntities = ({ projectName }: UseMoveEntitiesProps) => {\n const {\n movingEntities,\n isEntityPickerOpen,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n } = useMoveEntityContext()\n const [updateOverviewEntities] = useUpdateOverviewEntitiesMutation()\n\n // Get project context for entity data\n const { tableData, getEntityById } = useProjectTableContext()\n\n // Get folder data to check hasVersions property\n const { folders } = useProjectFoldersContext()\n\n // Action dispatchers\n const openMoveDialogHandler = useCallback(\n (entityData: EntityMoveData | MultiEntityMoveData) => {\n openMoveDialog(entityData)\n },\n [openMoveDialog],\n )\n\n const closeMoveDialogHandler = useCallback(() => {\n closeMoveDialog()\n }, [closeMoveDialog])\n\n // Move submit handler\n const handleMoveSubmit = useCallback(\n async (selectedFolderIds: string[]) => {\n if (!movingEntities || selectedFolderIds.length === 0) return\n\n const targetFolderId = selectedFolderIds[0]\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data:\n entity.entityType === 'folder'\n ? { parentId: targetFolderId }\n : { folderId: targetFolderId },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entity:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities'\n\n // Improve specific error messages for better UX\n if (errorMessage.includes('already exists')) {\n // For multiple entities, provide a more general message\n if (movingEntities.entities.length > 1) {\n errorMessage = `Cannot move some entities - one or more entities with the same name already exist in the target location`\n } else {\n const entity = movingEntities.entities[0]\n if (entity.entityType === 'task') {\n // Extract task name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const taskName = nameMatch ? nameMatch[1] : 'this task'\n errorMessage = `Cannot move \"${taskName}\" - a task with this name already exists in the target folder`\n } else {\n // Extract folder name from error message if possible\n const nameMatch = errorMessage.match(/name '.*?, (.+?)' already exists/)\n const folderName = nameMatch ? nameMatch[1] : 'this folder'\n errorMessage = `Cannot move \"${folderName}\" - a folder with this name already exists in the target location`\n }\n }\n }\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n },\n [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ],\n )\n\n // Move to root handler\n const handleMoveToRoot = useCallback(async () => {\n if (!movingEntities) return\n\n setEntityPickerOpen(false)\n\n try {\n // Prepare move operations for all entities to move to root (null parentId/folderId)\n const moveOperations: OperationModel[] = movingEntities.entities.map(\n (entity: EntityMoveData, index: number) => ({\n id: `move-to-root-${entity.entityId}-${Date.now()}-${index}`,\n type: 'update',\n entityType: entity.entityType,\n entityId: entity.entityId,\n data: entity.entityType === 'folder' ? { parentId: null } : { folderId: null },\n }),\n )\n\n // Use the mutation with built-in optimistic updates and rollback\n const result = await updateOverviewEntities({\n projectName,\n operationsRequestModel: {\n operations: moveOperations,\n },\n }).unwrap()\n\n // Check for any failed operations\n const failedOperations =\n result?.operations?.filter((op: OperationResponseModel) => op.success === false) || []\n\n if (failedOperations.length > 0) {\n const errorDetails = failedOperations.map((op) => op.detail).join(', ')\n throw new Error(errorDetails || 'Some move operations failed')\n }\n } catch (error: any) {\n console.error('Failed to move entities to root:', error)\n\n // Extract and improve error message\n let errorMessage =\n error?.data?.detail || error?.error || error?.message || 'Failed to move entities to root'\n\n toast.error(errorMessage)\n } finally {\n clearMovingEntities()\n setEntityPickerOpen(false)\n }\n }, [\n movingEntities,\n projectName,\n updateOverviewEntities,\n openMoveDialog,\n closeMoveDialog,\n setEntityPickerOpen,\n clearMovingEntities,\n ])\n\n // Get disabled folder IDs\n const getDisabledFolderIds = useCallback((): string[] => {\n if (!movingEntities) return []\n const disabledIds: string[] = []\n\n // Add the entities being moved themselves to prevent moving to themselves\n movingEntities.entities.forEach((entity: EntityMoveData) => {\n disabledIds.push(entity.entityId)\n })\n\n // Add folders where name conflicts would occur\n folders.forEach((targetFolder) => {\n // Check if any moving entity has the same name as existing children in this folder\n const hasNameConflict = movingEntities.entities.some((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (hasNameConflict) {\n disabledIds.push(targetFolder.id)\n }\n })\n\n return [...new Set(disabledIds)]\n }, [movingEntities, folders, tableData, getEntityById])\n\n // Get disabled message for a folder\n const getDisabledMessage = useCallback(\n (folderId: string): string | undefined => {\n if (!movingEntities) return undefined\n\n // 1. Check if this folder is the entity being moved itself.\n const isEntityItself = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder' && entity.entityId === folderId,\n )\n\n if (isEntityItself) {\n return 'Cannot move folder to itself'\n }\n\n // 2. Check if this is the current parent folder.\n const isCurrentParent = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.currentParentId === folderId,\n )\n\n if (isCurrentParent) {\n return 'Cannot move to the same location'\n }\n\n // 4. Check for name conflicts - entity with same name already exists in target folder\n const targetFolder = folders.find((folder) => folder.id === folderId)\n if (targetFolder) {\n const conflictingEntity = movingEntities.entities.find((movingEntity: EntityMoveData) => {\n // Get the name of the entity being moved\n const movingEntityData = getEntityById(movingEntity.entityId)\n if (!movingEntityData?.name) return false\n\n // Find all entities that would be siblings in the target folder\n const existingSiblings = tableData.filter((entity) => {\n // For folders, check parentId\n if (movingEntity.entityType === 'folder') {\n return entity.entityType === 'folder' && entity.parentId === targetFolder.id\n }\n // For tasks, check folderId\n if (movingEntity.entityType === 'task') {\n return entity.entityType === 'task' && entity.folderId === targetFolder.id\n }\n return false\n })\n\n // Check if any sibling has the same name (excluding the entity being moved itself)\n return existingSiblings.some(\n (sibling) =>\n sibling.name === movingEntityData.name && sibling.entityId !== movingEntity.entityId,\n )\n })\n\n if (conflictingEntity) {\n const entityData = getEntityById(conflictingEntity.entityId)\n const entityName = entityData?.name || 'Entity'\n return `Cannot move \"${entityName}\" - an entity with the same name already exists in this folder`\n }\n }\n\n // 5. Check if the target is a child folder (simplified check)\n const isChildFolder = movingEntities.entities.some(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )\n\n if (isChildFolder) {\n return 'Cannot move folder to its child'\n }\n\n // Default message\n return 'Cannot move to this location'\n },\n [movingEntities, folders, tableData, getEntityById],\n )\n\n // Check if we can show \"Move to root\" option\n const canMoveToRoot = useMemo(() => {\n return (\n movingEntities?.entities.every((entity: EntityMoveData) => entity.entityType === 'folder') ||\n false\n )\n }, [movingEntities])\n\n return {\n // State\n movingEntities,\n isEntityPickerOpen,\n\n // Actions (keeping legacy names for compatibility)\n isDialogOpen: isEntityPickerOpen,\n openMoveDialog: openMoveDialogHandler,\n closeMoveDialog: closeMoveDialogHandler,\n handleMoveSubmit,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n canMoveToRoot,\n }\n}\n"],"names":["useMoveEntities","projectName","movingEntities","isEntityPickerOpen","openMoveDialog","closeMoveDialog","setEntityPickerOpen","clearMovingEntities","useMoveEntityContext","updateOverviewEntities","useUpdateOverviewEntitiesMutation","tableData","getEntityById","useProjectTableContext","folders","useProjectFoldersContext","openMoveDialogHandler","useCallback","entityData","closeMoveDialogHandler","handleMoveSubmit","selectedFolderIds","targetFolderId","moveOperations","entity","index","failedOperations","op","errorDetails","error","errorMessage","nameMatch","toast","handleMoveToRoot","getDisabledFolderIds","disabledIds","targetFolder","movingEntity","movingEntityData","sibling","getDisabledMessage","folderId","folder","conflictingEntity","canMoveToRoot","useMemo"],"mappings":"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"}
@@ -133,6 +133,7 @@ import "../../../context/WebsocketContext.es.js";
133
133
  import "../../../context/GlobalContext.es.js";
134
134
  import "../../../context/ProjectContext.es.js";
135
135
  import { useProjectFoldersContext as F } from "../../../context/ProjectFoldersContext.es.js";
136
+ import "../../../context/EntityUpdatesContextInstance.es.js";
136
137
  import "../../Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js";
137
138
  import "../../Feed/components/FileUploadPreview/Mimes/TextMime.es.js";
138
139
  import "react-markdown";
@@ -215,6 +216,7 @@ import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
215
216
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
216
217
  import "../../../components/SimpleFormDialog/SimpleFormDialog.es.js";
217
218
  import "../../../components/StyledLink/StyledLink.es.js";
219
+ import "../../../components/SyncButton/SyncButton.es.js";
218
220
  import "../../../components/TableGridSwitch/TableGridSwitch.es.js";
219
221
  import "../../../components/Thumbnail/Thumbnail.styled.es.js";
220
222
  import "../../../components/Thumbnail/StackedThumbnails.es.js";
@@ -232,6 +234,7 @@ import "../../Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
232
234
  import "../../Feed/components/ActivityDate.es.js";
233
235
  import "../../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
234
236
  import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
237
+ import "../../Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js";
235
238
  import "../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
236
239
  import "../../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
237
240
  import "../../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
@@ -293,7 +296,7 @@ import "../../Views/Views.styled.es.js";
293
296
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
294
297
  import "../../ListTable/ListTableRow.es.js";
295
298
  import "../../ListTable/ListTable.styled.es.js";
296
- const nm = ({ projectName: f }) => {
299
+ const lm = ({ projectName: f }) => {
297
300
  const {
298
301
  movingEntities: i,
299
302
  isEntityPickerOpen: M,
@@ -454,6 +457,6 @@ const nm = ({ projectName: f }) => {
454
457
  };
455
458
  };
456
459
  export {
457
- nm as useMoveEntities
460
+ lm as useMoveEntities
458
461
  };
459
462
  //# 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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"}