@ynput/ayon-frontend-shared 0.3.36 → 0.3.38

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 (579) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +27 -25
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +222 -215
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs12.js +1 -1
  8. package/dist/_virtual/index.cjs13.js +1 -1
  9. package/dist/_virtual/index.cjs15.js +1 -1
  10. package/dist/_virtual/index.cjs18.js +1 -1
  11. package/dist/_virtual/index.cjs19.js +1 -1
  12. package/dist/_virtual/index.cjs4.js +1 -1
  13. package/dist/_virtual/index.cjs6.js +1 -1
  14. package/dist/_virtual/index.cjs9.js +1 -1
  15. package/dist/_virtual/index.es12.js +2 -5
  16. package/dist/_virtual/index.es12.js.map +1 -1
  17. package/dist/_virtual/index.es13.js +2 -5
  18. package/dist/_virtual/index.es13.js.map +1 -1
  19. package/dist/_virtual/index.es14.js +2 -2
  20. package/dist/_virtual/index.es15.js +2 -2
  21. package/dist/_virtual/index.es16.js +2 -2
  22. package/dist/_virtual/index.es17.js +2 -2
  23. package/dist/_virtual/index.es18.js +2 -2
  24. package/dist/_virtual/index.es19.js +2 -2
  25. package/dist/_virtual/index.es4.js +5 -2
  26. package/dist/_virtual/index.es4.js.map +1 -1
  27. package/dist/_virtual/index.es6.js +2 -2
  28. package/dist/_virtual/index.es7.js +2 -2
  29. package/dist/_virtual/index.es9.js +5 -2
  30. package/dist/_virtual/index.es9.js.map +1 -1
  31. package/dist/components.cjs.js +1 -1
  32. package/dist/components.es.js +77 -73
  33. package/dist/components.es.js.map +1 -1
  34. package/dist/context.cjs.js +1 -1
  35. package/dist/context.es.js +50 -49
  36. package/dist/hooks.cjs.js +1 -1
  37. package/dist/hooks.es.js +33 -29
  38. package/dist/hooks.es.js.map +1 -1
  39. package/dist/index.cjs.js +1 -1
  40. package/dist/index.es.js +16 -12
  41. package/dist/index.es.js.map +1 -1
  42. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  43. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js.map +1 -1
  44. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  45. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  46. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  47. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  48. package/dist/node_modules/remove-accents/index.cjs.js.map +1 -1
  49. package/dist/node_modules/remove-accents/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js.map +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  67. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js.map +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  77. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  78. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  79. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  80. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  81. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  82. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  83. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  84. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  85. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  86. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  87. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  88. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  89. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  90. package/dist/shared/src/api/generated/graphql.cjs.js +108 -23
  91. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  92. package/dist/shared/src/api/generated/graphql.es.js +138 -53
  93. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  94. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  95. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/activities/getActivities.es.js +42 -42
  99. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js +2 -0
  101. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -0
  102. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js +68 -0
  103. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -0
  104. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  105. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/activities/updateActivities.es.js +69 -62
  107. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +64 -56
  111. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +57 -53
  115. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +27 -25
  119. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
  121. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +4 -4
  124. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/overview/getOverview.es.js +212 -187
  128. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  129. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  130. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  131. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +7 -3
  132. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  133. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  134. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  135. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -5
  136. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  137. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  138. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +9 -5
  140. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  141. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  142. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  143. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -5
  144. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  145. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  146. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  147. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +103 -99
  148. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  149. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  150. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  151. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +96 -87
  152. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  153. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  154. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  155. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +9 -5
  156. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  157. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  158. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  159. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +9 -5
  160. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  161. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  162. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  163. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -5
  164. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  165. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  166. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  167. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +9 -5
  168. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  169. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  170. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -6
  172. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  174. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -5
  176. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  177. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  178. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  179. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +9 -5
  180. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  181. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js +6 -0
  182. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js.map +1 -0
  183. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js +58 -0
  184. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js.map +1 -0
  185. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  186. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  187. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +254 -243
  188. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  189. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js +2 -0
  190. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js.map +1 -0
  191. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js +106 -0
  192. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js.map +1 -0
  193. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  194. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  195. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +11 -7
  196. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  197. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  198. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  199. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +9 -5
  200. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  201. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  202. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  203. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +9 -5
  204. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  205. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  206. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  207. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +13 -9
  208. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  209. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  210. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -5
  212. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  213. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  214. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -5
  216. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +7 -5
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  221. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  222. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +9 -5
  224. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  226. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -5
  228. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  230. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -5
  232. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  233. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  234. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +9 -5
  236. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  237. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  238. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +9 -5
  240. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  241. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +10 -0
  242. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -0
  243. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +135 -0
  244. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -0
  245. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  247. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  248. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +21 -17
  250. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  251. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  252. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +44 -46
  254. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  255. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  256. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -4
  258. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  259. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +19 -25
  262. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  263. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js +2 -0
  264. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js.map +1 -0
  265. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js +91 -0
  266. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js.map +1 -0
  267. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  268. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +9 -5
  270. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  271. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  272. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +9 -5
  274. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  275. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  276. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +9 -5
  278. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  279. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  280. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +9 -5
  282. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  283. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  284. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/Feed/Feed.es.js +156 -164
  286. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  287. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +25 -3
  288. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/Feed/Feed.styled.es.js +30 -8
  290. package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
  291. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  292. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +9 -5
  294. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  295. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  296. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +9 -5
  298. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  299. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -5
  302. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
  304. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +1 -0
  306. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  308. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +11 -7
  310. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  311. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  312. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -4
  314. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  315. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  316. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +13 -9
  318. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  320. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +5 -5
  322. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  323. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +17 -0
  324. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -0
  325. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +279 -0
  326. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -0
  327. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -4
  330. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  331. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  332. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +62 -50
  334. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  335. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +2 -0
  336. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -0
  337. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +141 -0
  338. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -0
  339. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +2 -0
  340. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -0
  341. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +81 -0
  342. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -0
  343. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  344. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +20 -18
  346. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  347. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  348. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ListTable/ListTable.es.js +107 -103
  350. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  351. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  352. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -4
  354. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  355. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  356. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +9 -5
  358. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +201 -194
  362. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +210 -180
  366. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -5
  370. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  372. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +35 -31
  374. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +9 -5
  378. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +7 -3
  382. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -4
  384. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +228 -222
  386. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +104 -100
  390. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +63 -58
  396. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +9 -5
  400. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js +3 -0
  402. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -0
  403. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +22 -0
  404. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -0
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +114 -109
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +126 -121
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +7 -3
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +7 -3
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +35 -31
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +9 -5
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +249 -204
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +35 -31
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +35 -31
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +7 -3
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -5
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -5
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +106 -102
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +36 -32
  460. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +47 -43
  464. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +61 -61
  468. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +78 -58
  472. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +9 -5
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +4 -3
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +134 -125
  480. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +82 -0
  482. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -0
  483. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +417 -0
  484. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -0
  485. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +11 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +80 -52
  488. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +36 -32
  492. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -5
  496. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  497. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  498. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +9 -5
  500. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  501. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  502. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +9 -5
  504. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  505. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  506. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +9 -5
  508. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  509. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  510. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +9 -5
  512. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  513. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  514. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +9 -5
  516. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  517. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  518. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  519. package/dist/shared/src/context/DetailsPanelContext.es.js +92 -94
  520. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  521. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  522. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  523. package/dist/shared/src/context/WebsocketContext.es.js +11 -7
  524. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  525. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +2 -0
  526. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -0
  527. package/dist/shared/src/hooks/useGetProductionAddon.es.js +124 -0
  528. package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -0
  529. package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
  530. package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
  531. package/dist/shared/src/hooks/useLocalStorage.es.js +43 -27
  532. package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
  533. package/dist/types/api/generated/graphql.d.ts +122 -0
  534. package/dist/types/api/generated/graphqlLinks.d.ts +10 -0
  535. package/dist/types/api/queries/activities/getActivities.d.ts +83 -0
  536. package/dist/types/api/queries/activities/patchTableLatestComments.d.ts +1 -0
  537. package/dist/types/api/queries/activities/updateActivities.d.ts +16 -0
  538. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
  539. package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
  540. package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
  541. package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
  542. package/dist/types/api/queries/entityLists/getLists.d.ts +84 -0
  543. package/dist/types/api/queries/entityLists/types.d.ts +2 -1
  544. package/dist/types/api/queries/overview/getOverview.d.ts +58 -0
  545. package/dist/types/api/queries/project/getProject.d.ts +7 -0
  546. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
  547. package/dist/types/api/queries/users/getUsers.d.ts +7 -0
  548. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +30 -0
  549. package/dist/types/components/SearchFilter/CustomDateRangeDialog.d.ts +13 -0
  550. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  551. package/dist/types/components/SearchFilter/useDateRangeFilter.d.ts +36 -0
  552. package/dist/types/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.d.ts +13 -0
  553. package/dist/types/containers/DetailsPanel/helpers/subtasksFilterAdapter.d.ts +5 -0
  554. package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +1 -0
  555. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  556. package/dist/types/containers/Feed/components/FeedSearchFilter.d.ts +15 -0
  557. package/dist/types/containers/Feed/context/FeedContext.d.ts +5 -1
  558. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +3 -0
  559. package/dist/types/containers/Feed/helpers/feedFilterAdapter.d.ts +5 -0
  560. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +5 -1
  561. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -0
  562. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  563. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +1 -0
  564. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -1
  565. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardComments.d.ts +6 -0
  566. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  567. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +3 -1
  568. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +1 -0
  569. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -1
  570. package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +9 -0
  571. package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +5 -0
  572. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
  573. package/dist/types/containers/ProjectTreeTable/widgets/CommentsWidget.d.ts +7 -0
  574. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -0
  575. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  576. package/dist/types/hooks/index.d.ts +1 -0
  577. package/dist/types/hooks/useGetProductionAddon.d.ts +10 -0
  578. package/dist/types/hooks/useLocalStorage.d.ts +2 -0
  579. package/package.json +3 -2
