@ynput/ayon-frontend-shared 0.3.9 → 0.3.11

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 (817) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +182 -171
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +13 -11
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs10.js +1 -1
  11. package/dist/_virtual/index.cjs11.js +1 -1
  12. package/dist/_virtual/index.cjs12.js +1 -1
  13. package/dist/_virtual/index.es10.js +3 -3
  14. package/dist/_virtual/index.es11.js +5 -5
  15. package/dist/_virtual/index.es12.js +5 -5
  16. package/dist/api.cjs.js +1 -1
  17. package/dist/api.es.js +352 -342
  18. package/dist/api.es.js.map +1 -1
  19. package/dist/context.cjs.js +1 -1
  20. package/dist/context.es.js +39 -36
  21. package/dist/context.es.js.map +1 -1
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +11 -9
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  26. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  27. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  28. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  29. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  30. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  31. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  32. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  33. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  34. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  35. package/dist/shared/src/api/generated/projectFolders.cjs.js +2 -0
  36. package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -0
  37. package/dist/shared/src/api/generated/projectFolders.es.js +44 -0
  38. package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -0
  39. package/dist/shared/src/api/generated/projects.cjs.js +1 -1
  40. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  41. package/dist/shared/src/api/generated/projects.es.js +20 -0
  42. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  43. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  44. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -1
  46. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/actions/getActions.es.js +11 -10
  48. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/activities/getActivities.es.js +11 -10
  52. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/activities/getCategories.es.js +3 -2
  56. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/activities/getMentions.es.js +3 -2
  60. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
  62. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/updateReaction.es.js +4 -3
  64. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -1
  66. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/addons/getAddons.es.js +7 -6
  68. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -1
  70. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +4 -3
  72. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +4 -3
  76. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -1
  78. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/cloud/cloud.es.js +9 -8
  80. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/config/getConfig.cjs.js +1 -1
  82. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/config/getConfig.es.js +9 -8
  84. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -1
  86. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/entities/getEntity.es.js +13 -12
  88. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -3
  92. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  93. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  94. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  95. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +4 -2
  96. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  97. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  98. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  100. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  102. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/entityLists/getLists.es.js +15 -14
  104. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -1
  106. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +3 -2
  108. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  110. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +22 -20
  112. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  114. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +17 -16
  116. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  118. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/folders/getFolders.es.js +4 -3
  120. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  121. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +22 -6
  124. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +3 -2
  128. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  130. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/links/getLinks.es.js +14 -13
  132. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/links/updateLinks.cjs.js +1 -1
  134. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/links/updateLinks.es.js +17 -16
  136. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.es.js +37 -36
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  142. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/overview/patchVersions.es.js +88 -53
  144. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  146. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/overview/updateOverview.es.js +8 -6
  148. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -1
  150. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +4 -3
  152. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  153. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  154. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/products/createProduct.es.js +3 -2
  156. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  158. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/project/getProject.es.js +9 -8
  160. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +2 -0
  162. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -0
  163. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +178 -0
  164. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -0
  165. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  166. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/review/getReview.es.js +15 -14
  168. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
  170. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/review/updateReview.es.js +7 -6
  172. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  173. package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
  174. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  175. package/dist/shared/src/api/queries/share/share.es.js +3 -2
  176. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  177. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
  178. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  179. package/dist/shared/src/api/queries/system/getSystem.es.js +5 -4
  180. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  181. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js +1 -1
  182. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
  183. package/dist/shared/src/api/queries/tasks/updateTasks.es.js +40 -22
  184. package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
  185. package/dist/shared/src/api/queries/uris/getUris.cjs.js +1 -1
  186. package/dist/shared/src/api/queries/uris/getUris.cjs.js.map +1 -1
  187. package/dist/shared/src/api/queries/uris/getUris.es.js +3 -2
  188. package/dist/shared/src/api/queries/uris/getUris.es.js.map +1 -1
  189. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  190. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  191. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +6 -5
  192. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  193. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  194. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  195. package/dist/shared/src/api/queries/users/getUsers.es.js +20 -18
  196. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  197. package/dist/shared/src/api/queries/users/guests.cjs.js +1 -1
  198. package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -1
  199. package/dist/shared/src/api/queries/users/guests.es.js +5 -4
  200. package/dist/shared/src/api/queries/users/guests.es.js.map +1 -1
  201. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
  202. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  203. package/dist/shared/src/api/queries/users/updateUsers.es.js +21 -20
  204. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  205. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  206. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  207. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +348 -136
  208. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  209. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js +1 -1
  210. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  211. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js +57 -59
  212. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  213. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -1
  214. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  215. package/dist/shared/src/api/queries/versions/updateVersions.es.js +6 -5
  216. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  217. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
  218. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  219. package/dist/shared/src/api/queries/views/getViews.es.js +11 -10
  220. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  221. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -1
  222. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  223. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +4 -3
  224. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  225. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  226. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  227. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  228. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  229. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +3 -3
  230. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  231. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +13 -13
  232. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  233. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  234. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  235. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +24 -22
  236. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  237. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  238. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  239. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  240. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  241. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  242. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  243. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  244. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  245. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  246. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  247. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  248. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  249. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  250. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  251. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  252. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  253. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  254. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  255. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +16 -14
  256. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  257. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  258. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  259. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  260. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  261. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  262. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  263. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
  264. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  265. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  266. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  267. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  268. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  269. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  270. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  272. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  273. package/dist/shared/src/components/Menu/Menu.styled.cjs.js +0 -1
  274. package/dist/shared/src/components/Menu/Menu.styled.cjs.js.map +1 -1
  275. package/dist/shared/src/components/Menu/Menu.styled.es.js +0 -1
  276. package/dist/shared/src/components/Menu/Menu.styled.es.js.map +1 -1
  277. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  278. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  279. package/dist/shared/src/components/Menu/MenuList.es.js +21 -21
  280. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  281. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  282. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  283. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +58 -38
  284. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  285. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  286. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  287. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -107
  288. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  289. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  290. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  291. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  292. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  293. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  294. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  295. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
  296. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  297. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  298. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  299. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
  300. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  301. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  302. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  303. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  304. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  308. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +32 -30
  312. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  313. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  314. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  315. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  316. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  317. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  318. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  319. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  320. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  321. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  322. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  323. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  324. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  325. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  326. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  328. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  329. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +31 -0
  330. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -0
  331. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +107 -0
  332. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -0
  333. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  334. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +33 -28
  336. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  337. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  338. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +17 -7
  340. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  341. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  342. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  343. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  344. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  345. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  346. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  347. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  348. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  349. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  350. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  351. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  352. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  353. package/dist/shared/src/config/plannerFeatures.cjs.js +2 -0
  354. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -0
  355. package/dist/shared/src/config/plannerFeatures.es.js +50 -0
  356. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -0
  357. package/dist/shared/src/config/powerpackFeatures.cjs.js +2 -0
  358. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -0
  359. package/dist/shared/src/config/powerpackFeatures.es.js +74 -0
  360. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -0
  361. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  362. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  364. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  365. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  366. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Actions/Actions.es.js +18 -15
  368. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  369. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  370. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +33 -32
  372. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  373. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  374. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  376. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  378. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -11
  380. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  396. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
  400. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
  404. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  406. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
  408. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  410. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +4 -2
  412. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  416. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  417. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  418. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  420. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  421. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  422. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  424. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  425. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  426. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  428. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  429. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  430. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  432. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  434. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  436. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  437. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js +1 -1
  438. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js +8 -8
  440. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js.map +1 -1
  441. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  442. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
  444. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  445. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  446. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  448. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  449. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  450. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  452. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  455. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  456. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +18 -18
  458. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  459. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  460. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  462. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  466. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  468. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  470. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  472. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  474. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +686 -616
  478. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +26 -11
  480. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +40 -25
  482. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +95 -93
  486. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +2 -0
  488. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -0
  489. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +381 -0
  490. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -0
  491. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  494. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  498. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -2
  500. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +13 -9
  502. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +147 -119
  506. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -3
  508. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +487 -262
  510. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +149 -145
  514. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  518. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +30 -30
  522. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +94 -91
  526. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js +5 -0
  528. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -0
  529. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js +67 -0
  530. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -0
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +57 -54
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +30 -28
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js +2 -0
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js.map +1 -0
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js +56 -0
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js.map +1 -0
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +57 -40
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +30 -28
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +2 -0
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -0
  589. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +303 -0
  590. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -0
  591. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +175 -156
  594. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  598. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +21 -19
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -7
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -29
  622. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  623. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  624. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +7 -5
  626. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  627. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  628. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +90 -85
  630. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  631. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +9 -5
  632. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +11 -7
  634. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  635. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  636. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  637. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
  638. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  639. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  640. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +6 -4
  642. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +14 -12
  646. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
  650. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  651. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  652. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  654. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  655. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  656. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
  658. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  659. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  660. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +40 -38
  662. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  663. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  664. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +10 -8
  666. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  667. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  668. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +5 -3
  670. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  671. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  672. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  674. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  675. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  676. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  677. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  678. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  679. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  680. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  681. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +12 -10
  682. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  683. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  684. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  685. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  686. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  687. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  688. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  689. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  690. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  691. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  692. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  693. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  694. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  695. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  696. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  697. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  698. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  699. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  700. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  701. package/dist/shared/src/context/PowerpackContext.es.js +46 -94
  702. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  703. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  704. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  705. package/dist/shared/src/context/ProjectContext.es.js +6 -4
  706. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  707. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  708. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  709. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  710. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  711. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  712. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  713. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  714. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  715. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  716. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  717. package/dist/shared/src/context/SubtasksModulesContext.es.js +21 -14
  718. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  719. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  720. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  721. package/dist/shared/src/context/UriContext.es.js +7 -5
  722. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  723. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  724. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  725. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  726. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  727. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  728. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  729. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  730. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  731. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  732. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  733. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  734. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  735. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  736. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  737. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  738. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  739. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  740. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  741. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  742. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  743. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  744. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  745. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  746. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  747. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  748. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  749. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  750. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  751. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +2 -0
  752. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -0
  753. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +69 -0
  754. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -0
  755. package/dist/shared/src/util/errorHandling.cjs.js +2 -0
  756. package/dist/shared/src/util/errorHandling.cjs.js.map +1 -0
  757. package/dist/shared/src/util/errorHandling.es.js +9 -0
  758. package/dist/shared/src/util/errorHandling.es.js.map +1 -0
  759. package/dist/shared/src/util/folderHierarchy.cjs.js +2 -0
  760. package/dist/shared/src/util/folderHierarchy.cjs.js.map +1 -0
  761. package/dist/shared/src/util/folderHierarchy.es.js +14 -0
  762. package/dist/shared/src/util/folderHierarchy.es.js.map +1 -0
  763. package/dist/shared/src/util/folderOperations.cjs.js +2 -0
  764. package/dist/shared/src/util/folderOperations.cjs.js.map +1 -0
  765. package/dist/shared/src/util/folderOperations.es.js +27 -0
  766. package/dist/shared/src/util/folderOperations.es.js.map +1 -0
  767. package/dist/shared/src/util/keyboardShortcuts.cjs.js +2 -0
  768. package/dist/shared/src/util/keyboardShortcuts.cjs.js.map +1 -0
  769. package/dist/shared/src/util/keyboardShortcuts.es.js +8 -0
  770. package/dist/shared/src/util/keyboardShortcuts.es.js.map +1 -0
  771. package/dist/types/api/generated/actions.d.ts +2 -1
  772. package/dist/types/api/generated/folders.d.ts +3 -3
  773. package/dist/types/api/generated/index.d.ts +2 -0
  774. package/dist/types/api/generated/projectFolders.d.ts +79 -0
  775. package/dist/types/api/generated/projects.d.ts +55 -1
  776. package/dist/types/api/generated/system.d.ts +2 -1
  777. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  778. package/dist/types/api/queries/index.d.ts +1 -0
  779. package/dist/types/api/queries/project/getProject.d.ts +4 -0
  780. package/dist/types/api/queries/projectFolders/index.d.ts +1 -0
  781. package/dist/types/api/queries/projectFolders/projectFolders.d.ts +985 -0
  782. package/dist/types/api/queries/tasks/updateTasks.d.ts +7 -0
  783. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1 -1
  784. package/dist/types/components/FolderForm/FolderForm.d.ts +24 -0
  785. package/dist/types/components/FolderForm/index.d.ts +3 -0
  786. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -1
  787. package/dist/types/components/SimpleFormDialog/FormFile.d.ts +16 -0
  788. package/dist/types/components/SimpleFormDialog/SimpleFormDialog.d.ts +2 -1
  789. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +1 -0
  790. package/dist/types/config/index.d.ts +2 -0
  791. package/dist/types/config/plannerFeatures.d.ts +13 -0
  792. package/dist/types/config/powerpackFeatures.d.ts +6 -0
  793. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +2 -1
  794. package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.d.ts +1 -0
  795. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
  796. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.d.ts +1 -0
  797. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -0
  798. package/dist/types/containers/ProjectTreeTable/components/ColumnDndProvider.d.ts +6 -0
  799. package/dist/types/containers/ProjectTreeTable/components/index.d.ts +1 -0
  800. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.d.ts +26 -0
  801. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  802. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  803. package/dist/types/containers/ProjectTreeTable/hooks/useColumnDragRestriction.d.ts +19 -0
  804. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +4 -0
  805. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +2 -1
  806. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +2 -2
  807. package/dist/types/context/PowerpackContext.d.ts +17 -6
  808. package/dist/types/util/buildHierarchicalTableRows.d.ts +43 -0
  809. package/dist/types/util/errorHandling.d.ts +7 -0
  810. package/dist/types/util/folderHierarchy.d.ts +37 -0
  811. package/dist/types/util/folderOperations.d.ts +34 -0
  812. package/dist/types/util/index.d.ts +5 -0
  813. package/dist/types/util/keyboardShortcuts.d.ts +6 -0
  814. package/dist/util.cjs.js +1 -1
  815. package/dist/util.es.js +51 -41
  816. package/dist/util.es.js.map +1 -1
  817. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useCellContextMenu.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCellContextMenu.ts"],"sourcesContent":["import { ContextMenuItemType, useCreateContextMenu } from '../../ContextMenu/useCreateContextMenu'\nimport useDeleteEntities from './useDeleteEntities'\nimport { getPlatformShortcutKey, KeyMode } from '../../../util/platform'\nimport { getCellId, parseCellId } from '../utils/cellUtils'\nimport { useClipboard } from '../context/ClipboardContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useCellEditing } from '../context/CellEditingContext'\nimport { InheritFromParentEntity } from './useUpdateTableData'\nimport { ProjectTableAttribute, TableRow } from '../types'\nimport { UseHistoryReturn } from './useHistory'\nimport { GROUP_BY_ID } from './useBuildGroupByTableData'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { EntityMap, getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { useMemo } from 'react'\nimport { useProjectContext } from '@shared/context'\n\ntype ContextEvent = React.MouseEvent<HTMLTableSectionElement, MouseEvent>\n\nexport type HeaderLabel = { id: string; label: string }\n\nexport type TableCellContextData = {\n cellId: string\n columnId: string\n entityId: string\n entityType: 'folder' | 'task' | 'product' | 'version' | 'unknown' | undefined\n parentId?: string\n attribField: ProjectTableAttribute | undefined // the attribute field if any (fps, custom attribs, etc.)\n column: {\n id: string\n label: string\n }\n isGroup: boolean // if the cell is a group header\n data?: EntityMap | undefined\n}\ntype DefaultMenuItem =\n | 'copy-paste'\n | 'show-details'\n | 'rename'\n | 'expand-collapse'\n | 'inherit'\n | 'delete'\n | 'export'\n | 'create-folder'\n | 'create-task'\n | 'open-viewer'\nexport type ContextMenuItemConstructor = (\n e: ContextEvent,\n cell: TableCellContextData,\n selectedCells: TableCellContextData[],\n meta: {\n selectedCells: string[] // minus row selection cells\n selectedRows: string[]\n selectedColumns: string[]\n selectedFullRows: string[] // if the full row is selected\n selectedGroups: string[] // groups if any\n },\n context: {\n history: UseHistoryReturn\n },\n) => ContextMenuItemType | ContextMenuItemType[] | undefined\nexport type ContextMenuItemConstructors = (DefaultMenuItem | ContextMenuItemConstructor)[]\n\ntype CellContextMenuProps = {\n attribs: ProjectTableAttribute[]\n columns?: ColumnDef<TableRow>[]\n headerLabels: HeaderLabel[]\n onOpenNew?: (type: 'folder' | 'task') => void\n contextMenuItems?: ContextMenuItemConstructors\n}\n\nconst useCellContextMenu = ({\n attribs,\n headerLabels = [],\n onOpenNew,\n contextMenuItems: propsContextMenuItems,\n}: CellContextMenuProps) => {\n const { projectName } = useProjectContext()\n // context hooks\n const {\n showHierarchy,\n getEntityById,\n toggleExpandAll,\n toggleExpands,\n expanded,\n contextMenuItems: contextContextMenuItems = [],\n powerpack,\n onOpenPlayer,\n } = useProjectTableContext()\n\n // Merge context menu items from props and context\n const contextMenuItems = useMemo(\n () => [...contextContextMenuItems, ...(propsContextMenuItems || [])],\n [contextContextMenuItems, propsContextMenuItems],\n )\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const { copyToClipboard, exportCSV, pasteFromClipboard } = useClipboard()\n const { selectedCells, clearSelection, selectCell, focusCell } = useSelectionCellsContext()\n const { inheritFromParent, history, setEditingCellId } = useCellEditing()\n\n // update entity context\n\n // data mutations\n const deleteEntities = useDeleteEntities({})\n\n const [cellContextMenuShow] = useCreateContextMenu([], powerpack)\n\n // Helper function to identify attributes that can be inherited\n const getEntitiesToInherit = (selected: string[]): InheritFromParentEntity[] => {\n return selected.reduce((acc, cellId) => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId || !colId.startsWith('attrib_')) return acc\n\n const entity = getEntityById(rowId)\n if (!entity) return acc\n const entityId = entity.entityId || entity.id\n\n const attribName = colId.replace('attrib_', '')\n // get attrib model\n const attribModel = attribs.find((attrib) => attrib.name === attribName)\n // is the attrib inheritable?\n const isInheritable = attribModel?.data.inherit\n\n // Check if this attribute is owned by the entity (not inherited)\n if (entity.ownAttrib?.includes(attribName) && isInheritable) {\n // Find existing entry or create new one\n const existingIndex = acc.findIndex((item) => item.entityId === entityId)\n\n if (existingIndex >= 0) {\n // Add to existing entity's attribs if not already there\n if (!acc[existingIndex].attribs.includes(attribName)) {\n acc[existingIndex].attribs.push(attribName)\n }\n } else {\n // Create new entity entry\n acc.push({\n rowId: entityId,\n entityId: entityId,\n entityType: 'folderId' in entity ? 'task' : 'folder',\n attribs: [attribName],\n ownAttrib: entity.ownAttrib || [],\n // @ts-ignore\n folderId: entity.parentId ?? entity.folderId,\n })\n }\n }\n\n return acc\n }, [] as InheritFromParentEntity[])\n }\n\n const copyAndPasteItems: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n return [\n {\n label: 'Copy',\n icon: 'content_copy',\n shortcut: getPlatformShortcutKey('c', [KeyMode.Ctrl]),\n command: () => copyToClipboard(meta.selectedCells),\n hidden: cell.isGroup || cell.columnId === 'thumbnail',\n },\n {\n label: `Copy row${meta.selectedFullRows.length > 1 ? 's' : ''}`,\n icon: 'content_copy',\n command: () => copyToClipboard(meta.selectedFullRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !meta.selectedFullRows.some(\n (cellId) => parseCellId(cellId)?.rowId === parseCellId(cell.cellId)?.rowId,\n ),\n },\n {\n label: 'Paste',\n icon: 'content_paste',\n shortcut: getPlatformShortcutKey('v', [KeyMode.Ctrl]),\n command: () => pasteFromClipboard(meta.selectedCells),\n hidden: cell.columnId === 'name' || cell.columnId === 'thumbnail' || cell.isGroup,\n disabled: cell.attribField?.readOnly,\n },\n ]\n }\n\n const showDetailsItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Show details',\n icon: 'dock_to_left',\n shortcut: 'Double click',\n command: () => {\n const rowSelectionCellId = getCellId(cell.entityId, ROW_SELECTION_COLUMN_ID)\n // select the row to open the details\n selectCell(rowSelectionCellId, false, false)\n },\n hidden:\n cell.columnId !== 'name' ||\n meta.selectedRows.length > 1 ||\n cell.isGroup ||\n isEntityRestricted(cell.entityType),\n })\n\n const openViewerItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Open in viewer',\n icon: 'play_circle',\n shortcut: 'Spacebar',\n command: () => {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n },\n hidden:\n (cell.columnId !== 'thumbnail' && cell.columnId !== 'name') ||\n cell.isGroup ||\n cell.entityType === 'unknown',\n })\n\n const expandCollapseChildrenItems: ContextMenuItemConstructor = (e, cell, selected, meta) => [\n {\n label: 'Expand children',\n icon: 'expand_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, true),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Collapse children',\n icon: 'collapse_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, false),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Expand',\n icon: 'expand_all',\n command: () => toggleExpands(meta.selectedRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n expanded[cell.entityId as keyof typeof expanded],\n },\n {\n label: 'Collapse',\n icon: 'collapse_all',\n command: () => toggleExpands(meta.selectedRows, false),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n !expanded[cell.entityId as keyof typeof expanded],\n },\n ]\n\n const deleteItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Delete',\n icon: 'delete',\n danger: true,\n command: () => deleteEntities(meta.selectedRows),\n hidden: cell.columnId !== 'name' || cell.isGroup,\n })\n\n const inheritItem: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n const entitiesToInherit = getEntitiesToInherit(meta.selectedCells)\n const canInheritFromParent =\n entitiesToInherit.length > 0 &&\n showHierarchy &&\n !(meta.selectedRows.length > 1 && meta.selectedColumns.length > 1)\n\n return {\n label: 'Inherit from parent',\n icon: 'disabled_by_default',\n command: () => inheritFromParent(entitiesToInherit),\n hidden: !canInheritFromParent,\n }\n }\n\n const exportItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Export selection',\n icon: 'download',\n command: () => exportCSV(Array.from(selectedCells), projectName),\n hidden: cell.isGroup,\n })\n\n const createFolderItems: ContextMenuItemConstructor = (e, cell) => [\n {\n label: 'Create folder',\n icon: 'create_new_folder',\n command: () => onOpenNew?.('folder'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n {\n label: 'Create root folder',\n icon: 'create_new_folder',\n command: () => {\n clearSelection()\n onOpenNew?.('folder')\n },\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n ]\n\n const createTaskItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Create task',\n icon: 'add_task',\n command: () => onOpenNew?.('task'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n })\n\n const renameItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Rename',\n icon: 'titlecase',\n shortcut: 'R',\n command: () => {\n const nameCellId = getCellId(cell.entityId, 'name')\n setEditingCellId(nameCellId)\n },\n hidden:\n cell.columnId !== 'name' ||\n cell.isGroup ||\n (cell.entityType !== 'folder' && cell.entityType !== 'task'),\n disabled: !(canWriteNamePermission || canWriteLabelPermission),\n })\n\n const builtInMenuItems: Record<DefaultMenuItem, ContextMenuItemConstructor> = {\n ['copy-paste']: copyAndPasteItems,\n ['show-details']: showDetailsItem,\n ['rename']: renameItem,\n ['expand-collapse']: expandCollapseChildrenItems,\n ['delete']: deleteItem,\n ['inherit']: inheritItem,\n ['export']: exportItem,\n ['create-folder']: createFolderItems,\n ['create-task']: createTaskItem,\n ['open-viewer']: openViewerItem,\n }\n\n const getCellData = (cellId: string): TableCellContextData | undefined => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId) return undefined\n const cellEntityData = getEntityById(rowId)\n const attribField = attribs.find((attrib) => attrib.name === colId?.replace('attrib_', ''))\n const column = headerLabels.find((header) => header.id === colId)\n const parentId = cellEntityData\n ? 'parentId' in cellEntityData\n ? cellEntityData.parentId\n : 'folderId' in cellEntityData\n ? cellEntityData.folderId\n : undefined\n : undefined\n return {\n cellId: cellId,\n columnId: colId,\n entityId: cellEntityData?.entityId || cellEntityData?.id || rowId,\n entityType: cellEntityData?.entityType,\n parentId: parentId,\n attribField: attribField,\n isGroup: rowId.startsWith(GROUP_BY_ID),\n column: {\n id: colId,\n label: column?.label || '',\n },\n data: cellEntityData,\n }\n }\n\n const handleTableBodyContextMenu = (e: ContextEvent) => {\n const target = e.target as HTMLElement\n const tdEl = target.closest('td')\n // get id of first child of td\n const cellId = tdEl?.firstElementChild?.id\n\n if (!cellId) return\n\n const cellData = getCellData(cellId)\n\n if (!cellData) return\n\n let currentSelectedCells = Array.from(selectedCells)\n // if selecting a cell outside of the current selection\n if (!currentSelectedCells.includes(cellId) || !currentSelectedCells.length) {\n currentSelectedCells = [cellId]\n // update selection\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // selected cells without row selection cells\n const selectedRealCells = currentSelectedCells.filter(\n (id) => parseCellId(id)?.colId !== ROW_SELECTION_COLUMN_ID,\n )\n\n const selectedCellsData = currentSelectedCells.flatMap((cellId) => getCellData(cellId) || [])\n\n // Remove duplicates based on entityId - prioritize full row selection over individual cells\n const filteredSelectedCellsData = [\n ...new Map(selectedCellsData.map((e) => [e.entityId, e])).values(),\n ]\n\n const selectedCellRows: string[] = []\n const selectedCellColumns: string[] = []\n const selectedCellFullRows: string[] = []\n const selectedCellsGroups: string[] = [] // find cells that are group headers\n for (const { entityId, columnId } of filteredSelectedCellsData) {\n if (entityId && !selectedCellRows.includes(entityId)) selectedCellRows.push(entityId)\n if (columnId && !selectedCellColumns.includes(columnId)) selectedCellColumns.push(columnId)\n if (columnId === ROW_SELECTION_COLUMN_ID && !selectedCellFullRows.includes(entityId))\n selectedCellFullRows.push(entityId)\n if (entityId.startsWith(GROUP_BY_ID)) selectedCellsGroups.push(entityId)\n }\n\n const constructedMenuItems = contextMenuItems.flatMap((constructor) =>\n typeof constructor === 'function'\n ? constructor(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n {\n history,\n },\n )\n : builtInMenuItems[constructor]?.(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n { history },\n ),\n )\n\n cellContextMenuShow(e, constructedMenuItems)\n }\n\n return { handleTableBodyContextMenu }\n}\n\nexport default useCellContextMenu\n"],"names":["useCellContextMenu","attribs","headerLabels","onOpenNew","propsContextMenuItems","projectName","useProjectContext","showHierarchy","getEntityById","toggleExpandAll","toggleExpands","expanded","contextContextMenuItems","powerpack","onOpenPlayer","useProjectTableContext","contextMenuItems","useMemo","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","copyToClipboard","exportCSV","pasteFromClipboard","useClipboard","selectedCells","clearSelection","selectCell","focusCell","useSelectionCellsContext","inheritFromParent","history","setEditingCellId","useCellEditing","deleteEntities","useDeleteEntities","cellContextMenuShow","useCreateContextMenu","getEntitiesToInherit","selected","acc","cellId","rowId","colId","parseCellId","entity","entityId","attribName","isInheritable","attrib","existingIndex","item","builtInMenuItems","e","cell","meta","getPlatformShortcutKey","KeyMode","rowSelectionCellId","getCellId","ROW_SELECTION_COLUMN_ID","isEntityRestricted","nameCellId","entitiesToInherit","canInheritFromParent","targetIds","getEntityViewierIds","getCellData","cellEntityData","attribField","column","header","parentId","GROUP_BY_ID","cellData","currentSelectedCells","selectedRealCells","id","selectedCellsData","filteredSelectedCellsData","selectedCellRows","selectedCellColumns","selectedCellFullRows","selectedCellsGroups","columnId","constructedMenuItems","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"useCellContextMenu.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCellContextMenu.ts"],"sourcesContent":["import { ContextMenuItemType, useCreateContextMenu } from '../../ContextMenu/useCreateContextMenu'\nimport useDeleteEntities from './useDeleteEntities'\nimport { getPlatformShortcutKey, KeyMode } from '../../../util/platform'\nimport { getCellId, parseCellId } from '../utils/cellUtils'\nimport { useClipboard } from '../context/ClipboardContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useCellEditing } from '../context/CellEditingContext'\nimport { InheritFromParentEntity } from './useUpdateTableData'\nimport { ProjectTableAttribute, TableRow } from '../types'\nimport { UseHistoryReturn } from './useHistory'\nimport { GROUP_BY_ID } from './useBuildGroupByTableData'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { EntityMap, getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { useMemo } from 'react'\nimport { useProjectContext } from '@shared/context'\n\ntype ContextEvent = React.MouseEvent<HTMLTableSectionElement, MouseEvent>\n\nexport type HeaderLabel = { id: string; label: string }\n\nexport type TableCellContextData = {\n cellId: string\n columnId: string\n entityId: string\n entityType: 'folder' | 'task' | 'product' | 'version' | 'unknown' | undefined\n parentId?: string\n attribField: ProjectTableAttribute | undefined // the attribute field if any (fps, custom attribs, etc.)\n column: {\n id: string\n label: string\n }\n isGroup: boolean // if the cell is a group header\n data?: EntityMap | undefined\n}\ntype DefaultMenuItem =\n | 'copy-paste'\n | 'show-details'\n | 'rename'\n | 'expand-collapse'\n | 'inherit'\n | 'delete'\n | 'export'\n | 'create-folder'\n | 'create-task'\n | 'open-viewer'\nexport type ContextMenuItemConstructor = (\n e: ContextEvent,\n cell: TableCellContextData,\n selectedCells: TableCellContextData[],\n meta: {\n selectedCells: string[] // minus row selection cells\n selectedRows: string[]\n selectedColumns: string[]\n selectedFullRows: string[] // if the full row is selected\n selectedGroups: string[] // groups if any\n },\n context: {\n history: UseHistoryReturn\n },\n) => ContextMenuItemType | ContextMenuItemType[] | undefined\nexport type ContextMenuItemConstructors = (DefaultMenuItem | ContextMenuItemConstructor)[]\n\ntype CellContextMenuProps = {\n attribs: ProjectTableAttribute[]\n columns?: ColumnDef<TableRow>[]\n headerLabels: HeaderLabel[]\n onOpenNew?: (type: 'folder' | 'task') => void\n contextMenuItems?: ContextMenuItemConstructors\n}\n\nconst useCellContextMenu = ({\n attribs,\n headerLabels = [],\n onOpenNew,\n contextMenuItems: propsContextMenuItems,\n}: CellContextMenuProps) => {\n const { projectName } = useProjectContext()\n // context hooks\n const {\n showHierarchy,\n getEntityById,\n toggleExpandAll,\n toggleExpands,\n expanded,\n contextMenuItems: contextContextMenuItems = [],\n powerpack,\n onOpenPlayer,\n } = useProjectTableContext()\n\n // Merge context menu items from props and context\n const contextMenuItems = useMemo(\n () => [...contextContextMenuItems, ...(propsContextMenuItems || [])],\n [contextContextMenuItems, propsContextMenuItems],\n )\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const { copyToClipboard, exportCSV, pasteFromClipboard } = useClipboard()\n const { selectedCells, clearSelection, selectCell, focusCell } = useSelectionCellsContext()\n const { inheritFromParent, history, setEditingCellId } = useCellEditing()\n\n // update entity context\n\n // data mutations\n const deleteEntities = useDeleteEntities({})\n\n const [cellContextMenuShow] = useCreateContextMenu([], powerpack)\n\n // Helper function to identify attributes that can be inherited\n const getEntitiesToInherit = (selected: string[]): InheritFromParentEntity[] => {\n return selected.reduce((acc, cellId) => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId || !colId.startsWith('attrib_')) return acc\n\n const entity = getEntityById(rowId)\n if (!entity) return acc\n const entityId = entity.entityId || entity.id\n\n const attribName = colId.replace('attrib_', '')\n // get attrib model\n const attribModel = attribs.find((attrib) => attrib.name === attribName)\n // is the attrib inheritable?\n const isInheritable = attribModel?.data.inherit\n\n // Check if this attribute is owned by the entity (not inherited)\n if (entity.ownAttrib?.includes(attribName) && isInheritable) {\n // Find existing entry or create new one\n const existingIndex = acc.findIndex((item) => item.entityId === entityId)\n\n if (existingIndex >= 0) {\n // Add to existing entity's attribs if not already there\n if (!acc[existingIndex].attribs.includes(attribName)) {\n acc[existingIndex].attribs.push(attribName)\n }\n } else {\n // Create new entity entry\n acc.push({\n rowId: entityId,\n entityId: entityId,\n entityType: 'folderId' in entity ? 'task' : 'folder',\n attribs: [attribName],\n ownAttrib: entity.ownAttrib || [],\n // @ts-ignore\n folderId: entity.parentId ?? entity.folderId,\n })\n }\n }\n\n return acc\n }, [] as InheritFromParentEntity[])\n }\n\n const copyAndPasteItems: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n return [\n {\n label: 'Copy',\n icon: 'content_copy',\n shortcut: getPlatformShortcutKey('c', [KeyMode.Ctrl]),\n command: () => copyToClipboard(meta.selectedCells),\n hidden: cell.isGroup || cell.columnId === 'thumbnail',\n },\n {\n label: `Copy row${meta.selectedFullRows.length > 1 ? 's' : ''}`,\n icon: 'content_copy',\n command: () => copyToClipboard(meta.selectedFullRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !meta.selectedFullRows.some(\n (cellId) => parseCellId(cellId)?.rowId === parseCellId(cell.cellId)?.rowId,\n ),\n },\n {\n label: 'Paste',\n icon: 'content_paste',\n shortcut: getPlatformShortcutKey('v', [KeyMode.Ctrl]),\n command: () => pasteFromClipboard(meta.selectedCells),\n hidden: cell.columnId === 'name' || cell.columnId === 'thumbnail' || cell.isGroup,\n disabled: cell.attribField?.readOnly,\n },\n ]\n }\n\n const showDetailsItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Show details',\n icon: 'dock_to_left',\n shortcut: 'Double click',\n command: () => {\n const rowSelectionCellId = getCellId(cell.entityId, ROW_SELECTION_COLUMN_ID)\n // select the row to open the details\n selectCell(rowSelectionCellId, false, false)\n },\n hidden:\n cell.columnId !== 'name' ||\n meta.selectedRows.length > 1 ||\n cell.isGroup ||\n isEntityRestricted(cell.entityType),\n })\n\n const openViewerItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Open in viewer',\n icon: 'play_circle',\n shortcut: 'Spacebar',\n command: () => {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n },\n hidden:\n (cell.columnId !== 'thumbnail' && cell.columnId !== 'name') ||\n cell.isGroup ||\n cell.entityType === 'unknown',\n })\n\n const expandCollapseChildrenItems: ContextMenuItemConstructor = (e, cell, selected, meta) => [\n {\n label: 'Expand children',\n icon: 'expand_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, true),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Collapse children',\n icon: 'collapse_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, false),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Expand',\n icon: 'expand_all',\n command: () => toggleExpands(meta.selectedRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n expanded[cell.entityId as keyof typeof expanded],\n },\n {\n label: 'Collapse',\n icon: 'collapse_all',\n command: () => toggleExpands(meta.selectedRows, false),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n !expanded[cell.entityId as keyof typeof expanded],\n },\n ]\n\n const deleteItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Delete',\n icon: 'delete',\n danger: true,\n command: () => deleteEntities(meta.selectedRows),\n hidden: cell.columnId !== 'name' || cell.isGroup,\n })\n\n const inheritItem: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n const entitiesToInherit = getEntitiesToInherit(meta.selectedCells)\n const canInheritFromParent =\n entitiesToInherit.length > 0 &&\n showHierarchy &&\n !(meta.selectedRows.length > 1 && meta.selectedColumns.length > 1)\n\n return {\n label: 'Inherit from parent',\n icon: 'disabled_by_default',\n command: () => inheritFromParent(entitiesToInherit),\n hidden: !canInheritFromParent,\n }\n }\n\n const exportItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Export selection',\n icon: 'download',\n command: () => exportCSV(Array.from(selectedCells), projectName),\n hidden: cell.isGroup,\n })\n\n const createFolderItems: ContextMenuItemConstructor = (e, cell) => [\n {\n label: 'Create folder',\n icon: 'create_new_folder',\n command: () => onOpenNew?.('folder'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n {\n label: 'Create root folder',\n icon: 'create_new_folder',\n command: () => {\n clearSelection()\n onOpenNew?.('folder')\n },\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n ]\n\n const createTaskItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Create task',\n icon: 'add_task',\n command: () => onOpenNew?.('task'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n })\n\n const renameItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Rename',\n icon: 'titlecase',\n shortcut: 'R',\n command: () => {\n const nameCellId = getCellId(cell.entityId, 'name')\n setEditingCellId(nameCellId)\n },\n hidden:\n cell.columnId !== 'name' ||\n cell.isGroup ||\n (cell.entityType !== 'folder' && cell.entityType !== 'task'),\n disabled: !(canWriteNamePermission || canWriteLabelPermission),\n })\n\n const builtInMenuItems: Record<DefaultMenuItem, ContextMenuItemConstructor> = {\n ['copy-paste']: copyAndPasteItems,\n ['show-details']: showDetailsItem,\n ['rename']: renameItem,\n ['expand-collapse']: expandCollapseChildrenItems,\n ['delete']: deleteItem,\n ['inherit']: inheritItem,\n ['export']: exportItem,\n ['create-folder']: createFolderItems,\n ['create-task']: createTaskItem,\n ['open-viewer']: openViewerItem,\n }\n\n const getCellData = (cellId: string): TableCellContextData | undefined => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId) return undefined\n const cellEntityData = getEntityById(rowId)\n const attribField = attribs.find((attrib) => attrib.name === colId?.replace('attrib_', ''))\n const column = headerLabels.find((header) => header.id === colId)\n const parentId = cellEntityData\n ? 'parentId' in cellEntityData\n ? cellEntityData.parentId\n : 'folderId' in cellEntityData\n ? cellEntityData.folderId\n : undefined\n : undefined\n return {\n cellId: cellId,\n columnId: colId,\n entityId: cellEntityData?.entityId || cellEntityData?.id || rowId,\n entityType: cellEntityData?.entityType,\n parentId: parentId,\n attribField: attribField,\n isGroup: rowId.startsWith(GROUP_BY_ID),\n column: {\n id: colId,\n label: column?.label || '',\n },\n data: cellEntityData,\n }\n }\n\n const handleTableBodyContextMenu = (e: ContextEvent) => {\n const target = e.target as HTMLElement\n const tdEl = target.closest('td')\n // get id of first child of td\n const cellId = tdEl?.firstElementChild?.id\n\n if (!cellId) return\n\n const cellData = getCellData(cellId)\n\n if (!cellData) return\n\n let currentSelectedCells = Array.from(selectedCells)\n // if selecting a cell outside of the current selection\n if (!currentSelectedCells.includes(cellId) || !currentSelectedCells.length) {\n currentSelectedCells = [cellId]\n // update selection\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // selected cells without row selection cells\n const selectedRealCells = currentSelectedCells.filter(\n (id) => parseCellId(id)?.colId !== ROW_SELECTION_COLUMN_ID,\n )\n\n const selectedCellsData = currentSelectedCells.flatMap((cellId) => getCellData(cellId) || [])\n\n // Remove duplicates based on entityId - prioritize full row selection over individual cells\n const filteredSelectedCellsData = [\n ...new Map(selectedCellsData.map((e) => [e.entityId, e])).values(),\n ]\n\n const selectedCellRows: string[] = []\n const selectedCellColumns: string[] = []\n const selectedCellFullRows: string[] = []\n const selectedCellsGroups: string[] = [] // find cells that are group headers\n for (const { entityId, columnId } of filteredSelectedCellsData) {\n if (entityId && !selectedCellRows.includes(entityId)) selectedCellRows.push(entityId)\n if (columnId && !selectedCellColumns.includes(columnId)) selectedCellColumns.push(columnId)\n if (columnId === ROW_SELECTION_COLUMN_ID && !selectedCellFullRows.includes(entityId))\n selectedCellFullRows.push(entityId)\n if (entityId.startsWith(GROUP_BY_ID)) selectedCellsGroups.push(entityId)\n }\n\n const constructedMenuItems = contextMenuItems.flatMap((constructor) =>\n typeof constructor === 'function'\n ? constructor(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n {\n history,\n },\n )\n : builtInMenuItems[constructor]?.(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n { history },\n ),\n )\n\n cellContextMenuShow(e, constructedMenuItems)\n }\n\n return { handleTableBodyContextMenu }\n}\n\nexport default useCellContextMenu\n"],"names":["useCellContextMenu","attribs","headerLabels","onOpenNew","propsContextMenuItems","projectName","useProjectContext","showHierarchy","getEntityById","toggleExpandAll","toggleExpands","expanded","contextContextMenuItems","powerpack","onOpenPlayer","useProjectTableContext","contextMenuItems","useMemo","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","copyToClipboard","exportCSV","pasteFromClipboard","useClipboard","selectedCells","clearSelection","selectCell","focusCell","useSelectionCellsContext","inheritFromParent","history","setEditingCellId","useCellEditing","deleteEntities","useDeleteEntities","cellContextMenuShow","useCreateContextMenu","getEntitiesToInherit","selected","acc","cellId","rowId","colId","parseCellId","entity","entityId","attribName","isInheritable","attrib","existingIndex","item","builtInMenuItems","e","cell","meta","getPlatformShortcutKey","KeyMode","rowSelectionCellId","getCellId","ROW_SELECTION_COLUMN_ID","isEntityRestricted","nameCellId","entitiesToInherit","canInheritFromParent","targetIds","getEntityViewierIds","getCellData","cellEntityData","attribField","column","header","parentId","GROUP_BY_ID","cellData","currentSelectedCells","selectedRealCells","id","selectedCellsData","filteredSelectedCellsData","selectedCellRows","selectedCellColumns","selectedCellFullRows","selectedCellsGroups","columnId","constructedMenuItems","constructor"],"mappings":"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"}
@@ -65,6 +65,7 @@ import "../../../api/generated/operations.es.js";
65
65
  import "../../../api/generated/products.es.js";
66
66
  import "../../../api/generated/projectDashboard.es.js";
67
67
  import "../../../api/generated/projects.es.js";
68
+ import "../../../api/generated/projectFolders.es.js";
68
69
  import "../../../api/generated/reviewables.es.js";
69
70
  import "../../../api/generated/services.es.js";
70
71
  import "../../../api/generated/system.es.js";
@@ -112,6 +113,7 @@ import "../../../api/queries/permissions/getPermissions.es.js";
112
113
  import "../../../api/queries/products/createProduct.es.js";
113
114
  import "../../../api/queries/project/getProject.es.js";
114
115
  import "../../../api/queries/project/updateProject.es.js";
116
+ import "../../../api/queries/projectFolders/projectFolders.es.js";
115
117
  import "../../../api/queries/review/getReview.es.js";
116
118
  import "../../../api/queries/review/updateReview.es.js";
117
119
  import "../../../api/queries/share/share.es.js";
@@ -264,7 +266,7 @@ import "../../../components/Menu/MenuItem.es.js";
264
266
  import "../widgets/EmptyWidget.es.js";
265
267
  import "../widgets/ErrorWidget.es.js";
266
268
  import "../widgets/LoadMoreWidget.es.js";
267
- const ym = ({
269
+ const wm = ({
268
270
  attribs: _,
269
271
  headerLabels: W = [],
270
272
  onOpenNew: d,
@@ -505,6 +507,6 @@ const ym = ({
505
507
  } };
506
508
  };
507
509
  export {
508
- ym as default
510
+ wm as default
509
511
  };
510
512
  //# sourceMappingURL=useCellContextMenu.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCellContextMenu.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCellContextMenu.ts"],"sourcesContent":["import { ContextMenuItemType, useCreateContextMenu } from '../../ContextMenu/useCreateContextMenu'\nimport useDeleteEntities from './useDeleteEntities'\nimport { getPlatformShortcutKey, KeyMode } from '../../../util/platform'\nimport { getCellId, parseCellId } from '../utils/cellUtils'\nimport { useClipboard } from '../context/ClipboardContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useCellEditing } from '../context/CellEditingContext'\nimport { InheritFromParentEntity } from './useUpdateTableData'\nimport { ProjectTableAttribute, TableRow } from '../types'\nimport { UseHistoryReturn } from './useHistory'\nimport { GROUP_BY_ID } from './useBuildGroupByTableData'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { EntityMap, getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { useMemo } from 'react'\nimport { useProjectContext } from '@shared/context'\n\ntype ContextEvent = React.MouseEvent<HTMLTableSectionElement, MouseEvent>\n\nexport type HeaderLabel = { id: string; label: string }\n\nexport type TableCellContextData = {\n cellId: string\n columnId: string\n entityId: string\n entityType: 'folder' | 'task' | 'product' | 'version' | 'unknown' | undefined\n parentId?: string\n attribField: ProjectTableAttribute | undefined // the attribute field if any (fps, custom attribs, etc.)\n column: {\n id: string\n label: string\n }\n isGroup: boolean // if the cell is a group header\n data?: EntityMap | undefined\n}\ntype DefaultMenuItem =\n | 'copy-paste'\n | 'show-details'\n | 'rename'\n | 'expand-collapse'\n | 'inherit'\n | 'delete'\n | 'export'\n | 'create-folder'\n | 'create-task'\n | 'open-viewer'\nexport type ContextMenuItemConstructor = (\n e: ContextEvent,\n cell: TableCellContextData,\n selectedCells: TableCellContextData[],\n meta: {\n selectedCells: string[] // minus row selection cells\n selectedRows: string[]\n selectedColumns: string[]\n selectedFullRows: string[] // if the full row is selected\n selectedGroups: string[] // groups if any\n },\n context: {\n history: UseHistoryReturn\n },\n) => ContextMenuItemType | ContextMenuItemType[] | undefined\nexport type ContextMenuItemConstructors = (DefaultMenuItem | ContextMenuItemConstructor)[]\n\ntype CellContextMenuProps = {\n attribs: ProjectTableAttribute[]\n columns?: ColumnDef<TableRow>[]\n headerLabels: HeaderLabel[]\n onOpenNew?: (type: 'folder' | 'task') => void\n contextMenuItems?: ContextMenuItemConstructors\n}\n\nconst useCellContextMenu = ({\n attribs,\n headerLabels = [],\n onOpenNew,\n contextMenuItems: propsContextMenuItems,\n}: CellContextMenuProps) => {\n const { projectName } = useProjectContext()\n // context hooks\n const {\n showHierarchy,\n getEntityById,\n toggleExpandAll,\n toggleExpands,\n expanded,\n contextMenuItems: contextContextMenuItems = [],\n powerpack,\n onOpenPlayer,\n } = useProjectTableContext()\n\n // Merge context menu items from props and context\n const contextMenuItems = useMemo(\n () => [...contextContextMenuItems, ...(propsContextMenuItems || [])],\n [contextContextMenuItems, propsContextMenuItems],\n )\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const { copyToClipboard, exportCSV, pasteFromClipboard } = useClipboard()\n const { selectedCells, clearSelection, selectCell, focusCell } = useSelectionCellsContext()\n const { inheritFromParent, history, setEditingCellId } = useCellEditing()\n\n // update entity context\n\n // data mutations\n const deleteEntities = useDeleteEntities({})\n\n const [cellContextMenuShow] = useCreateContextMenu([], powerpack)\n\n // Helper function to identify attributes that can be inherited\n const getEntitiesToInherit = (selected: string[]): InheritFromParentEntity[] => {\n return selected.reduce((acc, cellId) => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId || !colId.startsWith('attrib_')) return acc\n\n const entity = getEntityById(rowId)\n if (!entity) return acc\n const entityId = entity.entityId || entity.id\n\n const attribName = colId.replace('attrib_', '')\n // get attrib model\n const attribModel = attribs.find((attrib) => attrib.name === attribName)\n // is the attrib inheritable?\n const isInheritable = attribModel?.data.inherit\n\n // Check if this attribute is owned by the entity (not inherited)\n if (entity.ownAttrib?.includes(attribName) && isInheritable) {\n // Find existing entry or create new one\n const existingIndex = acc.findIndex((item) => item.entityId === entityId)\n\n if (existingIndex >= 0) {\n // Add to existing entity's attribs if not already there\n if (!acc[existingIndex].attribs.includes(attribName)) {\n acc[existingIndex].attribs.push(attribName)\n }\n } else {\n // Create new entity entry\n acc.push({\n rowId: entityId,\n entityId: entityId,\n entityType: 'folderId' in entity ? 'task' : 'folder',\n attribs: [attribName],\n ownAttrib: entity.ownAttrib || [],\n // @ts-ignore\n folderId: entity.parentId ?? entity.folderId,\n })\n }\n }\n\n return acc\n }, [] as InheritFromParentEntity[])\n }\n\n const copyAndPasteItems: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n return [\n {\n label: 'Copy',\n icon: 'content_copy',\n shortcut: getPlatformShortcutKey('c', [KeyMode.Ctrl]),\n command: () => copyToClipboard(meta.selectedCells),\n hidden: cell.isGroup || cell.columnId === 'thumbnail',\n },\n {\n label: `Copy row${meta.selectedFullRows.length > 1 ? 's' : ''}`,\n icon: 'content_copy',\n command: () => copyToClipboard(meta.selectedFullRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !meta.selectedFullRows.some(\n (cellId) => parseCellId(cellId)?.rowId === parseCellId(cell.cellId)?.rowId,\n ),\n },\n {\n label: 'Paste',\n icon: 'content_paste',\n shortcut: getPlatformShortcutKey('v', [KeyMode.Ctrl]),\n command: () => pasteFromClipboard(meta.selectedCells),\n hidden: cell.columnId === 'name' || cell.columnId === 'thumbnail' || cell.isGroup,\n disabled: cell.attribField?.readOnly,\n },\n ]\n }\n\n const showDetailsItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Show details',\n icon: 'dock_to_left',\n shortcut: 'Double click',\n command: () => {\n const rowSelectionCellId = getCellId(cell.entityId, ROW_SELECTION_COLUMN_ID)\n // select the row to open the details\n selectCell(rowSelectionCellId, false, false)\n },\n hidden:\n cell.columnId !== 'name' ||\n meta.selectedRows.length > 1 ||\n cell.isGroup ||\n isEntityRestricted(cell.entityType),\n })\n\n const openViewerItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Open in viewer',\n icon: 'play_circle',\n shortcut: 'Spacebar',\n command: () => {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n },\n hidden:\n (cell.columnId !== 'thumbnail' && cell.columnId !== 'name') ||\n cell.isGroup ||\n cell.entityType === 'unknown',\n })\n\n const expandCollapseChildrenItems: ContextMenuItemConstructor = (e, cell, selected, meta) => [\n {\n label: 'Expand children',\n icon: 'expand_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, true),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Collapse children',\n icon: 'collapse_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, false),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Expand',\n icon: 'expand_all',\n command: () => toggleExpands(meta.selectedRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n expanded[cell.entityId as keyof typeof expanded],\n },\n {\n label: 'Collapse',\n icon: 'collapse_all',\n command: () => toggleExpands(meta.selectedRows, false),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n !expanded[cell.entityId as keyof typeof expanded],\n },\n ]\n\n const deleteItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Delete',\n icon: 'delete',\n danger: true,\n command: () => deleteEntities(meta.selectedRows),\n hidden: cell.columnId !== 'name' || cell.isGroup,\n })\n\n const inheritItem: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n const entitiesToInherit = getEntitiesToInherit(meta.selectedCells)\n const canInheritFromParent =\n entitiesToInherit.length > 0 &&\n showHierarchy &&\n !(meta.selectedRows.length > 1 && meta.selectedColumns.length > 1)\n\n return {\n label: 'Inherit from parent',\n icon: 'disabled_by_default',\n command: () => inheritFromParent(entitiesToInherit),\n hidden: !canInheritFromParent,\n }\n }\n\n const exportItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Export selection',\n icon: 'download',\n command: () => exportCSV(Array.from(selectedCells), projectName),\n hidden: cell.isGroup,\n })\n\n const createFolderItems: ContextMenuItemConstructor = (e, cell) => [\n {\n label: 'Create folder',\n icon: 'create_new_folder',\n command: () => onOpenNew?.('folder'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n {\n label: 'Create root folder',\n icon: 'create_new_folder',\n command: () => {\n clearSelection()\n onOpenNew?.('folder')\n },\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n ]\n\n const createTaskItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Create task',\n icon: 'add_task',\n command: () => onOpenNew?.('task'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n })\n\n const renameItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Rename',\n icon: 'titlecase',\n shortcut: 'R',\n command: () => {\n const nameCellId = getCellId(cell.entityId, 'name')\n setEditingCellId(nameCellId)\n },\n hidden:\n cell.columnId !== 'name' ||\n cell.isGroup ||\n (cell.entityType !== 'folder' && cell.entityType !== 'task'),\n disabled: !(canWriteNamePermission || canWriteLabelPermission),\n })\n\n const builtInMenuItems: Record<DefaultMenuItem, ContextMenuItemConstructor> = {\n ['copy-paste']: copyAndPasteItems,\n ['show-details']: showDetailsItem,\n ['rename']: renameItem,\n ['expand-collapse']: expandCollapseChildrenItems,\n ['delete']: deleteItem,\n ['inherit']: inheritItem,\n ['export']: exportItem,\n ['create-folder']: createFolderItems,\n ['create-task']: createTaskItem,\n ['open-viewer']: openViewerItem,\n }\n\n const getCellData = (cellId: string): TableCellContextData | undefined => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId) return undefined\n const cellEntityData = getEntityById(rowId)\n const attribField = attribs.find((attrib) => attrib.name === colId?.replace('attrib_', ''))\n const column = headerLabels.find((header) => header.id === colId)\n const parentId = cellEntityData\n ? 'parentId' in cellEntityData\n ? cellEntityData.parentId\n : 'folderId' in cellEntityData\n ? cellEntityData.folderId\n : undefined\n : undefined\n return {\n cellId: cellId,\n columnId: colId,\n entityId: cellEntityData?.entityId || cellEntityData?.id || rowId,\n entityType: cellEntityData?.entityType,\n parentId: parentId,\n attribField: attribField,\n isGroup: rowId.startsWith(GROUP_BY_ID),\n column: {\n id: colId,\n label: column?.label || '',\n },\n data: cellEntityData,\n }\n }\n\n const handleTableBodyContextMenu = (e: ContextEvent) => {\n const target = e.target as HTMLElement\n const tdEl = target.closest('td')\n // get id of first child of td\n const cellId = tdEl?.firstElementChild?.id\n\n if (!cellId) return\n\n const cellData = getCellData(cellId)\n\n if (!cellData) return\n\n let currentSelectedCells = Array.from(selectedCells)\n // if selecting a cell outside of the current selection\n if (!currentSelectedCells.includes(cellId) || !currentSelectedCells.length) {\n currentSelectedCells = [cellId]\n // update selection\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // selected cells without row selection cells\n const selectedRealCells = currentSelectedCells.filter(\n (id) => parseCellId(id)?.colId !== ROW_SELECTION_COLUMN_ID,\n )\n\n const selectedCellsData = currentSelectedCells.flatMap((cellId) => getCellData(cellId) || [])\n\n // Remove duplicates based on entityId - prioritize full row selection over individual cells\n const filteredSelectedCellsData = [\n ...new Map(selectedCellsData.map((e) => [e.entityId, e])).values(),\n ]\n\n const selectedCellRows: string[] = []\n const selectedCellColumns: string[] = []\n const selectedCellFullRows: string[] = []\n const selectedCellsGroups: string[] = [] // find cells that are group headers\n for (const { entityId, columnId } of filteredSelectedCellsData) {\n if (entityId && !selectedCellRows.includes(entityId)) selectedCellRows.push(entityId)\n if (columnId && !selectedCellColumns.includes(columnId)) selectedCellColumns.push(columnId)\n if (columnId === ROW_SELECTION_COLUMN_ID && !selectedCellFullRows.includes(entityId))\n selectedCellFullRows.push(entityId)\n if (entityId.startsWith(GROUP_BY_ID)) selectedCellsGroups.push(entityId)\n }\n\n const constructedMenuItems = contextMenuItems.flatMap((constructor) =>\n typeof constructor === 'function'\n ? constructor(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n {\n history,\n },\n )\n : builtInMenuItems[constructor]?.(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n { history },\n ),\n )\n\n cellContextMenuShow(e, constructedMenuItems)\n }\n\n return { handleTableBodyContextMenu }\n}\n\nexport default useCellContextMenu\n"],"names":["useCellContextMenu","attribs","headerLabels","onOpenNew","propsContextMenuItems","projectName","useProjectContext","showHierarchy","getEntityById","toggleExpandAll","toggleExpands","expanded","contextContextMenuItems","powerpack","onOpenPlayer","useProjectTableContext","contextMenuItems","useMemo","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","copyToClipboard","exportCSV","pasteFromClipboard","useClipboard","selectedCells","clearSelection","selectCell","focusCell","useSelectionCellsContext","inheritFromParent","history","setEditingCellId","useCellEditing","deleteEntities","useDeleteEntities","cellContextMenuShow","useCreateContextMenu","getEntitiesToInherit","selected","acc","cellId","rowId","colId","parseCellId","entity","entityId","attribName","isInheritable","attrib","existingIndex","item","builtInMenuItems","e","cell","meta","getPlatformShortcutKey","KeyMode","rowSelectionCellId","getCellId","ROW_SELECTION_COLUMN_ID","isEntityRestricted","nameCellId","entitiesToInherit","canInheritFromParent","targetIds","getEntityViewierIds","getCellData","cellEntityData","attribField","column","header","parentId","GROUP_BY_ID","cellData","currentSelectedCells","selectedRealCells","id","selectedCellsData","filteredSelectedCellsData","selectedCellRows","selectedCellColumns","selectedCellFullRows","selectedCellsGroups","columnId","constructedMenuItems","constructor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,MAAMA,KAAqB,CAAC;AAAA,EAC1B,SAAAC;AAAA,EACA,cAAAC,IAAe,CAAA;AAAA,EACf,WAAAC;AAAA,EACA,kBAAkBC;AACpB,MAA4B;AAC1B,QAAM,EAAE,aAAAC,EAAA,IAAgBC,GAAA,GAElB;AAAA,IACJ,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,kBAAkBC,IAA0B,CAAA;AAAA,IAC5C,WAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,GAAA,GAGEC,IAAmBC;AAAA,IACvB,MAAM,CAAC,GAAGL,GAAyB,GAAIR,KAAyB,CAAA,CAAG;AAAA,IACnE,CAACQ,GAAyBR,CAAqB;AAAA,EAAA,GAE3C,EAAE,yBAAAc,GAAyB,wBAAAC,EAAA,IAA2BC,GAAA,GACtD,EAAE,iBAAAC,GAAiB,WAAAC,GAAW,oBAAAC,EAAA,IAAuBC,GAAA,GACrD,EAAE,eAAAC,GAAe,gBAAAC,GAAgB,YAAAC,GAAY,WAAAC,EAAA,IAAcC,GAAA,GAC3D,EAAE,mBAAAC,GAAmB,SAAAC,GAAS,kBAAAC,EAAA,IAAqBC,GAAA,GAKnDC,IAAiBC,GAAkB,EAAE,GAErC,CAACC,CAAmB,IAAIC,EAAqB,CAAA,GAAIxB,CAAS,GAG1DyB,IAAuB,CAACC,MACrBA,EAAS,OAAO,CAACC,GAAKC,MAAW;AACtC,UAAM,EAAE,OAAAC,GAAO,OAAAC,EAAA,IAAUC,EAAYH,CAAM,KAAK,CAAA;AAChD,QAAI,CAACC,KAAS,CAACC,KAAS,CAACA,EAAM,WAAW,SAAS,EAAG,QAAOH;AAE7D,UAAMK,IAASrC,EAAckC,CAAK;AAClC,QAAI,CAACG,EAAQ,QAAOL;AACpB,UAAMM,IAAWD,EAAO,YAAYA,EAAO,IAErCE,IAAaJ,EAAM,QAAQ,WAAW,EAAE,GAIxCK,IAFc/C,EAAQ,KAAK,CAACgD,MAAWA,EAAO,SAASF,CAAU,GAEpC,KAAK;AAGxC,QAAIF,EAAO,WAAW,SAASE,CAAU,KAAKC,GAAe;AAE3D,YAAME,IAAgBV,EAAI,UAAU,CAACW,MAASA,EAAK,aAAaL,CAAQ;AAExE,MAAII,KAAiB,IAEdV,EAAIU,CAAa,EAAE,QAAQ,SAASH,CAAU,KACjDP,EAAIU,CAAa,EAAE,QAAQ,KAAKH,CAAU,IAI5CP,EAAI,KAAK;AAAA,QACP,OAAOM;AAAA,QACP,UAAAA;AAAA,QACA,YAAY,cAAcD,IAAS,SAAS;AAAA,QAC5C,SAAS,CAACE,CAAU;AAAA,QACpB,WAAWF,EAAO,aAAa,CAAA;AAAA;AAAA,QAE/B,UAAUA,EAAO,YAAYA,EAAO;AAAA,MAAA,CACrC;AAAA,IAEL;AAEA,WAAOL;AAAA,EACT,GAAG,CAAA,CAA+B,GA6K9BY,IAAwE;AAAA,IAC3E,cA3KmD,CAACC,GAAGC,GAAMf,GAAUgB,MACjE;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAUC,EAAuB,KAAK,CAACC,EAAQ,IAAI,CAAC;AAAA,QACpD,SAAS,MAAMpC,EAAgBkC,EAAK,aAAa;AAAA,QACjD,QAAQD,EAAK,WAAWA,EAAK,aAAa;AAAA,MAAA;AAAA,MAE5C;AAAA,QACE,OAAO,WAAWC,EAAK,iBAAiB,SAAS,IAAI,MAAM,EAAE;AAAA,QAC7D,MAAM;AAAA,QACN,SAAS,MAAMlC,EAAgBkC,EAAK,kBAAkB,EAAI;AAAA,QAC1D,QACED,EAAK,aAAa,UAClB,CAACC,EAAK,iBAAiB;AAAA,UACrB,CAACd,MAAWG,EAAYH,CAAM,GAAG,UAAUG,EAAYU,EAAK,MAAM,GAAG;AAAA,QAAA;AAAA,MACvE;AAAA,MAEJ;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAUE,EAAuB,KAAK,CAACC,EAAQ,IAAI,CAAC;AAAA,QACpD,SAAS,MAAMlC,EAAmBgC,EAAK,aAAa;AAAA,QACpD,QAAQD,EAAK,aAAa,UAAUA,EAAK,aAAa,eAAeA,EAAK;AAAA,QAC1E,UAAUA,EAAK,aAAa;AAAA,MAAA;AAAA,IAC9B;AAAA,IAkJD,gBA9IiD,CAACD,GAAGC,GAAMf,GAAUgB,OAAU;AAAA,MAChF,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM;AACb,cAAMG,IAAqBC,EAAUL,EAAK,UAAUM,CAAuB;AAE3E,QAAAjC,EAAW+B,GAAoB,IAAO,EAAK;AAAA,MAC7C;AAAA,MACA,QACEJ,EAAK,aAAa,UAClBC,EAAK,aAAa,SAAS,KAC3BD,EAAK,WACLO,GAAmBP,EAAK,UAAU;AAAA,IAAA;AAAA,IAkInC,QAlB4C,CAACD,GAAGC,OAAU;AAAA,MAC3D,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM;AACb,cAAMQ,IAAaH,EAAUL,EAAK,UAAU,MAAM;AAClD,QAAAtB,EAAiB8B,CAAU;AAAA,MAC7B;AAAA,MACA,QACER,EAAK,aAAa,UAClBA,EAAK,WACJA,EAAK,eAAe,YAAYA,EAAK,eAAe;AAAA,MACvD,UAAU,EAAEnC,KAA0BD;AAAA,IAAA;AAAA,IAOrC,mBA7G6D,CAACmC,GAAGC,GAAMf,GAAUgB,MAAS;AAAA,MAC3F;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAUC,EAAuB,SAAS,CAACC,EAAQ,GAAG,CAAC;AAAA,QACvD,SAAS,MAAMhD,EAAgB8C,EAAK,cAAc,EAAI;AAAA,QACtD,QAAQD,EAAK,aAAa,UAAUA,EAAK,eAAe;AAAA,MAAA;AAAA,MAE1D;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAUE,EAAuB,SAAS,CAACC,EAAQ,GAAG,CAAC;AAAA,QACvD,SAAS,MAAMhD,EAAgB8C,EAAK,cAAc,EAAK;AAAA,QACvD,QAAQD,EAAK,aAAa,UAAUA,EAAK,eAAe;AAAA,MAAA;AAAA,MAE1D;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,MAAM5C,EAAc6C,EAAK,cAAc,EAAI;AAAA,QACpD,QACED,EAAK,aAAa,UAClB,CAACA,EAAK,WACN3C,EAAS2C,EAAK,QAAiC;AAAA,MAAA;AAAA,MAEnD;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,MAAM5C,EAAc6C,EAAK,cAAc,EAAK;AAAA,QACrD,QACED,EAAK,aAAa,UAClB,CAACA,EAAK,WACN,CAAC3C,EAAS2C,EAAK,QAAiC;AAAA,MAAA;AAAA,IACpD;AAAA,IA8EC,QA3E4C,CAACD,GAAGC,GAAMf,GAAUgB,OAAU;AAAA,MAC3E,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,MAAMrB,EAAeqB,EAAK,YAAY;AAAA,MAC/C,QAAQD,EAAK,aAAa,UAAUA,EAAK;AAAA,IAAA;AAAA,IAuExC,SApE6C,CAACD,GAAGC,GAAMf,GAAUgB,MAAS;AAC3E,YAAMQ,IAAoBzB,EAAqBiB,EAAK,aAAa,GAC3DS,IACJD,EAAkB,SAAS,KAC3BxD,KACA,EAAEgD,EAAK,aAAa,SAAS,KAAKA,EAAK,gBAAgB,SAAS;AAElE,aAAO;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,MAAMzB,EAAkBiC,CAAiB;AAAA,QAClD,QAAQ,CAACC;AAAA,MAAA;AAAA,IAEb;AAAA,IAwDG,QAtD4C,CAACX,GAAGC,OAAU;AAAA,MAC3D,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAMhC,EAAU,MAAM,KAAKG,CAAa,GAAGpB,CAAW;AAAA,MAC/D,QAAQiD,EAAK;AAAA,IAAA;AAAA,IAmDZ,iBAhDmD,CAACD,GAAGC,MAAS;AAAA,MACjE;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,MAAMnD,IAAY,QAAQ;AAAA,QACnC,QAAQmD,EAAK,aAAa,UAAU,CAAC/C,KAAiB,CAACJ;AAAA,MAAA;AAAA,MAEzD;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,MAAM;AACb,UAAAuB,EAAA,GACAvB,IAAY,QAAQ;AAAA,QACtB;AAAA,QACA,QAAQmD,EAAK,aAAa,UAAU,CAAC/C,KAAiB,CAACJ;AAAA,MAAA;AAAA,IACzD;AAAA,IAkCC,eA/BgD,CAACkD,GAAGC,OAAU;AAAA,MAC/D,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAMnD,IAAY,MAAM;AAAA,MACjC,QAAQmD,EAAK,aAAa,UAAU,CAAC/C,KAAiB,CAACJ;AAAA,IAAA;AAAA,IA4BtD,eAtIgD,CAACkD,GAAGC,GAAMf,GAAUgB,OAAU;AAAA,MAC/E,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM;AACb,YAAIzC,GAAc;AAChB,gBAAM+B,IAASrC,EAAc8C,EAAK,QAAQ;AAC1C,cAAIT,GAAQ;AACV,kBAAMoB,IAAYC,GAAoBrB,CAAM;AAC5C,YAAA/B,EAAamD,GAAW,EAAE,WAAW,GAAA,CAAM;AAAA,UAC7C;AAAA,QACF;AAAA,MACF;AAAA,MACA,QACGX,EAAK,aAAa,eAAeA,EAAK,aAAa,UACpDA,EAAK,WACLA,EAAK,eAAe;AAAA,IAAA;AAAA,EAsHL,GAGba,IAAc,CAAC1B,MAAqD;AACxE,UAAM,EAAE,OAAAC,GAAO,OAAAC,EAAA,IAAUC,EAAYH,CAAM,KAAK,CAAA;AAChD,QAAI,CAACC,KAAS,CAACC,EAAO;AACtB,UAAMyB,IAAiB5D,EAAckC,CAAK,GACpC2B,IAAcpE,EAAQ,KAAK,CAACgD,MAAWA,EAAO,SAASN,GAAO,QAAQ,WAAW,EAAE,CAAC,GACpF2B,IAASpE,EAAa,KAAK,CAACqE,MAAWA,EAAO,OAAO5B,CAAK,GAC1D6B,IAAWJ,IACb,cAAcA,IACZA,EAAe,WACf,cAAcA,IACdA,EAAe,WACf,SACF;AACJ,WAAO;AAAA,MACL,QAAA3B;AAAA,MACA,UAAUE;AAAA,MACV,UAAUyB,GAAgB,YAAYA,GAAgB,MAAM1B;AAAA,MAC5D,YAAY0B,GAAgB;AAAA,MAC5B,UAAAI;AAAA,MACA,aAAAH;AAAA,MACA,SAAS3B,EAAM,WAAW+B,CAAW;AAAA,MACrC,QAAQ;AAAA,QACN,IAAI9B;AAAA,QACJ,OAAO2B,GAAQ,SAAS;AAAA,MAAA;AAAA,MAE1B,MAAMF;AAAA,IAAA;AAAA,EAEV;AAiFA,SAAO,EAAE,4BA/E0B,CAACf,MAAoB;AAItD,UAAMZ,IAHSY,EAAE,OACG,QAAQ,IAAI,GAEX,mBAAmB;AAExC,QAAI,CAACZ,EAAQ;AAEb,UAAMiC,IAAWP,EAAY1B,CAAM;AAEnC,QAAI,CAACiC,EAAU;AAEf,QAAIC,IAAuB,MAAM,KAAKlD,CAAa;AAEnD,KAAI,CAACkD,EAAqB,SAASlC,CAAM,KAAK,CAACkC,EAAqB,YAClEA,IAAuB,CAAClC,CAAM,GAE9Bd,EAAWc,GAAQ,IAAO,EAAK,GAC/Bb,EAAUa,CAAM;AAGlB,UAAMmC,IAAoBD,EAAqB;AAAA,MAC7C,CAACE,MAAOjC,EAAYiC,CAAE,GAAG,UAAUjB;AAAA,IAAA,GAG/BkB,IAAoBH,EAAqB,QAAQ,CAAClC,MAAW0B,EAAY1B,CAAM,KAAK,EAAE,GAGtFsC,IAA4B;AAAA,MAChC,GAAG,IAAI,IAAID,EAAkB,IAAI,CAACzB,MAAM,CAACA,EAAE,UAAUA,CAAC,CAAC,CAAC,EAAE,OAAA;AAAA,IAAO,GAG7D2B,IAA6B,CAAA,GAC7BC,IAAgC,CAAA,GAChCC,IAAiC,CAAA,GACjCC,IAAgC,CAAA;AACtC,eAAW,EAAE,UAAArC,GAAU,UAAAsC,EAAA,KAAcL;AACnC,MAAIjC,KAAY,CAACkC,EAAiB,SAASlC,CAAQ,KAAGkC,EAAiB,KAAKlC,CAAQ,GAChFsC,KAAY,CAACH,EAAoB,SAASG,CAAQ,KAAGH,EAAoB,KAAKG,CAAQ,GACtFA,MAAaxB,KAA2B,CAACsB,EAAqB,SAASpC,CAAQ,KACjFoC,EAAqB,KAAKpC,CAAQ,GAChCA,EAAS,WAAW2B,CAAW,KAAGU,EAAoB,KAAKrC,CAAQ;AAGzE,UAAMuC,IAAuBrE,EAAiB;AAAA,MAAQ,CAACsE,MACrD,OAAOA,KAAgB,aACnBA;AAAA,QACEjC;AAAA,QACAqB;AAAA,QACAK;AAAA,QACA;AAAA,UACE,eAAeH;AAAA;AAAA,UACf,cAAcI;AAAA,UACd,iBAAiBC;AAAA,UACjB,kBAAkBC;AAAA,UAClB,gBAAgBC;AAAA;AAAA,QAAA;AAAA,QAElB;AAAA,UACE,SAAApD;AAAA,QAAA;AAAA,MACF,IAEFqB,EAAiBkC,CAAW;AAAA,QAC1BjC;AAAA,QACAqB;AAAA,QACAK;AAAA,QACA;AAAA,UACE,eAAeH;AAAA;AAAA,UACf,cAAcI;AAAA,UACd,iBAAiBC;AAAA,UACjB,kBAAkBC;AAAA,UAClB,gBAAgBC;AAAA;AAAA,QAAA;AAAA,QAElB,EAAE,SAAApD,EAAA;AAAA,MAAQ;AAAA,IACZ;AAGN,IAAAK,EAAoBiB,GAAGgC,CAAoB;AAAA,EAC7C,EAES;AACX;"}
1
+ {"version":3,"file":"useCellContextMenu.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCellContextMenu.ts"],"sourcesContent":["import { ContextMenuItemType, useCreateContextMenu } from '../../ContextMenu/useCreateContextMenu'\nimport useDeleteEntities from './useDeleteEntities'\nimport { getPlatformShortcutKey, KeyMode } from '../../../util/platform'\nimport { getCellId, parseCellId } from '../utils/cellUtils'\nimport { useClipboard } from '../context/ClipboardContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { useProjectDataContext } from '../context/ProjectDataContext'\nimport { useCellEditing } from '../context/CellEditingContext'\nimport { InheritFromParentEntity } from './useUpdateTableData'\nimport { ProjectTableAttribute, TableRow } from '../types'\nimport { UseHistoryReturn } from './useHistory'\nimport { GROUP_BY_ID } from './useBuildGroupByTableData'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { EntityMap, getEntityViewierIds } from '../utils'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { useMemo } from 'react'\nimport { useProjectContext } from '@shared/context'\n\ntype ContextEvent = React.MouseEvent<HTMLTableSectionElement, MouseEvent>\n\nexport type HeaderLabel = { id: string; label: string }\n\nexport type TableCellContextData = {\n cellId: string\n columnId: string\n entityId: string\n entityType: 'folder' | 'task' | 'product' | 'version' | 'unknown' | undefined\n parentId?: string\n attribField: ProjectTableAttribute | undefined // the attribute field if any (fps, custom attribs, etc.)\n column: {\n id: string\n label: string\n }\n isGroup: boolean // if the cell is a group header\n data?: EntityMap | undefined\n}\ntype DefaultMenuItem =\n | 'copy-paste'\n | 'show-details'\n | 'rename'\n | 'expand-collapse'\n | 'inherit'\n | 'delete'\n | 'export'\n | 'create-folder'\n | 'create-task'\n | 'open-viewer'\nexport type ContextMenuItemConstructor = (\n e: ContextEvent,\n cell: TableCellContextData,\n selectedCells: TableCellContextData[],\n meta: {\n selectedCells: string[] // minus row selection cells\n selectedRows: string[]\n selectedColumns: string[]\n selectedFullRows: string[] // if the full row is selected\n selectedGroups: string[] // groups if any\n },\n context: {\n history: UseHistoryReturn\n },\n) => ContextMenuItemType | ContextMenuItemType[] | undefined\nexport type ContextMenuItemConstructors = (DefaultMenuItem | ContextMenuItemConstructor)[]\n\ntype CellContextMenuProps = {\n attribs: ProjectTableAttribute[]\n columns?: ColumnDef<TableRow>[]\n headerLabels: HeaderLabel[]\n onOpenNew?: (type: 'folder' | 'task') => void\n contextMenuItems?: ContextMenuItemConstructors\n}\n\nconst useCellContextMenu = ({\n attribs,\n headerLabels = [],\n onOpenNew,\n contextMenuItems: propsContextMenuItems,\n}: CellContextMenuProps) => {\n const { projectName } = useProjectContext()\n // context hooks\n const {\n showHierarchy,\n getEntityById,\n toggleExpandAll,\n toggleExpands,\n expanded,\n contextMenuItems: contextContextMenuItems = [],\n powerpack,\n onOpenPlayer,\n } = useProjectTableContext()\n\n // Merge context menu items from props and context\n const contextMenuItems = useMemo(\n () => [...contextContextMenuItems, ...(propsContextMenuItems || [])],\n [contextContextMenuItems, propsContextMenuItems],\n )\n const { canWriteLabelPermission, canWriteNamePermission } = useProjectDataContext()\n const { copyToClipboard, exportCSV, pasteFromClipboard } = useClipboard()\n const { selectedCells, clearSelection, selectCell, focusCell } = useSelectionCellsContext()\n const { inheritFromParent, history, setEditingCellId } = useCellEditing()\n\n // update entity context\n\n // data mutations\n const deleteEntities = useDeleteEntities({})\n\n const [cellContextMenuShow] = useCreateContextMenu([], powerpack)\n\n // Helper function to identify attributes that can be inherited\n const getEntitiesToInherit = (selected: string[]): InheritFromParentEntity[] => {\n return selected.reduce((acc, cellId) => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId || !colId.startsWith('attrib_')) return acc\n\n const entity = getEntityById(rowId)\n if (!entity) return acc\n const entityId = entity.entityId || entity.id\n\n const attribName = colId.replace('attrib_', '')\n // get attrib model\n const attribModel = attribs.find((attrib) => attrib.name === attribName)\n // is the attrib inheritable?\n const isInheritable = attribModel?.data.inherit\n\n // Check if this attribute is owned by the entity (not inherited)\n if (entity.ownAttrib?.includes(attribName) && isInheritable) {\n // Find existing entry or create new one\n const existingIndex = acc.findIndex((item) => item.entityId === entityId)\n\n if (existingIndex >= 0) {\n // Add to existing entity's attribs if not already there\n if (!acc[existingIndex].attribs.includes(attribName)) {\n acc[existingIndex].attribs.push(attribName)\n }\n } else {\n // Create new entity entry\n acc.push({\n rowId: entityId,\n entityId: entityId,\n entityType: 'folderId' in entity ? 'task' : 'folder',\n attribs: [attribName],\n ownAttrib: entity.ownAttrib || [],\n // @ts-ignore\n folderId: entity.parentId ?? entity.folderId,\n })\n }\n }\n\n return acc\n }, [] as InheritFromParentEntity[])\n }\n\n const copyAndPasteItems: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n return [\n {\n label: 'Copy',\n icon: 'content_copy',\n shortcut: getPlatformShortcutKey('c', [KeyMode.Ctrl]),\n command: () => copyToClipboard(meta.selectedCells),\n hidden: cell.isGroup || cell.columnId === 'thumbnail',\n },\n {\n label: `Copy row${meta.selectedFullRows.length > 1 ? 's' : ''}`,\n icon: 'content_copy',\n command: () => copyToClipboard(meta.selectedFullRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !meta.selectedFullRows.some(\n (cellId) => parseCellId(cellId)?.rowId === parseCellId(cell.cellId)?.rowId,\n ),\n },\n {\n label: 'Paste',\n icon: 'content_paste',\n shortcut: getPlatformShortcutKey('v', [KeyMode.Ctrl]),\n command: () => pasteFromClipboard(meta.selectedCells),\n hidden: cell.columnId === 'name' || cell.columnId === 'thumbnail' || cell.isGroup,\n disabled: cell.attribField?.readOnly,\n },\n ]\n }\n\n const showDetailsItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Show details',\n icon: 'dock_to_left',\n shortcut: 'Double click',\n command: () => {\n const rowSelectionCellId = getCellId(cell.entityId, ROW_SELECTION_COLUMN_ID)\n // select the row to open the details\n selectCell(rowSelectionCellId, false, false)\n },\n hidden:\n cell.columnId !== 'name' ||\n meta.selectedRows.length > 1 ||\n cell.isGroup ||\n isEntityRestricted(cell.entityType),\n })\n\n const openViewerItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Open in viewer',\n icon: 'play_circle',\n shortcut: 'Spacebar',\n command: () => {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n },\n hidden:\n (cell.columnId !== 'thumbnail' && cell.columnId !== 'name') ||\n cell.isGroup ||\n cell.entityType === 'unknown',\n })\n\n const expandCollapseChildrenItems: ContextMenuItemConstructor = (e, cell, selected, meta) => [\n {\n label: 'Expand children',\n icon: 'expand_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, true),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Collapse children',\n icon: 'collapse_all',\n shortcut: getPlatformShortcutKey('click', [KeyMode.Alt]),\n command: () => toggleExpandAll(meta.selectedRows, false),\n hidden: cell.columnId !== 'name' || cell.entityType !== 'folder',\n },\n {\n label: 'Expand',\n icon: 'expand_all',\n command: () => toggleExpands(meta.selectedRows, true),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n expanded[cell.entityId as keyof typeof expanded],\n },\n {\n label: 'Collapse',\n icon: 'collapse_all',\n command: () => toggleExpands(meta.selectedRows, false),\n hidden:\n cell.columnId !== 'name' ||\n !cell.isGroup ||\n !expanded[cell.entityId as keyof typeof expanded],\n },\n ]\n\n const deleteItem: ContextMenuItemConstructor = (e, cell, selected, meta) => ({\n label: 'Delete',\n icon: 'delete',\n danger: true,\n command: () => deleteEntities(meta.selectedRows),\n hidden: cell.columnId !== 'name' || cell.isGroup,\n })\n\n const inheritItem: ContextMenuItemConstructor = (e, cell, selected, meta) => {\n const entitiesToInherit = getEntitiesToInherit(meta.selectedCells)\n const canInheritFromParent =\n entitiesToInherit.length > 0 &&\n showHierarchy &&\n !(meta.selectedRows.length > 1 && meta.selectedColumns.length > 1)\n\n return {\n label: 'Inherit from parent',\n icon: 'disabled_by_default',\n command: () => inheritFromParent(entitiesToInherit),\n hidden: !canInheritFromParent,\n }\n }\n\n const exportItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Export selection',\n icon: 'download',\n command: () => exportCSV(Array.from(selectedCells), projectName),\n hidden: cell.isGroup,\n })\n\n const createFolderItems: ContextMenuItemConstructor = (e, cell) => [\n {\n label: 'Create folder',\n icon: 'create_new_folder',\n command: () => onOpenNew?.('folder'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n {\n label: 'Create root folder',\n icon: 'create_new_folder',\n command: () => {\n clearSelection()\n onOpenNew?.('folder')\n },\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n },\n ]\n\n const createTaskItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Create task',\n icon: 'add_task',\n command: () => onOpenNew?.('task'),\n hidden: cell.columnId !== 'name' || !showHierarchy || !onOpenNew,\n })\n\n const renameItem: ContextMenuItemConstructor = (e, cell) => ({\n label: 'Rename',\n icon: 'titlecase',\n shortcut: 'R',\n command: () => {\n const nameCellId = getCellId(cell.entityId, 'name')\n setEditingCellId(nameCellId)\n },\n hidden:\n cell.columnId !== 'name' ||\n cell.isGroup ||\n (cell.entityType !== 'folder' && cell.entityType !== 'task'),\n disabled: !(canWriteNamePermission || canWriteLabelPermission),\n })\n\n const builtInMenuItems: Record<DefaultMenuItem, ContextMenuItemConstructor> = {\n ['copy-paste']: copyAndPasteItems,\n ['show-details']: showDetailsItem,\n ['rename']: renameItem,\n ['expand-collapse']: expandCollapseChildrenItems,\n ['delete']: deleteItem,\n ['inherit']: inheritItem,\n ['export']: exportItem,\n ['create-folder']: createFolderItems,\n ['create-task']: createTaskItem,\n ['open-viewer']: openViewerItem,\n }\n\n const getCellData = (cellId: string): TableCellContextData | undefined => {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || !colId) return undefined\n const cellEntityData = getEntityById(rowId)\n const attribField = attribs.find((attrib) => attrib.name === colId?.replace('attrib_', ''))\n const column = headerLabels.find((header) => header.id === colId)\n const parentId = cellEntityData\n ? 'parentId' in cellEntityData\n ? cellEntityData.parentId\n : 'folderId' in cellEntityData\n ? cellEntityData.folderId\n : undefined\n : undefined\n return {\n cellId: cellId,\n columnId: colId,\n entityId: cellEntityData?.entityId || cellEntityData?.id || rowId,\n entityType: cellEntityData?.entityType,\n parentId: parentId,\n attribField: attribField,\n isGroup: rowId.startsWith(GROUP_BY_ID),\n column: {\n id: colId,\n label: column?.label || '',\n },\n data: cellEntityData,\n }\n }\n\n const handleTableBodyContextMenu = (e: ContextEvent) => {\n const target = e.target as HTMLElement\n const tdEl = target.closest('td')\n // get id of first child of td\n const cellId = tdEl?.firstElementChild?.id\n\n if (!cellId) return\n\n const cellData = getCellData(cellId)\n\n if (!cellData) return\n\n let currentSelectedCells = Array.from(selectedCells)\n // if selecting a cell outside of the current selection\n if (!currentSelectedCells.includes(cellId) || !currentSelectedCells.length) {\n currentSelectedCells = [cellId]\n // update selection\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // selected cells without row selection cells\n const selectedRealCells = currentSelectedCells.filter(\n (id) => parseCellId(id)?.colId !== ROW_SELECTION_COLUMN_ID,\n )\n\n const selectedCellsData = currentSelectedCells.flatMap((cellId) => getCellData(cellId) || [])\n\n // Remove duplicates based on entityId - prioritize full row selection over individual cells\n const filteredSelectedCellsData = [\n ...new Map(selectedCellsData.map((e) => [e.entityId, e])).values(),\n ]\n\n const selectedCellRows: string[] = []\n const selectedCellColumns: string[] = []\n const selectedCellFullRows: string[] = []\n const selectedCellsGroups: string[] = [] // find cells that are group headers\n for (const { entityId, columnId } of filteredSelectedCellsData) {\n if (entityId && !selectedCellRows.includes(entityId)) selectedCellRows.push(entityId)\n if (columnId && !selectedCellColumns.includes(columnId)) selectedCellColumns.push(columnId)\n if (columnId === ROW_SELECTION_COLUMN_ID && !selectedCellFullRows.includes(entityId))\n selectedCellFullRows.push(entityId)\n if (entityId.startsWith(GROUP_BY_ID)) selectedCellsGroups.push(entityId)\n }\n\n const constructedMenuItems = contextMenuItems.flatMap((constructor) =>\n typeof constructor === 'function'\n ? constructor(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n {\n history,\n },\n )\n : builtInMenuItems[constructor]?.(\n e,\n cellData,\n filteredSelectedCellsData,\n {\n selectedCells: selectedRealCells, // selected cells without row selection\n selectedRows: selectedCellRows,\n selectedColumns: selectedCellColumns,\n selectedFullRows: selectedCellFullRows,\n selectedGroups: selectedCellsGroups, // groups if any\n },\n { history },\n ),\n )\n\n cellContextMenuShow(e, constructedMenuItems)\n }\n\n return { handleTableBodyContextMenu }\n}\n\nexport default useCellContextMenu\n"],"names":["useCellContextMenu","attribs","headerLabels","onOpenNew","propsContextMenuItems","projectName","useProjectContext","showHierarchy","getEntityById","toggleExpandAll","toggleExpands","expanded","contextContextMenuItems","powerpack","onOpenPlayer","useProjectTableContext","contextMenuItems","useMemo","canWriteLabelPermission","canWriteNamePermission","useProjectDataContext","copyToClipboard","exportCSV","pasteFromClipboard","useClipboard","selectedCells","clearSelection","selectCell","focusCell","useSelectionCellsContext","inheritFromParent","history","setEditingCellId","useCellEditing","deleteEntities","useDeleteEntities","cellContextMenuShow","useCreateContextMenu","getEntitiesToInherit","selected","acc","cellId","rowId","colId","parseCellId","entity","entityId","attribName","isInheritable","attrib","existingIndex","item","builtInMenuItems","e","cell","meta","getPlatformShortcutKey","KeyMode","rowSelectionCellId","getCellId","ROW_SELECTION_COLUMN_ID","isEntityRestricted","nameCellId","entitiesToInherit","canInheritFromParent","targetIds","getEntityViewierIds","getCellData","cellEntityData","attribField","column","header","parentId","GROUP_BY_ID","cellData","currentSelectedCells","selectedRealCells","id","selectedCellsData","filteredSelectedCellsData","selectedCellRows","selectedCellColumns","selectedCellFullRows","selectedCellsGroups","columnId","constructedMenuItems","constructor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react");require("@ynput/ayon-react-components");require("short-uuid");const f=require("../utils/cellUtils.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/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("clsx");require("lodash");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.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("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/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/updateTasks.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("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../context/CellEditingContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");const a=require("../context/ProjectTableContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.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/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/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("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/FeedbackContext.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("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.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/SortingSetting/SortingSetting.styled.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("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const d=({selectedCells:u,setSelectedCells:t,focusedCellId:n,setFocusedCellId:o})=>{const{getEntityById:c,isLoading:s}=a.useProjectTableContext(),r=q.useRef(!0);q.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[]),q.useEffect(()=>{if(s)return;if(r.current){const e=setTimeout(()=>{r.current=!1},2e3);return()=>clearTimeout(e)}const i=new Set;for(const e of u)c(f.parseCellId(e||"")?.rowId||"")||i.add(e);if(i.size>0){const e=new Set(u);for(const l of i)e.delete(l);t(e),i.has(n||"")&&o(null)}},[c,u,n,t,o,s])};exports.useCheckSelectedCellsVisible=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react");require("@ynput/ayon-react-components");require("short-uuid");const f=require("../utils/cellUtils.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/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("clsx");require("lodash");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.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("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/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/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/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/updateTasks.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("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../context/CellEditingContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");const a=require("../context/ProjectTableContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.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/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/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("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/FeedbackContext.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("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.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/SortingSetting/SortingSetting.styled.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("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const d=({selectedCells:u,setSelectedCells:t,focusedCellId:n,setFocusedCellId:o})=>{const{getEntityById:c,isLoading:s}=a.useProjectTableContext(),r=q.useRef(!0);q.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[]),q.useEffect(()=>{if(s)return;if(r.current){const e=setTimeout(()=>{r.current=!1},2e3);return()=>clearTimeout(e)}const i=new Set;for(const e of u)c(f.parseCellId(e||"")?.rowId||"")||i.add(e);if(i.size>0){const e=new Set(u);for(const l of i)e.delete(l);t(e),i.has(n||"")&&o(null)}},[c,u,n,t,o,s])};exports.useCheckSelectedCellsVisible=d;
2
2
  //# sourceMappingURL=useCheckSelectedCellsVisible.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckSelectedCellsVisible.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect, useRef } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById, isLoading } = useProjectTableContext()\n const isMountedRef = useRef(true)\n\n // Initialize the mounted ref on mount\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n }\n }, [])\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n if (isLoading) return\n\n // Skip running on initial mount (within 2 seconds)\n if (isMountedRef.current) {\n const timeoutId = setTimeout(() => {\n isMountedRef.current = false\n }, 2000)\n return () => clearTimeout(timeoutId)\n }\n\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId, isLoading])\n}\n"],"names":["useCheckSelectedCellsVisible","selectedCells","setSelectedCells","focusedCellId","setFocusedCellId","getEntityById","isLoading","useProjectTableContext","isMountedRef","useRef","useEffect","timeoutId","missingCells","cellId","parseCellId","newSelection"],"mappings":"2odAeO,MAAMA,EAA+B,CAAC,CAC3C,cAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,IAA4C,CAC1C,KAAM,CAAE,cAAAC,EAAe,UAAAC,CAAA,EAAcC,yBAAA,EAC/BC,EAAeC,EAAAA,OAAO,EAAI,EAGhCC,EAAAA,UAAU,KACRF,EAAa,QAAU,GAChB,IAAM,CACXA,EAAa,QAAU,EACzB,GACC,CAAA,CAAE,EAILE,EAAAA,UAAU,IAAM,CACd,GAAIJ,EAAW,OAGf,GAAIE,EAAa,QAAS,CACxB,MAAMG,EAAY,WAAW,IAAM,CACjCH,EAAa,QAAU,EACzB,EAAG,GAAI,EACP,MAAO,IAAM,aAAaG,CAAS,CACrC,CAEA,MAAMC,MAAmB,IACzB,UAAWC,KAAUZ,EAEdI,EAAcS,cAAYD,GAAU,EAAE,GAAG,OAAS,EAAE,GACvDD,EAAa,IAAIC,CAAM,EAI3B,GAAID,EAAa,KAAO,EAAG,CAEzB,MAAMG,EAAe,IAAI,IAAYd,CAAa,EAClD,UAAWY,KAAUD,EACnBG,EAAa,OAAOF,CAAM,EAG5BX,EAAiBa,CAAY,EAGzBH,EAAa,IAAIT,GAAiB,EAAE,GACtCC,EAAiB,IAAI,CAEzB,CACF,EAAG,CAACC,EAAeJ,EAAeE,EAAeD,EAAkBE,EAAkBE,CAAS,CAAC,CACjG"}
1
+ {"version":3,"file":"useCheckSelectedCellsVisible.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect, useRef } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById, isLoading } = useProjectTableContext()\n const isMountedRef = useRef(true)\n\n // Initialize the mounted ref on mount\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n }\n }, [])\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n if (isLoading) return\n\n // Skip running on initial mount (within 2 seconds)\n if (isMountedRef.current) {\n const timeoutId = setTimeout(() => {\n isMountedRef.current = false\n }, 2000)\n return () => clearTimeout(timeoutId)\n }\n\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId, isLoading])\n}\n"],"names":["useCheckSelectedCellsVisible","selectedCells","setSelectedCells","focusedCellId","setFocusedCellId","getEntityById","isLoading","useProjectTableContext","isMountedRef","useRef","useEffect","timeoutId","missingCells","cellId","parseCellId","newSelection"],"mappings":"wwdAeO,MAAMA,EAA+B,CAAC,CAC3C,cAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,IAA4C,CAC1C,KAAM,CAAE,cAAAC,EAAe,UAAAC,CAAA,EAAcC,yBAAA,EAC/BC,EAAeC,EAAAA,OAAO,EAAI,EAGhCC,EAAAA,UAAU,KACRF,EAAa,QAAU,GAChB,IAAM,CACXA,EAAa,QAAU,EACzB,GACC,CAAA,CAAE,EAILE,EAAAA,UAAU,IAAM,CACd,GAAIJ,EAAW,OAGf,GAAIE,EAAa,QAAS,CACxB,MAAMG,EAAY,WAAW,IAAM,CACjCH,EAAa,QAAU,EACzB,EAAG,GAAI,EACP,MAAO,IAAM,aAAaG,CAAS,CACrC,CAEA,MAAMC,MAAmB,IACzB,UAAWC,KAAUZ,EAEdI,EAAcS,cAAYD,GAAU,EAAE,GAAG,OAAS,EAAE,GACvDD,EAAa,IAAIC,CAAM,EAI3B,GAAID,EAAa,KAAO,EAAG,CAEzB,MAAMG,EAAe,IAAI,IAAYd,CAAa,EAClD,UAAWY,KAAUD,EACnBG,EAAa,OAAOF,CAAM,EAG5BX,EAAiBa,CAAY,EAGzBH,EAAa,IAAIT,GAAiB,EAAE,GACtCC,EAAiB,IAAI,CAEzB,CACF,EAAG,CAACC,EAAeJ,EAAeE,EAAeD,EAAkBE,EAAkBE,CAAS,CAAC,CACjG"}
@@ -55,6 +55,7 @@ import "../../../api/generated/operations.es.js";
55
55
  import "../../../api/generated/products.es.js";
56
56
  import "../../../api/generated/projectDashboard.es.js";
57
57
  import "../../../api/generated/projects.es.js";
58
+ import "../../../api/generated/projectFolders.es.js";
58
59
  import "../../../api/generated/reviewables.es.js";
59
60
  import "../../../api/generated/services.es.js";
60
61
  import "../../../api/generated/system.es.js";
@@ -102,6 +103,7 @@ import "../../../api/queries/permissions/getPermissions.es.js";
102
103
  import "../../../api/queries/products/createProduct.es.js";
103
104
  import "../../../api/queries/project/getProject.es.js";
104
105
  import "../../../api/queries/project/updateProject.es.js";
106
+ import "../../../api/queries/projectFolders/projectFolders.es.js";
105
107
  import "../../../api/queries/review/getReview.es.js";
106
108
  import "../../../api/queries/review/updateReview.es.js";
107
109
  import "../../../api/queries/share/share.es.js";
@@ -258,7 +260,7 @@ import "../../../components/Menu/MenuItem.es.js";
258
260
  import "../widgets/EmptyWidget.es.js";
259
261
  import "../widgets/ErrorWidget.es.js";
260
262
  import "../widgets/LoadMoreWidget.es.js";
261
- const pm = ({
263
+ const nm = ({
262
264
  selectedCells: i,
263
265
  setSelectedCells: m,
264
266
  focusedCellId: p,
@@ -287,6 +289,6 @@ const pm = ({
287
289
  }, [n, i, p, m, e, f]);
288
290
  };
289
291
  export {
290
- pm as useCheckSelectedCellsVisible
292
+ nm as useCheckSelectedCellsVisible
291
293
  };
292
294
  //# sourceMappingURL=useCheckSelectedCellsVisible.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckSelectedCellsVisible.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect, useRef } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById, isLoading } = useProjectTableContext()\n const isMountedRef = useRef(true)\n\n // Initialize the mounted ref on mount\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n }\n }, [])\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n if (isLoading) return\n\n // Skip running on initial mount (within 2 seconds)\n if (isMountedRef.current) {\n const timeoutId = setTimeout(() => {\n isMountedRef.current = false\n }, 2000)\n return () => clearTimeout(timeoutId)\n }\n\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId, isLoading])\n}\n"],"names":["useCheckSelectedCellsVisible","selectedCells","setSelectedCells","focusedCellId","setFocusedCellId","getEntityById","isLoading","useProjectTableContext","isMountedRef","useRef","useEffect","timeoutId","missingCells","cellId","parseCellId","newSelection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAA+B,CAAC;AAAA,EAC3C,eAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,kBAAAC;AACF,MAA4C;AAC1C,QAAM,EAAE,eAAAC,GAAe,WAAAC,EAAA,IAAcC,EAAA,GAC/BC,IAAeC,EAAO,EAAI;AAGhC,EAAAC,EAAU,OACRF,EAAa,UAAU,IAChB,MAAM;AACX,IAAAA,EAAa,UAAU;AAAA,EACzB,IACC,CAAA,CAAE,GAILE,EAAU,MAAM;AACd,QAAIJ,EAAW;AAGf,QAAIE,EAAa,SAAS;AACxB,YAAMG,IAAY,WAAW,MAAM;AACjC,QAAAH,EAAa,UAAU;AAAA,MACzB,GAAG,GAAI;AACP,aAAO,MAAM,aAAaG,CAAS;AAAA,IACrC;AAEA,UAAMC,wBAAmB,IAAA;AACzB,eAAWC,KAAUZ;AAEnB,MAAKI,EAAcS,EAAYD,KAAU,EAAE,GAAG,SAAS,EAAE,KACvDD,EAAa,IAAIC,CAAM;AAI3B,QAAID,EAAa,OAAO,GAAG;AAEzB,YAAMG,IAAe,IAAI,IAAYd,CAAa;AAClD,iBAAWY,KAAUD;AACnB,QAAAG,EAAa,OAAOF,CAAM;AAG5B,MAAAX,EAAiBa,CAAY,GAGzBH,EAAa,IAAIT,KAAiB,EAAE,KACtCC,EAAiB,IAAI;AAAA,IAEzB;AAAA,EACF,GAAG,CAACC,GAAeJ,GAAeE,GAAeD,GAAkBE,GAAkBE,CAAS,CAAC;AACjG;"}
1
+ {"version":3,"file":"useCheckSelectedCellsVisible.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.ts"],"sourcesContent":["// This hooks checks the current selection of cells is actually visible in the current viewport of the table\n// If they are not visible, they will be removed from the selection\n// This can happen when the user changes the slicer selection or filters (combined filters changes)\n\nimport { useEffect, useRef } from 'react'\nimport { CellId, parseCellId } from '../utils'\nimport { useProjectTableContext } from '../context'\n\ntype CheckSelectedCellsVisibleProps = {\n selectedCells: Set<CellId>\n setSelectedCells: (cells: Set<CellId>) => void\n focusedCellId: CellId | null\n setFocusedCellId: (cellId: CellId | null) => void\n}\n\nexport const useCheckSelectedCellsVisible = ({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n}: CheckSelectedCellsVisibleProps): void => {\n const { getEntityById, isLoading } = useProjectTableContext()\n const isMountedRef = useRef(true)\n\n // Initialize the mounted ref on mount\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n }\n }, [])\n\n // checks that all of the selected cells are in the tableData\n // if they are not, they will be removed from the selection\n useEffect(() => {\n if (isLoading) return\n\n // Skip running on initial mount (within 2 seconds)\n if (isMountedRef.current) {\n const timeoutId = setTimeout(() => {\n isMountedRef.current = false\n }, 2000)\n return () => clearTimeout(timeoutId)\n }\n\n const missingCells = new Set<CellId>()\n for (const cellId of selectedCells) {\n // check if the cell rowId is in\n if (!getEntityById(parseCellId(cellId || '')?.rowId || '')) {\n missingCells.add(cellId)\n }\n }\n\n if (missingCells.size > 0) {\n // remove the missing cells from the selection\n const newSelection = new Set<CellId>(selectedCells)\n for (const cellId of missingCells) {\n newSelection.delete(cellId)\n }\n\n setSelectedCells(newSelection)\n\n // if the focused cell is one of the missing cells, clear it\n if (missingCells.has(focusedCellId || '')) {\n setFocusedCellId(null)\n }\n }\n }, [getEntityById, selectedCells, focusedCellId, setSelectedCells, setFocusedCellId, isLoading])\n}\n"],"names":["useCheckSelectedCellsVisible","selectedCells","setSelectedCells","focusedCellId","setFocusedCellId","getEntityById","isLoading","useProjectTableContext","isMountedRef","useRef","useEffect","timeoutId","missingCells","cellId","parseCellId","newSelection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAA+B,CAAC;AAAA,EAC3C,eAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,kBAAAC;AACF,MAA4C;AAC1C,QAAM,EAAE,eAAAC,GAAe,WAAAC,EAAA,IAAcC,EAAA,GAC/BC,IAAeC,EAAO,EAAI;AAGhC,EAAAC,EAAU,OACRF,EAAa,UAAU,IAChB,MAAM;AACX,IAAAA,EAAa,UAAU;AAAA,EACzB,IACC,CAAA,CAAE,GAILE,EAAU,MAAM;AACd,QAAIJ,EAAW;AAGf,QAAIE,EAAa,SAAS;AACxB,YAAMG,IAAY,WAAW,MAAM;AACjC,QAAAH,EAAa,UAAU;AAAA,MACzB,GAAG,GAAI;AACP,aAAO,MAAM,aAAaG,CAAS;AAAA,IACrC;AAEA,UAAMC,wBAAmB,IAAA;AACzB,eAAWC,KAAUZ;AAEnB,MAAKI,EAAcS,EAAYD,KAAU,EAAE,GAAG,SAAS,EAAE,KACvDD,EAAa,IAAIC,CAAM;AAI3B,QAAID,EAAa,OAAO,GAAG;AAEzB,YAAMG,IAAe,IAAI,IAAYd,CAAa;AAClD,iBAAWY,KAAUD;AACnB,QAAAG,EAAa,OAAOF,CAAM;AAG5B,MAAAX,EAAiBa,CAAY,GAGzBH,EAAa,IAAIT,KAAiB,EAAE,KACtCC,EAAiB,IAAI;AAAA,IAEzB;AAAA,EACF,GAAG,CAACC,GAAeJ,GAAeE,GAAeD,GAAkBE,GAAkBE,CAAS,CAAC;AACjG;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),R="data-column-dnd-container",A=100,L=({columnPinning:c,columnSizing:d})=>{const r=n.useRef(null),a=n.useRef(null),f=n.useCallback(()=>{const e=c.left||[];let t=24;return e.forEach(i=>{t+=d[i]||150}),t},[c.left,d]),g=n.useCallback(({transform:e,activeNodeRect:t,draggingNodeRect:i,active:C})=>{if(r.current===null||!t||C?.data.current?.type&&C.data.current.type!=="column")return e;let u=a.current;u===null&&(u=(document.querySelector(`[${R}]`)?.getBoundingClientRect().left??0)+f());const o=i?.left??t.left;if(r.current){const s=o+t.width+e.x,l=u+A;if(s>l)return{...e,x:l-o-t.width}}else{const s=o+e.x,l=u-A;if(s<l)return{...e,x:l-o}}return e},[f]),T=n.useCallback(e=>{if(e===null){r.current=null;return}r.current=c.left?.includes(e)||!1},[c.left]),h=n.useCallback(()=>{r.current=null,a.current=null},[]),E=n.useCallback(e=>{a.current=e},[]);return{restrictToSection:g,setDragPinnedState:T,clearDragPinnedState:h,activePinnedState:r,setCachedBoundary:E}};exports.TABLE_CONTAINER_ATTR=R;exports.useColumnDragRestriction=L;
2
+ //# sourceMappingURL=useColumnDragRestriction.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnDragRestriction.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.ts"],"sourcesContent":["import { useCallback, useRef } from 'react'\nimport { type Modifier } from '@dnd-kit/core'\nimport { ColumnPinningState, ColumnSizingState } from '@tanstack/react-table'\n\ninterface UseColumnDragRestrictionProps {\n columnPinning: ColumnPinningState\n columnSizing: ColumnSizingState\n}\n\n// Data attribute used to identify the table container\nexport const TABLE_CONTAINER_ATTR = 'data-column-dnd-container'\n\n// Allow columns to overlap into opposite section for better UX\nconst DRAG_OVERLAP_ALLOWANCE = 100\n\n/**\n * Hook that provides drag restriction logic for column reordering.\n * Prevents dragging columns across pinned/unpinned boundaries.\n */\nexport const useColumnDragRestriction = ({\n columnPinning,\n columnSizing,\n}: UseColumnDragRestrictionProps) => {\n const activePinnedState = useRef<null| boolean>(null as boolean | null)\n\n // Cached boundary position - set at drag start, avoids DOM queries per frame\n const cachedBoundaryRef = useRef<number | null>(null)\n\n // Calculate boundary position (total width of pinned section) - fallback only\n const getPinnedSectionWidth = useCallback(() => {\n const pinnedColumns = columnPinning.left || []\n let width = 24 // Selection column base width\n pinnedColumns.forEach((colId) => {\n width += columnSizing[colId] || 150\n })\n return width\n }, [columnPinning.left, columnSizing])\n\n // Restrict drag to prevent crossing pinned/unpinned boundary\n const restrictToSection: Modifier = useCallback(\n ({ transform, activeNodeRect, draggingNodeRect, active }) => {\n if (activePinnedState.current === null || !activeNodeRect) return transform\n if (active?.data.current?.type && active.data.current.type !== 'column') return transform\n\n // Use cached boundary if available, otherwise calculate (fallback)\n let boundaryX = cachedBoundaryRef.current\n if (boundaryX === null) {\n const container = document.querySelector(`[${TABLE_CONTAINER_ATTR}]`)\n const containerLeft = container?.getBoundingClientRect().left ?? 0\n boundaryX = containerLeft + getPinnedSectionWidth()\n }\n\n const originalLeft = draggingNodeRect?.left ?? activeNodeRect.left\n\n if (activePinnedState.current) {\n // Pinned column can overlap slightly into unpinned section for better UX\n const rightEdge = originalLeft + activeNodeRect.width + transform.x\n const maxAllowedRight = boundaryX + DRAG_OVERLAP_ALLOWANCE\n if (rightEdge > maxAllowedRight) {\n return { ...transform, x: maxAllowedRight - originalLeft - activeNodeRect.width }\n }\n } else {\n // Unpinned column can overlap slightly into pinned section for better UX\n const leftEdge = originalLeft + transform.x\n const minAllowedLeft = boundaryX - DRAG_OVERLAP_ALLOWANCE\n if (leftEdge < minAllowedLeft) {\n return { ...transform, x: minAllowedLeft - originalLeft }\n }\n }\n return transform\n },\n [getPinnedSectionWidth],\n )\n\n // Set pinned state when drag starts\n const setDragPinnedState = useCallback(\n (columnId: string | null) => {\n if (columnId === null) {\n activePinnedState.current = null\n return\n }\n activePinnedState.current = columnPinning.left?.includes(columnId) || false\n },\n [columnPinning.left],\n )\n\n // Clear pinned state and cached boundary\n const clearDragPinnedState = useCallback(() => {\n activePinnedState.current = null\n cachedBoundaryRef.current = null\n }, [])\n\n // Set cached boundary position (called at drag start)\n const setCachedBoundary = useCallback((boundaryX: number) => {\n cachedBoundaryRef.current = boundaryX\n }, [])\n\n return {\n restrictToSection,\n setDragPinnedState,\n clearDragPinnedState,\n activePinnedState,\n setCachedBoundary,\n }\n}\n"],"names":["TABLE_CONTAINER_ATTR","DRAG_OVERLAP_ALLOWANCE","useColumnDragRestriction","columnPinning","columnSizing","activePinnedState","useRef","cachedBoundaryRef","getPinnedSectionWidth","useCallback","pinnedColumns","width","colId","restrictToSection","transform","activeNodeRect","draggingNodeRect","active","boundaryX","originalLeft","rightEdge","maxAllowedRight","leftEdge","minAllowedLeft","setDragPinnedState","columnId","clearDragPinnedState","setCachedBoundary"],"mappings":"yGAUaA,EAAuB,4BAG9BC,EAAyB,IAMlBC,EAA2B,CAAC,CACvC,cAAAC,EACA,aAAAC,CACF,IAAqC,CACnC,MAAMC,EAAoBC,EAAAA,OAAsB,IAAsB,EAGhEC,EAAoBD,EAAAA,OAAsB,IAAI,EAG9CE,EAAwBC,EAAAA,YAAY,IAAM,CAC9C,MAAMC,EAAgBP,EAAc,MAAQ,CAAA,EAC5C,IAAIQ,EAAQ,GACZ,OAAAD,EAAc,QAASE,GAAU,CAC/BD,GAASP,EAAaQ,CAAK,GAAK,GAClC,CAAC,EACMD,CACT,EAAG,CAACR,EAAc,KAAMC,CAAY,CAAC,EAG/BS,EAA8BJ,EAAAA,YAClC,CAAC,CAAE,UAAAK,EAAW,eAAAC,EAAgB,iBAAAC,EAAkB,OAAAC,KAAa,CAE3D,GADIZ,EAAkB,UAAY,MAAQ,CAACU,GACvCE,GAAQ,KAAK,SAAS,MAAQA,EAAO,KAAK,QAAQ,OAAS,SAAU,OAAOH,EAGhF,IAAII,EAAYX,EAAkB,QAC9BW,IAAc,OAGhBA,GAFkB,SAAS,cAAc,IAAIlB,CAAoB,GAAG,GACnC,sBAAA,EAAwB,MAAQ,GACrCQ,EAAA,GAG9B,MAAMW,EAAeH,GAAkB,MAAQD,EAAe,KAE9D,GAAIV,EAAkB,QAAS,CAE7B,MAAMe,EAAYD,EAAeJ,EAAe,MAAQD,EAAU,EAC5DO,EAAkBH,EAAYjB,EACpC,GAAImB,EAAYC,EACd,MAAO,CAAE,GAAGP,EAAW,EAAGO,EAAkBF,EAAeJ,EAAe,KAAA,CAE9E,KAAO,CAEL,MAAMO,EAAWH,EAAeL,EAAU,EACpCS,EAAiBL,EAAYjB,EACnC,GAAIqB,EAAWC,EACb,MAAO,CAAE,GAAGT,EAAW,EAAGS,EAAiBJ,CAAA,CAE/C,CACA,OAAOL,CACT,EACA,CAACN,CAAqB,CAAA,EAIlBgB,EAAqBf,EAAAA,YACxBgB,GAA4B,CAC3B,GAAIA,IAAa,KAAM,CACrBpB,EAAkB,QAAU,KAC5B,MACF,CACAA,EAAkB,QAAUF,EAAc,MAAM,SAASsB,CAAQ,GAAK,EACxE,EACA,CAACtB,EAAc,IAAI,CAAA,EAIfuB,EAAuBjB,EAAAA,YAAY,IAAM,CAC7CJ,EAAkB,QAAU,KAC5BE,EAAkB,QAAU,IAC9B,EAAG,CAAA,CAAE,EAGCoB,EAAoBlB,cAAaS,GAAsB,CAC3DX,EAAkB,QAAUW,CAC9B,EAAG,CAAA,CAAE,EAEL,MAAO,CACL,kBAAAL,EACA,mBAAAW,EACA,qBAAAE,EACA,kBAAArB,EACA,kBAAAsB,CAAA,CAEJ"}
@@ -0,0 +1,56 @@
1
+ import { useRef as A, useCallback as c } from "react";
2
+ const y = "data-column-dnd-container", L = 100, p = ({
3
+ columnPinning: l,
4
+ columnSizing: a
5
+ }) => {
6
+ const n = A(null), s = A(null), f = c(() => {
7
+ const t = l.left || [];
8
+ let e = 24;
9
+ return t.forEach((d) => {
10
+ e += a[d] || 150;
11
+ }), e;
12
+ }, [l.left, a]), g = c(
13
+ ({ transform: t, activeNodeRect: e, draggingNodeRect: d, active: h }) => {
14
+ if (n.current === null || !e || h?.data.current?.type && h.data.current.type !== "column") return t;
15
+ let u = s.current;
16
+ u === null && (u = (document.querySelector(`[${y}]`)?.getBoundingClientRect().left ?? 0) + f());
17
+ const o = d?.left ?? e.left;
18
+ if (n.current) {
19
+ const i = o + e.width + t.x, r = u + L;
20
+ if (i > r)
21
+ return { ...t, x: r - o - e.width };
22
+ } else {
23
+ const i = o + t.x, r = u - L;
24
+ if (i < r)
25
+ return { ...t, x: r - o };
26
+ }
27
+ return t;
28
+ },
29
+ [f]
30
+ ), C = c(
31
+ (t) => {
32
+ if (t === null) {
33
+ n.current = null;
34
+ return;
35
+ }
36
+ n.current = l.left?.includes(t) || !1;
37
+ },
38
+ [l.left]
39
+ ), E = c(() => {
40
+ n.current = null, s.current = null;
41
+ }, []), x = c((t) => {
42
+ s.current = t;
43
+ }, []);
44
+ return {
45
+ restrictToSection: g,
46
+ setDragPinnedState: C,
47
+ clearDragPinnedState: E,
48
+ activePinnedState: n,
49
+ setCachedBoundary: x
50
+ };
51
+ };
52
+ export {
53
+ y as TABLE_CONTAINER_ATTR,
54
+ p as useColumnDragRestriction
55
+ };
56
+ //# sourceMappingURL=useColumnDragRestriction.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnDragRestriction.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.ts"],"sourcesContent":["import { useCallback, useRef } from 'react'\nimport { type Modifier } from '@dnd-kit/core'\nimport { ColumnPinningState, ColumnSizingState } from '@tanstack/react-table'\n\ninterface UseColumnDragRestrictionProps {\n columnPinning: ColumnPinningState\n columnSizing: ColumnSizingState\n}\n\n// Data attribute used to identify the table container\nexport const TABLE_CONTAINER_ATTR = 'data-column-dnd-container'\n\n// Allow columns to overlap into opposite section for better UX\nconst DRAG_OVERLAP_ALLOWANCE = 100\n\n/**\n * Hook that provides drag restriction logic for column reordering.\n * Prevents dragging columns across pinned/unpinned boundaries.\n */\nexport const useColumnDragRestriction = ({\n columnPinning,\n columnSizing,\n}: UseColumnDragRestrictionProps) => {\n const activePinnedState = useRef<null| boolean>(null as boolean | null)\n\n // Cached boundary position - set at drag start, avoids DOM queries per frame\n const cachedBoundaryRef = useRef<number | null>(null)\n\n // Calculate boundary position (total width of pinned section) - fallback only\n const getPinnedSectionWidth = useCallback(() => {\n const pinnedColumns = columnPinning.left || []\n let width = 24 // Selection column base width\n pinnedColumns.forEach((colId) => {\n width += columnSizing[colId] || 150\n })\n return width\n }, [columnPinning.left, columnSizing])\n\n // Restrict drag to prevent crossing pinned/unpinned boundary\n const restrictToSection: Modifier = useCallback(\n ({ transform, activeNodeRect, draggingNodeRect, active }) => {\n if (activePinnedState.current === null || !activeNodeRect) return transform\n if (active?.data.current?.type && active.data.current.type !== 'column') return transform\n\n // Use cached boundary if available, otherwise calculate (fallback)\n let boundaryX = cachedBoundaryRef.current\n if (boundaryX === null) {\n const container = document.querySelector(`[${TABLE_CONTAINER_ATTR}]`)\n const containerLeft = container?.getBoundingClientRect().left ?? 0\n boundaryX = containerLeft + getPinnedSectionWidth()\n }\n\n const originalLeft = draggingNodeRect?.left ?? activeNodeRect.left\n\n if (activePinnedState.current) {\n // Pinned column can overlap slightly into unpinned section for better UX\n const rightEdge = originalLeft + activeNodeRect.width + transform.x\n const maxAllowedRight = boundaryX + DRAG_OVERLAP_ALLOWANCE\n if (rightEdge > maxAllowedRight) {\n return { ...transform, x: maxAllowedRight - originalLeft - activeNodeRect.width }\n }\n } else {\n // Unpinned column can overlap slightly into pinned section for better UX\n const leftEdge = originalLeft + transform.x\n const minAllowedLeft = boundaryX - DRAG_OVERLAP_ALLOWANCE\n if (leftEdge < minAllowedLeft) {\n return { ...transform, x: minAllowedLeft - originalLeft }\n }\n }\n return transform\n },\n [getPinnedSectionWidth],\n )\n\n // Set pinned state when drag starts\n const setDragPinnedState = useCallback(\n (columnId: string | null) => {\n if (columnId === null) {\n activePinnedState.current = null\n return\n }\n activePinnedState.current = columnPinning.left?.includes(columnId) || false\n },\n [columnPinning.left],\n )\n\n // Clear pinned state and cached boundary\n const clearDragPinnedState = useCallback(() => {\n activePinnedState.current = null\n cachedBoundaryRef.current = null\n }, [])\n\n // Set cached boundary position (called at drag start)\n const setCachedBoundary = useCallback((boundaryX: number) => {\n cachedBoundaryRef.current = boundaryX\n }, [])\n\n return {\n restrictToSection,\n setDragPinnedState,\n clearDragPinnedState,\n activePinnedState,\n setCachedBoundary,\n }\n}\n"],"names":["TABLE_CONTAINER_ATTR","DRAG_OVERLAP_ALLOWANCE","useColumnDragRestriction","columnPinning","columnSizing","activePinnedState","useRef","cachedBoundaryRef","getPinnedSectionWidth","useCallback","pinnedColumns","width","colId","restrictToSection","transform","activeNodeRect","draggingNodeRect","active","boundaryX","originalLeft","rightEdge","maxAllowedRight","leftEdge","minAllowedLeft","setDragPinnedState","columnId","clearDragPinnedState","setCachedBoundary"],"mappings":";AAUO,MAAMA,IAAuB,6BAG9BC,IAAyB,KAMlBC,IAA2B,CAAC;AAAA,EACvC,eAAAC;AAAA,EACA,cAAAC;AACF,MAAqC;AACnC,QAAMC,IAAoBC,EAAsB,IAAsB,GAGhEC,IAAoBD,EAAsB,IAAI,GAG9CE,IAAwBC,EAAY,MAAM;AAC9C,UAAMC,IAAgBP,EAAc,QAAQ,CAAA;AAC5C,QAAIQ,IAAQ;AACZ,WAAAD,EAAc,QAAQ,CAACE,MAAU;AAC/B,MAAAD,KAASP,EAAaQ,CAAK,KAAK;AAAA,IAClC,CAAC,GACMD;AAAA,EACT,GAAG,CAACR,EAAc,MAAMC,CAAY,CAAC,GAG/BS,IAA8BJ;AAAA,IAClC,CAAC,EAAE,WAAAK,GAAW,gBAAAC,GAAgB,kBAAAC,GAAkB,QAAAC,QAAa;AAE3D,UADIZ,EAAkB,YAAY,QAAQ,CAACU,KACvCE,GAAQ,KAAK,SAAS,QAAQA,EAAO,KAAK,QAAQ,SAAS,SAAU,QAAOH;AAGhF,UAAII,IAAYX,EAAkB;AAClC,MAAIW,MAAc,SAGhBA,KAFkB,SAAS,cAAc,IAAIlB,CAAoB,GAAG,GACnC,sBAAA,EAAwB,QAAQ,KACrCQ,EAAA;AAG9B,YAAMW,IAAeH,GAAkB,QAAQD,EAAe;AAE9D,UAAIV,EAAkB,SAAS;AAE7B,cAAMe,IAAYD,IAAeJ,EAAe,QAAQD,EAAU,GAC5DO,IAAkBH,IAAYjB;AACpC,YAAImB,IAAYC;AACd,iBAAO,EAAE,GAAGP,GAAW,GAAGO,IAAkBF,IAAeJ,EAAe,MAAA;AAAA,MAE9E,OAAO;AAEL,cAAMO,IAAWH,IAAeL,EAAU,GACpCS,IAAiBL,IAAYjB;AACnC,YAAIqB,IAAWC;AACb,iBAAO,EAAE,GAAGT,GAAW,GAAGS,IAAiBJ,EAAA;AAAA,MAE/C;AACA,aAAOL;AAAA,IACT;AAAA,IACA,CAACN,CAAqB;AAAA,EAAA,GAIlBgB,IAAqBf;AAAA,IACzB,CAACgB,MAA4B;AAC3B,UAAIA,MAAa,MAAM;AACrB,QAAApB,EAAkB,UAAU;AAC5B;AAAA,MACF;AACA,MAAAA,EAAkB,UAAUF,EAAc,MAAM,SAASsB,CAAQ,KAAK;AAAA,IACxE;AAAA,IACA,CAACtB,EAAc,IAAI;AAAA,EAAA,GAIfuB,IAAuBjB,EAAY,MAAM;AAC7C,IAAAJ,EAAkB,UAAU,MAC5BE,EAAkB,UAAU;AAAA,EAC9B,GAAG,CAAA,CAAE,GAGCoB,IAAoBlB,EAAY,CAACS,MAAsB;AAC3D,IAAAX,EAAkB,UAAUW;AAAA,EAC9B,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL,mBAAAL;AAAA,IACA,oBAAAW;AAAA,IACA,sBAAAE;AAAA,IACA,mBAAArB;AAAA,IACA,mBAAAsB;AAAA,EAAA;AAEJ;"}