@@ -23,6 +23,7 @@ import "../widgets/CellWidget.es.js";
23
23
  import "../widgets/EntityNameWidget.es.js";
24
24
  import "../widgets/GroupHeaderWidget.es.js";
25
25
  import "../widgets/ThumbnailWidget.es.js";
26
+ import "../widgets/LinksWidget.es.js";
26
27
  import "../../../components/AddonLoadingScreen/AddonLoadingScreen.es.js";
27
28
  import "../../../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
28
29
  import "../../../components/AccessSearchInput/AccessSearchInput.styled.es.js";
@@ -213,7 +214,7 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
213
214
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
214
215
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
215
216
  import "../../Feed/Feed.styled.es.js";
216
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
217
+ import "../../Feed/components/FeedSearchFilter.es.js";
217
218
  import "@tanstack/react-virtual";
218
219
  import "../ProjectTreeTable.styled.es.js";
219
220
  import "../components/HeaderActionButton.es.js";
@@ -236,6 +237,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
236
237
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
237
238
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
238
239
  import "../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
240
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
241
+ import "../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
239
242
  import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
240
243
  import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
241
244
  import "../../Actions/Actions.styled.es.js";
@@ -268,6 +271,7 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
268
271
  import "../../../components/SizeSlider/SizeSlider.es.js";
269
272
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
270
273
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
274
+ import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
271
275
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
272
276
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
273
277
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
@@ -287,7 +291,7 @@ import "../../../components/ColumnHeaderMenuUI.es.js";
287
291
  import "../widgets/EmptyWidget.es.js";
288
292
  import "../widgets/ErrorWidget.es.js";
289
293
  import "../widgets/LoadMoreWidget.es.js";
290
- function sm() {
294
+ function cm() {
291
295
  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(
292
296
  (o) => {
293
297
  const a = o.target;
@@ -438,6 +442,6 @@ function sm() {
438
442
  };
439
443
  }
440
444
  export {
441
- sm as default
445
+ cm as default
442
446
  };
443
447
  //# 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":"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"}
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":"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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/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");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("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");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("../components/DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../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/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");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("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");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/ProjectDataContext.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../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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"}
@@ -205,6 +205,7 @@ import "../../Slicer/hooks/useTableDataBySlice.es.js";
205
205
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
206
206
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
207
207
  import "../../../components/SearchFilter/filterDates.es.js";
208
+ import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
208
209
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
209
210
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
210
211
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
@@ -234,7 +235,7 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
234
235
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
235
236
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
236
237
  import "../../Feed/Feed.styled.es.js";
237
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
238
+ import "../../Feed/components/FeedSearchFilter.es.js";
238
239
  import "@tanstack/react-virtual";
239
240
  import "@tanstack/react-table";
240
241
  import "../widgets/CollapsedWidget.es.js";
@@ -248,8 +249,7 @@ import "../widgets/CellWidget.es.js";
248
249
  import "../widgets/EntityNameWidget.es.js";
249
250
  import "../widgets/GroupHeaderWidget.es.js";
250
251
  import "../widgets/ThumbnailWidget.es.js";
251
- import "../context/DetailsPanelEntityContext.es.js";
252
- import "../context/SelectedRowsContext.es.js";
252
+ import "../widgets/LinksWidget.es.js";
253
253
  import { useProjectTableContext as P } from "../context/ProjectTableContext.es.js";
254
254
  import "../widgets/EmptyWidget.es.js";
255
255
  import "../widgets/ErrorWidget.es.js";
@@ -259,6 +259,8 @@ import "../context/SelectionCellsContext.es.js";
259
259
  import "../context/ProjectTableQueriesContext.es.js";
260
260
  import "../context/ClipboardContext.es.js";
261
261
  import "../context/ColumnSettingsContext.es.js";
262
+ import "../context/SelectedRowsContext.es.js";
263
+ import "../context/DetailsPanelEntityContext.es.js";
262
264
  import "../components/DeleteConfirmContent.es.js";
263
265
  import "../context/ProjectDataContext.es.js";
264
266
  import "../ProjectTreeTable.styled.es.js";
@@ -273,6 +275,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
273
275
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
274
276
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
275
277
  import "../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
278
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
279
+ import "../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
276
280
  import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
277
281
  import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
278
282
  import "../../Actions/Actions.styled.es.js";
@@ -284,7 +288,7 @@ import "../../Views/Views.styled.es.js";
284
288
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
285
289
  import "../../ListTable/ListTableRow.es.js";
286
290
  import "../../ListTable/ListTable.styled.es.js";
287
- const Ze = ({ projectName: f }) => {
291
+ const im = ({ projectName: f }) => {
288
292
  const {
289
293
  movingEntities: i,
290
294
  isEntityPickerOpen: M,
@@ -445,6 +449,6 @@ const Ze = ({ projectName: f }) => {
445
449
  };
446
450
  };
447
451
  export {
448
- Ze as useMoveEntities
452
+ im as useMoveEntities
449
453
  };
450
454
  //# 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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"}