@ynput/ayon-frontend-shared 0.2.22 → 0.2.24

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 (794) hide show
  1. package/dist/DetailsPanel.cjs.js +22 -12
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +22 -12
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +17 -1
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +19 -3
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/SimpleTable.cjs.js +18 -0
  10. package/dist/SimpleTable.cjs.js.map +1 -0
  11. package/dist/SimpleTable.es.js +18 -0
  12. package/dist/SimpleTable.es.js.map +1 -0
  13. package/dist/api.cjs.js +15 -0
  14. package/dist/api.cjs.js.map +1 -1
  15. package/dist/api.es.js +87 -72
  16. package/dist/api.es.js.map +1 -1
  17. package/dist/components.cjs.js +6 -0
  18. package/dist/components.cjs.js.map +1 -1
  19. package/dist/components.es.js +6 -0
  20. package/dist/components.es.js.map +1 -1
  21. package/dist/hooks.cjs.js +2 -0
  22. package/dist/hooks.cjs.js.map +1 -1
  23. package/dist/hooks.es.js +2 -0
  24. package/dist/hooks.es.js.map +1 -1
  25. package/dist/index.cjs.js +22 -12
  26. package/dist/index.cjs.js.map +1 -1
  27. package/dist/index.es.js +22 -12
  28. package/dist/index.es.js.map +1 -1
  29. package/dist/shared/src/api/base/client.cjs.js +2 -1
  30. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  31. package/dist/shared/src/api/base/client.es.js +2 -1
  32. package/dist/shared/src/api/base/client.es.js.map +1 -1
  33. package/dist/shared/src/api/generated/graphql.cjs.js +9 -10
  34. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  35. package/dist/shared/src/api/generated/graphql.es.js +9 -10
  36. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  37. package/dist/shared/src/api/generated/graphqlLinks.cjs.js +447 -0
  38. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -0
  39. package/dist/shared/src/api/generated/graphqlLinks.es.js +447 -0
  40. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -0
  41. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -0
  42. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/actions/getActions.es.js +1 -0
  44. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
  46. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
  48. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
  50. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
  52. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
  54. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
  56. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
  58. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
  60. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
  62. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
  64. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
  66. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
  68. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -0
  70. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/cloud/cloud.es.js +1 -0
  72. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +4 -1
  74. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/entities/getEntity.es.js +4 -1
  76. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +2 -0
  78. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +2 -0
  80. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +4 -0
  82. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -0
  84. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +4 -0
  86. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -0
  88. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +3 -0
  90. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entityLists/getLists.es.js +3 -0
  92. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  93. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
  94. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  95. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
  96. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  97. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
  98. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
  100. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
  102. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
  104. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -0
  106. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +1 -0
  108. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +142 -0
  110. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -0
  111. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +142 -0
  112. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -0
  113. package/dist/shared/src/api/queries/links/getLinks.cjs.js +202 -0
  114. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -0
  115. package/dist/shared/src/api/queries/links/getLinks.es.js +202 -0
  116. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -0
  117. package/dist/shared/src/api/queries/links/updateLinks.cjs.js +304 -0
  118. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -0
  119. package/dist/shared/src/api/queries/links/updateLinks.es.js +304 -0
  120. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -0
  121. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js +8 -0
  122. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.cjs.js.map +1 -0
  123. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js +8 -0
  124. package/dist/shared/src/api/queries/links/utils/formatEntityLinks.es.js.map +1 -0
  125. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +5 -4
  126. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/overview/getOverview.es.js +5 -4
  128. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +70 -15
  130. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/overview/updateOverview.es.js +70 -15
  132. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
  134. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
  136. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -0
  138. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/products/createProduct.es.js +1 -0
  140. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
  142. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
  144. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/review/getReview.cjs.js +2 -0
  146. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/review/getReview.es.js +2 -0
  148. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
  150. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
  152. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  153. package/dist/shared/src/api/queries/share/share.cjs.js +1 -0
  154. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/share/share.es.js +1 -0
  156. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
  158. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
  160. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +2 -0
  162. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  163. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +2 -0
  164. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  165. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
  166. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
  168. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
  170. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
  172. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  173. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -0
  174. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  175. package/dist/shared/src/api/queries/versions/updateVersions.es.js +1 -0
  176. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  177. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -0
  178. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  179. package/dist/shared/src/api/queries/views/getViews.es.js +1 -0
  180. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  181. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
  182. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  183. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
  184. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  185. package/dist/shared/src/components/Chips/Chips.cjs.js +149 -0
  186. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -0
  187. package/dist/shared/src/components/Chips/Chips.es.js +149 -0
  188. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -0
  189. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
  190. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  191. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
  192. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  193. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +5 -0
  194. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  195. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +5 -0
  196. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  197. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -0
  198. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  199. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -0
  200. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  201. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +37 -27
  202. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  203. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +37 -27
  204. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  205. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
  206. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  207. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
  208. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  209. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -2
  210. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  211. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -2
  212. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  213. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +331 -0
  214. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -0
  215. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +332 -0
  216. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -0
  217. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +125 -0
  218. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -0
  219. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +125 -0
  220. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -0
  221. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +92 -0
  222. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -0
  223. package/dist/shared/src/components/LinksManager/LinksManager.es.js +92 -0
  224. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -0
  225. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +250 -0
  226. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -0
  227. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +250 -0
  228. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -0
  229. package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js +229 -0
  230. package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js.map +1 -0
  231. package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js +229 -0
  232. package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js.map +1 -0
  233. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js +12 -0
  234. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.cjs.js.map +1 -0
  235. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js +13 -0
  236. package/dist/shared/src/components/LinksManager/SearchingLoadingItems.es.js.map +1 -0
  237. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js +103 -0
  238. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.cjs.js.map +1 -0
  239. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js +104 -0
  240. package/dist/shared/src/components/LinksManager/hooks/useKeyboardNavigation.es.js.map +1 -0
  241. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +278 -0
  242. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -0
  243. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +279 -0
  244. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -0
  245. package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js +70 -0
  246. package/dist/shared/src/components/LinksManager/utils/linkUpdates.cjs.js.map +1 -0
  247. package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js +70 -0
  248. package/dist/shared/src/components/LinksManager/utils/linkUpdates.es.js.map +1 -0
  249. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +22 -12
  250. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  251. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +22 -12
  252. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  253. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +104 -14
  254. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  255. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +104 -14
  256. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  257. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +22 -12
  258. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  259. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +22 -12
  260. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  261. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
  262. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  263. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
  264. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  265. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +23 -13
  266. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  267. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +23 -13
  268. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  269. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +22 -12
  270. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +22 -12
  272. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  273. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +22 -12
  274. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +22 -12
  276. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  277. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +4 -0
  278. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -0
  280. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  281. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +5 -0
  282. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  283. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +5 -0
  284. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  285. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +22 -12
  286. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  287. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +22 -12
  288. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  289. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +22 -12
  290. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  291. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +22 -12
  292. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  293. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +7 -2
  294. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  295. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -2
  296. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  297. package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
  298. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  299. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
  300. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  301. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +22 -12
  302. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +22 -12
  304. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  305. package/dist/shared/src/containers/Actions/Actions.cjs.js +4 -0
  306. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/Actions/Actions.es.js +4 -0
  308. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  309. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +22 -12
  310. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +22 -12
  312. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  313. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +22 -12
  314. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +22 -12
  316. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +22 -12
  318. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +22 -12
  320. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +22 -12
  322. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +22 -12
  324. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +18 -8
  326. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +18 -8
  328. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +4 -0
  330. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -0
  332. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -0
  334. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +1 -0
  336. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +4 -0
  338. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -0
  340. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  341. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +357 -0
  342. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -0
  343. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +357 -0
  344. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -0
  345. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +262 -0
  346. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -0
  347. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +263 -0
  348. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -0
  349. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +273 -0
  350. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -0
  351. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +274 -0
  352. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -0
  353. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +250 -0
  354. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -0
  355. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +251 -0
  356. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -0
  357. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +35 -0
  358. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -0
  359. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +36 -0
  360. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -0
  361. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +235 -0
  362. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -0
  363. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +235 -0
  364. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -0
  365. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +49 -0
  366. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -0
  367. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +49 -0
  368. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -0
  369. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js +12 -0
  370. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.cjs.js.map +1 -0
  371. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js +12 -0
  372. package/dist/shared/src/containers/EntityPickerDialog/util/entityHierarchies.es.js.map +1 -0
  373. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js +26 -0
  374. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -0
  375. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js +26 -0
  376. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -0
  377. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -0
  378. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -0
  380. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  381. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -0
  382. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +1 -0
  384. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
  386. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
  388. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +4 -0
  390. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +4 -0
  392. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  393. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +5 -4
  394. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +5 -4
  396. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  397. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +4 -0
  398. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -0
  400. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -0
  402. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +1 -0
  404. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  405. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -0
  406. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +1 -0
  408. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +36 -6
  410. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +36 -6
  412. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +25 -0
  414. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +25 -0
  416. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +263 -9
  418. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +264 -10
  420. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +21 -11
  422. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +21 -11
  424. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +4 -0
  426. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +4 -0
  428. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +1 -229
  430. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +2 -230
  432. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +432 -0
  434. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -0
  435. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +432 -0
  436. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -0
  437. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +120 -47
  438. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +121 -48
  440. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js +33 -0
  442. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js.map +1 -0
  443. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js +33 -0
  444. package/dist/shared/src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js.map +1 -0
  445. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +4 -0
  446. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -0
  448. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +13 -0
  450. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +14 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +104 -5
  454. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +104 -5
  456. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +13 -0
  460. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +13 -0
  462. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +4 -0
  464. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -0
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +127 -4
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +127 -4
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +134 -3
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +134 -3
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +199 -0
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +199 -0
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +111 -12
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +111 -12
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +2 -0
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +2 -0
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +65 -9
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +65 -9
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +1 -0
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +1 -0
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +113 -14
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +113 -14
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +4 -0
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -0
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +4 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +4 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +199 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +199 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +201 -0
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -0
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +202 -0
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -0
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +4 -0
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -0
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +103 -4
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +103 -4
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +13 -7
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +13 -7
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +126 -15
  532. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +126 -15
  534. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -0
  536. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +1 -0
  538. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +49 -0
  540. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -0
  541. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +49 -0
  542. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -0
  543. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js +2 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js +2 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +142 -0
  548. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +143 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +14 -7
  552. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +14 -7
  554. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +0 -7
  556. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +0 -7
  558. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +299 -0
  560. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -0
  561. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +299 -0
  562. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -0
  563. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +22 -12
  564. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +22 -12
  566. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  567. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +528 -0
  568. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -0
  569. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +529 -0
  570. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -0
  571. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +160 -0
  572. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -0
  573. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +160 -0
  574. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -0
  575. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +74 -0
  576. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -0
  577. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +74 -0
  578. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -0
  579. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js +19 -0
  580. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.cjs.js.map +1 -0
  581. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js +19 -0
  582. package/dist/shared/src/containers/SimpleTable/context/SimpleTableContext.es.js.map +1 -0
  583. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -0
  584. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +1 -0
  586. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  587. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +18 -2
  588. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  589. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +18 -2
  590. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  591. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js +17 -0
  592. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js.map +1 -0
  593. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js +17 -0
  594. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js.map +1 -0
  595. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js +37 -0
  596. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js.map +1 -0
  597. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js +37 -0
  598. package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js.map +1 -0
  599. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js +13 -2
  600. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js +14 -3
  602. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -1
  603. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js +1 -2
  604. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js +2 -3
  606. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
  607. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +11 -0
  608. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +11 -0
  610. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  611. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -0
  612. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +1 -0
  614. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  615. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -0
  616. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +1 -0
  618. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  619. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +53 -14
  620. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +53 -14
  622. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  623. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +4 -0
  624. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -0
  626. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  627. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +4 -0
  628. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -0
  630. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  631. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +2 -2
  632. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +1 -1
  634. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js +2 -1
  635. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js +2 -1
  637. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
  638. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +4 -0
  639. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -0
  641. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  642. package/dist/shared/src/context/AddonProjectContext.cjs.js +4 -0
  643. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  644. package/dist/shared/src/context/AddonProjectContext.es.js +4 -0
  645. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  646. package/dist/shared/src/context/DetailsPanelContext.cjs.js +4 -0
  647. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  648. package/dist/shared/src/context/DetailsPanelContext.es.js +4 -0
  649. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  650. package/dist/shared/src/context/PowerpackContext.cjs.js +4 -0
  651. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  652. package/dist/shared/src/context/PowerpackContext.es.js +4 -0
  653. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  654. package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
  655. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  656. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
  657. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  658. package/dist/shared/src/hooks/useActionTriggers.cjs.js +4 -0
  659. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  660. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -0
  661. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  662. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +4 -0
  663. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  664. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -0
  665. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  666. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +147 -0
  667. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -0
  668. package/dist/shared/src/hooks/useHierarchyTable.es.js +147 -0
  669. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -0
  670. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +12 -5
  671. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  672. package/dist/shared/src/hooks/useScopedStatuses.es.js +12 -5
  673. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  674. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +4 -0
  675. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  676. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -0
  677. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  678. package/dist/shared/src/{utils/extractVersionFromFilename.es.js.map → util/extractVersionFromFilename.cjs.js.map} +1 -1
  679. package/dist/shared/src/util/extractVersionFromFilename.es.js.map +1 -0
  680. package/dist/shared/src/util/getEntityId.cjs.js +11 -0
  681. package/dist/shared/src/util/getEntityId.cjs.js.map +1 -0
  682. package/dist/shared/src/util/getEntityId.es.js +11 -0
  683. package/dist/shared/src/util/getEntityId.es.js.map +1 -0
  684. package/dist/shared/src/{utils → util}/versionUploadHelpers.cjs.js +3 -2
  685. package/dist/shared/src/{utils/versionUploadHelpers.es.js.map → util/versionUploadHelpers.cjs.js.map} +1 -1
  686. package/dist/shared/src/{utils → util}/versionUploadHelpers.es.js +3 -2
  687. package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -0
  688. package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js +16 -0
  689. package/dist/src/containers/Slicer/hooks/useRowKeydown.cjs.js.map +1 -0
  690. package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js +17 -0
  691. package/dist/src/containers/Slicer/hooks/useRowKeydown.es.js.map +1 -0
  692. package/dist/types/SimpleTable.d.ts +6 -0
  693. package/dist/types/api/generated/graphql.d.ts +116 -33
  694. package/dist/types/api/generated/graphqlLinks.d.ts +2269 -0
  695. package/dist/types/api/generated/index.d.ts +2 -0
  696. package/dist/types/api/queries/entities/getEntity.d.ts +80 -79
  697. package/dist/types/api/queries/entityLists/types.d.ts +5 -5
  698. package/dist/types/api/queries/index.d.ts +1 -0
  699. package/dist/types/api/queries/links/getEntityLinks.d.ts +182 -0
  700. package/dist/types/api/queries/links/getLinks.d.ts +862 -0
  701. package/dist/types/api/queries/links/index.d.ts +3 -0
  702. package/dist/types/api/queries/links/updateLinks.d.ts +321 -0
  703. package/dist/types/api/queries/links/utils/formatEntityLinks.d.ts +1 -0
  704. package/dist/types/api/queries/overview/index.d.ts +1 -0
  705. package/dist/types/api/queries/overview/updateOverview.d.ts +9 -0
  706. package/dist/types/components/Chips/Chips.d.ts +14 -0
  707. package/dist/types/components/Chips/index.d.ts +1 -0
  708. package/dist/types/components/LinksManager/AddNewLinks.d.ts +11 -0
  709. package/dist/types/components/LinksManager/LinkManagerItem.d.ts +9 -0
  710. package/dist/types/components/LinksManager/LinksManager.d.ts +24 -0
  711. package/dist/types/components/LinksManager/LinksManager.styled.d.ts +17 -0
  712. package/dist/types/components/LinksManager/LinksManagerDialog.d.ts +9 -0
  713. package/dist/types/components/LinksManager/SearchingLoadingItems.d.ts +5 -0
  714. package/dist/types/components/LinksManager/hooks/useKeyboardNavigation.d.ts +24 -0
  715. package/dist/types/components/LinksManager/hooks/useUpdateLinks.d.ts +24 -0
  716. package/dist/types/components/LinksManager/index.d.ts +2 -0
  717. package/dist/types/components/LinksManager/utils/formatEntityPath.d.ts +1 -0
  718. package/dist/types/components/LinksManager/utils/linkUpdates.d.ts +47 -0
  719. package/dist/types/components/index.d.ts +2 -0
  720. package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +15 -0
  721. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +17 -0
  722. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableHeader.d.ts +25 -0
  723. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTableSearch.d.ts +8 -0
  724. package/dist/types/containers/EntityPickerDialog/components/index.d.ts +1 -0
  725. package/dist/types/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.d.ts +9 -0
  726. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +28 -0
  727. package/dist/types/containers/EntityPickerDialog/index.d.ts +1 -0
  728. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +8 -0
  729. package/dist/types/containers/EntityPickerDialog/util/entityHierarchies.d.ts +3 -0
  730. package/dist/types/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.d.ts +2 -0
  731. package/dist/types/containers/EntityPickerDialog/util/index.d.ts +3 -0
  732. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -2
  733. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +1 -0
  734. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +6 -1
  735. package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +1 -4
  736. package/dist/types/containers/ProjectTreeTable/context/CellEditingProvider.d.ts +4 -0
  737. package/dist/types/containers/ProjectTreeTable/context/DetailsPanelEntityContext.d.ts +16 -0
  738. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +4 -1
  739. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +2 -0
  740. package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +1 -1
  741. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +34 -0
  742. package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -0
  743. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -34
  744. package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +2 -0
  745. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  746. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +17 -0
  747. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +7 -1
  748. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +23 -0
  749. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  750. package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.d.ts +7 -0
  751. package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTableRowTemplate.d.ts +1 -0
  752. package/dist/types/{SimpleTable → containers/SimpleTable}/index.d.ts +1 -0
  753. package/dist/types/containers/Views/ViewsMenu/SectionHeader.d.ts +6 -0
  754. package/dist/types/containers/Views/ViewsMenu/SectionHeader.styled.d.ts +1 -0
  755. package/dist/types/containers/Views/ViewsMenu/ViewsMenu.d.ts +8 -3
  756. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
  757. package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +4 -3
  758. package/dist/types/hooks/index.d.ts +1 -0
  759. package/dist/types/hooks/useHierarchyTable.d.ts +13 -0
  760. package/dist/types/util/getEntityId.d.ts +2 -0
  761. package/dist/types/util/index.d.ts +3 -0
  762. package/dist/util.cjs.js +16 -0
  763. package/dist/util.cjs.js.map +1 -1
  764. package/dist/util.es.js +17 -1
  765. package/dist/util.es.js.map +1 -1
  766. package/package.json +8 -2
  767. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +0 -7
  768. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +0 -1
  769. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +0 -8
  770. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +0 -1
  771. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +0 -14
  772. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +0 -1
  773. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +0 -15
  774. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +0 -1
  775. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +0 -11
  776. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +0 -1
  777. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +0 -11
  778. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +0 -1
  779. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +0 -57
  780. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +0 -1
  781. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +0 -58
  782. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +0 -1
  783. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +0 -16
  784. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +0 -1
  785. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +0 -17
  786. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +0 -1
  787. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +0 -1
  788. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +0 -1
  789. /package/dist/shared/src/{utils → util}/extractVersionFromFilename.cjs.js +0 -0
  790. /package/dist/shared/src/{utils → util}/extractVersionFromFilename.es.js +0 -0
  791. /package/dist/types/{SimpleTable → containers/SimpleTable}/SimpleTable.styled.d.ts +0 -0
  792. /package/dist/types/{SimpleTable → containers/SimpleTable}/context/SimpleTableContext.d.ts +0 -0
  793. /package/dist/types/{utils → util}/extractVersionFromFilename.d.ts +0 -0
  794. /package/dist/types/{utils → util}/versionUploadHelpers.d.ts +0 -0
@@ -2,10 +2,15 @@ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.j
2
2
  import { createContext, useCallback, useEffect, useMemo, useContext } from "react";
3
3
  import { useSelectionCellsContext, ROW_SELECTION_COLUMN_ID } from "./SelectionCellsContext.es.js";
4
4
  import { useCellEditing } from "./CellEditingContext.es.js";
5
- import { parseCellId, getCellValue, getEntityDataById } from "../utils/cellUtils.es.js";
5
+ import { parseCellId, getLinkEntityIdsByColumnId, getCellValue, getEntityDataById } from "../utils/cellUtils.es.js";
6
+ import usePasteLinks from "../hooks/usePasteLinks.es.js";
6
7
  import { getEntityPath, clipboardError, parseClipboardText, processFieldValue } from "./clipboard/clipboardUtils.es.js";
7
8
  import { validateClipboardData } from "./clipboard/clipboardValidation.es.js";
8
9
  import { useProjectTableContext } from "./ProjectTableContext.es.js";
10
+ import "lodash";
11
+ import "react-toastify";
12
+ import { validateEntityId } from "../../../util/getEntityId.es.js";
13
+ import "../../../util/pubsub.es.js";
9
14
  const ClipboardContext = createContext(void 0);
10
15
  const ClipboardProvider = ({
11
16
  children,
@@ -15,6 +20,7 @@ const ClipboardProvider = ({
15
20
  }) => {
16
21
  const { selectedCells, gridMap, focusedCellId } = useSelectionCellsContext();
17
22
  const { updateEntities } = useCellEditing();
23
+ const { pasteTableLinks } = usePasteLinks();
18
24
  const { getEntityById, attribFields } = useProjectTableContext();
19
25
  const getSelectionData = useCallback(
20
26
  async (selected, config) => {
@@ -89,25 +95,29 @@ const ClipboardProvider = ({
89
95
  const rowValues = [];
90
96
  for (const colId of filteredColIds) {
91
97
  let cellValue = "";
92
- let foundValue = getCellValue(entity, colId);
93
- if (!foundValue) {
94
- const field = attribFields.find((f) => f.name === colId.replace("attrib_", ""));
95
- if (field && field.data.type === "boolean") {
96
- foundValue = false;
97
- } else if (field && field.data.type.includes("list_of")) {
98
- foundValue = [];
98
+ if (colId.startsWith("link_")) {
99
+ cellValue = getLinkEntityIdsByColumnId(entity.links, colId);
100
+ } else {
101
+ let foundValue = getCellValue(entity, colId);
102
+ if (!foundValue) {
103
+ const field = attribFields.find((f) => f.name === colId.replace("attrib_", ""));
104
+ if (field && field.data.type === "boolean") {
105
+ foundValue = false;
106
+ } else if (field && field.data.type.includes("list_of")) {
107
+ foundValue = [];
108
+ }
99
109
  }
100
- }
101
- cellValue = foundValue !== void 0 && foundValue !== null ? String(foundValue) : "";
102
- if (colId === "name") {
103
- cellValue = getEntityPath(entity.entityId || entity.id, entitiesMap);
104
- }
105
- if (colId === "subType") {
106
- if ("folderType" in entity) {
107
- cellValue = entity.folderType || "";
110
+ cellValue = foundValue !== void 0 && foundValue !== null ? String(foundValue) : "";
111
+ if (colId === "name") {
112
+ cellValue = getEntityPath(entity.entityId || entity.id, entitiesMap);
108
113
  }
109
- if ("taskType" in entity) {
110
- cellValue = entity.taskType || "";
114
+ if (colId === "subType") {
115
+ if ("folderType" in entity) {
116
+ cellValue = entity.folderType || "";
117
+ }
118
+ if ("taskType" in entity) {
119
+ cellValue = entity.taskType || "";
120
+ }
111
121
  }
112
122
  }
113
123
  rowValues.push(`${cellValue.replace(/"/g, '""')}`);
@@ -121,13 +131,21 @@ const ClipboardProvider = ({
121
131
  },
122
132
  [selectedCells, focusedCellId, gridMap, entitiesMap, getEntityById]
123
133
  );
134
+ const doesClipboardContainId = async () => {
135
+ const clipboardText = await getClipboardString();
136
+ if (!clipboardText) return false;
137
+ const parsedData = parseClipboardText(clipboardText);
138
+ if (parsedData.length === 0) return false;
139
+ return parsedData.every((row) => {
140
+ return row.values.every((value2) => value2.split(",").every((v) => validateEntityId(v)));
141
+ });
142
+ };
124
143
  const copyToClipboard = useCallback(
125
144
  async (selected, fullRow) => {
126
145
  selected = selected || Array.from(selectedCells);
127
146
  if (!selected.length) return;
128
147
  const clipboardText = await getSelectionData(selected, { fullRow });
129
148
  if (!clipboardText) {
130
- clipboardError("No data to copy to clipboard.");
131
149
  return;
132
150
  }
133
151
  if (!navigator.clipboard) {
@@ -168,26 +186,31 @@ const ClipboardProvider = ({
168
186
  },
169
187
  [selectedCells, entitiesMap, gridMap, getSelectionData]
170
188
  );
189
+ const getClipboardString = async () => {
190
+ if (!navigator.clipboard) {
191
+ clipboardError("Clipboard API not supported in this browser.");
192
+ return;
193
+ }
194
+ if (!window.isSecureContext) {
195
+ clipboardError("Clipboard operations require a secure HTTPS context.");
196
+ return;
197
+ }
198
+ let clipboardText;
199
+ try {
200
+ clipboardText = await navigator.clipboard.readText();
201
+ return clipboardText;
202
+ } catch (error) {
203
+ clipboardError(`Failed to read from clipboard: ${error.message}`);
204
+ return;
205
+ }
206
+ };
171
207
  const pasteFromClipboard = useCallback(
172
- async (selected) => {
208
+ async (selected, config) => {
173
209
  var _a, _b;
174
- selected = selected || Array.from(selectedCells);
210
+ const { method = "replace" } = config || {};
175
211
  if (!selected.length) return;
176
- if (!navigator.clipboard) {
177
- clipboardError("Clipboard API not supported in this browser.");
178
- return;
179
- }
180
- if (!window.isSecureContext) {
181
- clipboardError("Clipboard operations require a secure HTTPS context.");
182
- return;
183
- }
184
- let clipboardText;
185
- try {
186
- clipboardText = await navigator.clipboard.readText();
187
- } catch (error) {
188
- clipboardError(`Failed to read from clipboard: ${error.message}`);
189
- return;
190
- }
212
+ const clipboardText = await getClipboardString();
213
+ if (!clipboardText) return;
191
214
  const parsedData = parseClipboardText(clipboardText);
192
215
  if (!parsedData.length) return;
193
216
  const isSingleCellValue = parsedData.length === 1 && parsedData[0].values.length === 1;
@@ -244,15 +267,16 @@ const ClipboardProvider = ({
244
267
  for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {
245
268
  const colId = selectedColIds[colIndex];
246
269
  if (colId === "name") continue;
247
- let isAttrib = false;
270
+ let isAttrib = false, isLink = false;
248
271
  let fieldValueType = "string";
249
272
  if (sortedRows.length > 0) {
250
273
  const firstRowId = sortedRows[0];
251
274
  const entity = getEntityById(firstRowId);
252
275
  if (entity) {
253
276
  isAttrib = colId.startsWith("attrib_");
277
+ isLink = colId.startsWith("link_");
254
278
  const fieldValue = getCellValue(entity, colId);
255
- if (Array.isArray(fieldValue)) {
279
+ if (Array.isArray(fieldValue) || isLink) {
256
280
  fieldValueType = "array";
257
281
  } else if (typeof fieldValue === "number") {
258
282
  fieldValueType = "number";
@@ -290,11 +314,15 @@ const ClipboardProvider = ({
290
314
  id: rowId,
291
315
  type: entityType,
292
316
  fields: {},
293
- attrib: {}
317
+ attrib: {},
318
+ links: {}
294
319
  });
295
320
  }
296
321
  const entityData = entitiesToUpdateMap.get(entityKey);
297
- if (isAttrib) {
322
+ if (isLink) {
323
+ const [_link, linkType, inType, outType, direction] = colId.split("_");
324
+ entityData.links[`${linkType}|${inType}|${outType}_${direction}`] = processedValue;
325
+ } else if (isAttrib) {
298
326
  entityData.attrib[fieldToUpdate] = processedValue;
299
327
  } else {
300
328
  entityData.fields[fieldToUpdate] = processedValue;
@@ -302,6 +330,7 @@ const ClipboardProvider = ({
302
330
  }
303
331
  }
304
332
  const allEntityUpdates = [];
333
+ const linkUpdatesMap = /* @__PURE__ */ new Map();
305
334
  entitiesToUpdateMap.forEach((entity) => {
306
335
  Object.entries(entity.fields).forEach(([field, value2]) => {
307
336
  allEntityUpdates.push({
@@ -322,31 +351,75 @@ const ClipboardProvider = ({
322
351
  isAttrib: true
323
352
  });
324
353
  });
354
+ Object.entries(entity.links).forEach(([linkKey, targetEntityIds]) => {
355
+ const [linkTypePart, direction] = linkKey.split("_");
356
+ const linkTypeParts = linkTypePart.split("|");
357
+ if (linkTypeParts.length >= 3) {
358
+ const linkTypeName = linkTypeParts[0];
359
+ const inType = linkTypeParts[1];
360
+ const outType = linkTypeParts[2];
361
+ const linkType = `${linkTypeName}|${inType}|${outType}`;
362
+ const targetEntityType = direction === "out" ? outType : inType;
363
+ const linkUpdateKey = `${entity.id}-${linkType}-${direction}`;
364
+ linkUpdatesMap.set(linkUpdateKey, {
365
+ rowId: entity.rowId,
366
+ sourceEntityId: entity.id,
367
+ sourceEntityType: entity.type,
368
+ linkType,
369
+ direction,
370
+ targetEntityType,
371
+ operation: method,
372
+ targetEntityIds: Array.isArray(targetEntityIds) ? targetEntityIds : []
373
+ });
374
+ }
375
+ });
325
376
  });
377
+ const allLinkUpdates = Array.from(linkUpdatesMap.values());
378
+ const updatePromises = [];
326
379
  if (allEntityUpdates.length > 0) {
380
+ updatePromises.push(updateEntities(allEntityUpdates));
381
+ }
382
+ if (allLinkUpdates.length > 0) {
383
+ updatePromises.push(pasteTableLinks(allLinkUpdates));
384
+ }
385
+ if (updatePromises.length > 0) {
327
386
  try {
328
- await updateEntities(allEntityUpdates);
387
+ await Promise.all(updatePromises);
329
388
  } catch (error) {
330
389
  console.error("Error updating entities:", error);
331
- clipboardError(
332
- `Failed to update: ${error instanceof Error ? error.message : "Unknown error"}`
333
- );
390
+ clipboardError(`Paste failed: ${error || (error == null ? void 0 : error.message) || "Unknown error"}`);
334
391
  }
335
392
  }
336
393
  },
337
- [selectedCells, gridMap, entitiesMap, updateEntities, columnEnums, getEntityById]
394
+ [
395
+ selectedCells,
396
+ gridMap,
397
+ entitiesMap,
398
+ updateEntities,
399
+ pasteTableLinks,
400
+ columnEnums,
401
+ getEntityById
402
+ ]
338
403
  );
339
404
  useEffect(() => {
340
- const handleKeyDown = (e) => {
405
+ const handleKeyDown = async (e) => {
341
406
  if ((e.ctrlKey || e.metaKey) && e.key === "c") {
342
407
  copyToClipboard();
343
408
  }
344
409
  if ((e.ctrlKey || e.metaKey) && e.key === "v") {
345
410
  const activeEl = document.activeElement;
346
411
  if (activeEl && (activeEl.tagName === "INPUT" || activeEl.tagName === "TEXTAREA" || activeEl.isContentEditable)) {
347
- return;
412
+ const allEntityIds = await doesClipboardContainId();
413
+ if (allEntityIds) {
414
+ e.preventDefault();
415
+ } else {
416
+ return;
417
+ }
348
418
  }
349
- pasteFromClipboard();
419
+ pasteFromClipboard(Array.from(selectedCells), {
420
+ method: e.shiftKey ? "merge" : "replace"
421
+ // Use shift key to determine paste method
422
+ });
350
423
  }
351
424
  };
352
425
  window.addEventListener("keydown", handleKeyDown);
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ClipboardContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, useMemo, useEffect } from 'react'\n\n// Contexts\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './SelectionCellsContext'\nimport { useCellEditing } from './CellEditingContext'\n\n// Utils\nimport { getCellValue, getEntityDataById, parseCellId } from '../utils/cellUtils'\n\n// Types\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\n\n// Import from the new modular files\nimport {\n getEntityPath,\n parseClipboardText,\n clipboardError,\n processFieldValue,\n} from './clipboard/clipboardUtils'\nimport { validateClipboardData } from './clipboard/clipboardValidation'\nimport { ClipboardContextType, ClipboardProviderProps } from './clipboard/clipboardTypes'\nimport { useProjectTableContext } from './ProjectTableContext'\n\nconst ClipboardContext = createContext<ClipboardContextType | undefined>(undefined)\n\nexport const ClipboardProvider: React.FC<ClipboardProviderProps> = ({\n children,\n entitiesMap,\n columnEnums,\n columnReadOnly,\n}) => {\n // Get selection information from SelectionContext\n const { selectedCells, gridMap, focusedCellId } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n const { getEntityById, attribFields } = useProjectTableContext()\n\n const getSelectionData = useCallback(\n async (selected: string[], config?: { headers?: boolean; fullRow?: boolean }) => {\n const { headers, fullRow } = config || {}\n try {\n // First, organize selected cells by row\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n selected.forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n\n // do not include row selection column\n if (colId === ROW_SELECTION_COLUMN_ID) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n\n cellsByRow.get(rowId)?.add(colId)\n })\n\n if (fullRow) {\n const selectedRows = selected\n .filter(\n (cellId) =>\n parseCellId(cellId)?.rowId &&\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[]\n\n // select the whole row\n // For rows with selection cells, add all available columns\n selectedRows.forEach((rowId) => {\n // add the rowId if it doesn't exist\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n const allColumns = Array.from(gridMap.colIdToIndex.keys())\n allColumns.forEach((colId) => {\n cellsByRow.get(rowId)?.add(colId)\n })\n })\n }\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Build clipboard text\n let clipboardText = ''\n\n // Get the first row to determine columns\n const firstRowId = sortedRows[0]\n if (!firstRowId) return ''\n\n // Get all column IDs for the first row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(firstRowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Include headers if requested\n if (headers && colIds.length > 0) {\n const headerValues: string[] = []\n\n for (const colId of colIds) {\n // Use colId as the column name since we don't have direct access to column names\n const columnName = colId\n headerValues.push(`${columnName.replace(/\"/g, '\"\"')}`)\n }\n\n clipboardText += headerValues.join('\\t') + '\\n'\n }\n\n for (const rowId of sortedRows) {\n // Determine if this is a folder or task by checking which map contains the ID\n const entity = getEntityById(rowId)\n\n if (!entity) {\n console.warn(`Entity not found for rowId: ${rowId}`)\n continue\n }\n\n // Get all column IDs for this row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(rowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Filter out the row selection column from the copied data\n const filteredColIds = colIds.filter((colId) => colId !== ROW_SELECTION_COLUMN_ID)\n\n const rowValues: string[] = []\n\n // For each column in this row\n for (const colId of filteredColIds) {\n // Determine the value based on the column ID\n let cellValue = ''\n // @ts-ignore\n let foundValue = getCellValue(entity, colId)\n\n if (!foundValue) {\n // we should look for the default value set out in attribFields\n const field = attribFields.find((f) => f.name === colId.replace('attrib_', ''))\n if (field && field.data.type === 'boolean') {\n foundValue = false // default boolean value\n } else if (field && field.data.type.includes('list_of')) {\n foundValue = [] // default list value\n }\n }\n\n // convert to string if foundValue is not undefined or null use empty string otherwise\n cellValue = foundValue !== undefined && foundValue !== null ? String(foundValue) : ''\n\n // Special handling for name field - include full path\n if (colId === 'name') {\n cellValue = getEntityPath(entity.entityId || entity.id, entitiesMap)\n }\n\n if (colId === 'subType') {\n // get folderType or taskType\n if ('folderType' in entity) {\n cellValue = entity.folderType || ''\n }\n if ('taskType' in entity) {\n cellValue = entity.taskType || ''\n }\n }\n\n // Escape double quotes in the cell value and wrap in quotes\n rowValues.push(`${cellValue.replace(/\"/g, '\"\"')}`)\n }\n\n // Add row to clipboard text\n clipboardText += rowValues.join('\\t') + '\\n'\n }\n\n return clipboardText\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, focusedCellId, gridMap, entitiesMap, getEntityById],\n )\n\n const copyToClipboard: ClipboardContextType['copyToClipboard'] = useCallback(\n async (selected, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n const clipboardText = await getSelectionData(selected, { fullRow })\n if (!clipboardText) {\n clipboardError('No data to copy to clipboard.')\n return\n }\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n try {\n await navigator.clipboard.writeText(clipboardText)\n console.log('Copied to clipboard successfully', clipboardText)\n } catch (error: any) {\n clipboardError(`Failed to copy to clipboard: ${error.message}`)\n }\n },\n [selectedCells, entitiesMap, gridMap],\n )\n\n const exportCSV: ClipboardContextType['exportCSV'] = useCallback(\n async (selected, projectName, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n\n try {\n // Get clipboard text with headers included for CSV export\n const clipboardText = await getSelectionData(selected, { headers: true, fullRow })\n if (!clipboardText) return\n\n // create a csv file and download it\n const blob = new Blob([clipboardText], { type: 'text/csv' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n const selectedCount = selected.length\n a.download = `${projectName}-export-${selectedCount}_cells-${new Date()\n .toISOString()\n .slice(0, 10)}.csv`\n a.click()\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, entitiesMap, gridMap, getSelectionData],\n )\n\n const pasteFromClipboard: ClipboardContextType['pasteFromClipboard'] = useCallback(\n async (selected) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n let clipboardText: string\n try {\n clipboardText = await navigator.clipboard.readText()\n } catch (error: any) {\n clipboardError(`Failed to read from clipboard: ${error.message}`)\n return\n }\n\n // we can have empty text in the clipboard\n //if (!clipboardText.trim()) return\n\n // Parse the clipboard text\n const parsedData = parseClipboardText(clipboardText)\n if (!parsedData.length) return\n\n // Determine if we have a single value in the clipboard (one row, one column)\n const isSingleCellValue = parsedData.length === 1 && parsedData[0].values.length === 1\n\n // Organize selected cells by row\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n Array.from(selected).forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n cellsByRow.get(rowId)?.add(colId)\n })\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // For each row, get the sorted column IDs\n const firstRow = sortedRows[0]\n const selectedColIds = Array.from(cellsByRow.get(firstRow) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // First pass: validate all values for status and subType\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const isFolder = getEntityDataById<'folder'>(rowId, entitiesMap)?.entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n // If it's a single cell value, use it for all cells\n // Otherwise use the modulo approach to repeat values\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n pasteValue = parsedData[pasteRowIndex].values[pasteColIndex]\n }\n\n // Validate clipboard data for this cell\n const isValid = validateClipboardData({\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n })\n\n if (!isValid) return\n }\n }\n\n // Create a map to consolidate updates for the same entity\n const entitiesToUpdateMap = new Map<\n string,\n {\n rowId: string\n id: string\n type: string\n fields: Record<string, any>\n attrib: Record<string, any>\n }\n >()\n\n // For each column, prepare updates\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n // Skip special handling for 'name' which we don't want to paste\n if (colId === 'name') continue\n\n // Check if this is an attribute field by examining the first entity\n let isAttrib = false\n // Check if the field potentially contains array values\n let fieldValueType: 'string' | 'number' | 'boolean' | 'array' = 'string'\n\n if (sortedRows.length > 0) {\n const firstRowId = sortedRows[0]\n const entity = getEntityById(firstRowId)\n if (entity) {\n isAttrib = colId.startsWith('attrib_')\n\n // Determine if field is an array and its value type\n // @ts-ignore - Check entity property or attribute\n const fieldValue = getCellValue(entity, colId)\n if (Array.isArray(fieldValue)) {\n fieldValueType = 'array'\n } else if (typeof fieldValue === 'number') {\n fieldValueType = 'number'\n } else if (typeof fieldValue === 'boolean') {\n fieldValueType = 'boolean'\n }\n\n // Special case for subType\n if (colId === 'subType') {\n isAttrib = false\n }\n }\n }\n\n // Process each row individually\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n const isFolder = entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n pasteValue = parsedData[pasteRowIndex].values[pasteColIndex]\n }\n\n let fieldToUpdate = colId.split('_').pop() || colId\n\n // Special handling for subType (convert to folderType or taskType)\n if (colId === 'subType') {\n fieldToUpdate = isFolder ? 'folderType' : 'taskType'\n isAttrib = false\n\n // Skip empty values for enum fields\n if (!pasteValue) continue\n }\n\n // Process the value based on its type\n const processedValue = processFieldValue(pasteValue, fieldValueType)\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey) && entityType) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: rowId,\n type: entityType,\n fields: {},\n attrib: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n\n // Add the field to the appropriate place\n if (isAttrib) {\n entityData.attrib[fieldToUpdate] = processedValue\n } else {\n entityData.fields[fieldToUpdate] = processedValue\n }\n }\n }\n\n // Convert the consolidated map to EntityUpdate array\n const allEntityUpdates: EntityUpdate[] = []\n\n entitiesToUpdateMap.forEach((entity) => {\n // For regular fields, create one update per field\n Object.entries(entity.fields).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n })\n })\n\n // For attributes, create one update per attribute\n Object.entries(entity.attrib).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n isAttrib: true,\n })\n })\n })\n\n // Make a single call to update all entities\n if (allEntityUpdates.length > 0) {\n try {\n await updateEntities(allEntityUpdates)\n } catch (error) {\n console.error('Error updating entities:', error)\n clipboardError(\n `Failed to update: ${error instanceof Error ? error.message : 'Unknown error'}`,\n )\n }\n }\n },\n [selectedCells, gridMap, entitiesMap, updateEntities, columnEnums, getEntityById],\n )\n\n // Set up keyboard event listeners\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n // Copy functionality (Ctrl+C or Command+C)\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n copyToClipboard()\n }\n\n // Paste functionality (Ctrl+V or Command+V)\n if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // don't execute paste if focus is inside an input, textarea, or content‐editable element\n const activeEl = document.activeElement as HTMLElement | null\n if (\n activeEl &&\n (activeEl.tagName === 'INPUT' ||\n activeEl.tagName === 'TEXTAREA' ||\n activeEl.isContentEditable)\n ) {\n return\n }\n pasteFromClipboard()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [copyToClipboard, pasteFromClipboard])\n\n const value = useMemo(\n () => ({\n copyToClipboard,\n pasteFromClipboard,\n exportCSV,\n }),\n [copyToClipboard, pasteFromClipboard],\n )\n\n return <ClipboardContext.Provider value={value}>{children}</ClipboardContext.Provider>\n}\n\nexport const useClipboard = (): ClipboardContextType => {\n const context = useContext(ClipboardContext)\n if (context === undefined) {\n throw new Error('useClipboard must be used within a ClipboardProvider')\n }\n return context\n}\n"],"names":["colIds","_a","value","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ClipboardContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ClipboardContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, useMemo, useEffect } from 'react'\n\n// Contexts\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './SelectionCellsContext'\nimport { useCellEditing } from './CellEditingContext'\n\n// Utils\nimport {\n getCellValue,\n getEntityDataById,\n getLinkEntityIdsByColumnId,\n parseCellId,\n} from '../utils/cellUtils'\n\n// Types\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\nimport usePasteLinks, { LinkUpdate } from '../hooks/usePasteLinks'\n\n// Import from the new modular files\nimport {\n getEntityPath,\n parseClipboardText,\n clipboardError,\n processFieldValue,\n} from './clipboard/clipboardUtils'\nimport { validateClipboardData } from './clipboard/clipboardValidation'\nimport { ClipboardContextType, ClipboardProviderProps } from './clipboard/clipboardTypes'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { validateEntityId } from '@shared/util'\n\nconst ClipboardContext = createContext<ClipboardContextType | undefined>(undefined)\n\nexport const ClipboardProvider: React.FC<ClipboardProviderProps> = ({\n children,\n entitiesMap,\n columnEnums,\n columnReadOnly,\n}) => {\n // Get selection information from SelectionContext\n const { selectedCells, gridMap, focusedCellId } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n const { pasteTableLinks } = usePasteLinks()\n const { getEntityById, attribFields } = useProjectTableContext()\n\n const getSelectionData = useCallback(\n async (selected: string[], config?: { headers?: boolean; fullRow?: boolean }) => {\n const { headers, fullRow } = config || {}\n try {\n // First, organize selected cells by row\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n selected.forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n\n // do not include row selection column\n if (colId === ROW_SELECTION_COLUMN_ID) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n\n cellsByRow.get(rowId)?.add(colId)\n })\n\n if (fullRow) {\n const selectedRows = selected\n .filter(\n (cellId) =>\n parseCellId(cellId)?.rowId &&\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[]\n\n // select the whole row\n // For rows with selection cells, add all available columns\n selectedRows.forEach((rowId) => {\n // add the rowId if it doesn't exist\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n const allColumns = Array.from(gridMap.colIdToIndex.keys())\n allColumns.forEach((colId) => {\n cellsByRow.get(rowId)?.add(colId)\n })\n })\n }\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Build clipboard text\n let clipboardText = ''\n\n // Get the first row to determine columns\n const firstRowId = sortedRows[0]\n if (!firstRowId) return ''\n\n // Get all column IDs for the first row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(firstRowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Include headers if requested\n if (headers && colIds.length > 0) {\n const headerValues: string[] = []\n\n for (const colId of colIds) {\n // Use colId as the column name since we don't have direct access to column names\n const columnName = colId\n headerValues.push(`${columnName.replace(/\"/g, '\"\"')}`)\n }\n\n clipboardText += headerValues.join('\\t') + '\\n'\n }\n\n for (const rowId of sortedRows) {\n // Get the entity for this row\n const entity = getEntityById(rowId)\n\n if (!entity) {\n console.warn(`Entity not found for rowId: ${rowId}`)\n continue\n }\n\n // Get all column IDs for this row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(rowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Filter out the row selection column from the copied data\n const filteredColIds = colIds.filter((colId) => colId !== ROW_SELECTION_COLUMN_ID)\n\n const rowValues: string[] = []\n\n // For each column in this row\n for (const colId of filteredColIds) {\n // Determine the value based on the column ID\n let cellValue = ''\n\n // special handling of link cells\n if (colId.startsWith('link_')) {\n cellValue = getLinkEntityIdsByColumnId(entity.links, colId)\n } else {\n // @ts-ignore\n let foundValue = getCellValue(entity, colId)\n\n if (!foundValue) {\n // we should look for the default value set out in attribFields\n const field = attribFields.find((f) => f.name === colId.replace('attrib_', ''))\n if (field && field.data.type === 'boolean') {\n foundValue = false // default boolean value\n } else if (field && field.data.type.includes('list_of')) {\n foundValue = [] // default list value\n }\n }\n\n // convert to string if foundValue is not undefined or null use empty string otherwise\n cellValue = foundValue !== undefined && foundValue !== null ? String(foundValue) : ''\n\n // Special handling for name field - include full path\n if (colId === 'name') {\n cellValue = getEntityPath(entity.entityId || entity.id, entitiesMap)\n }\n\n if (colId === 'subType') {\n // get folderType or taskType\n if ('folderType' in entity) {\n cellValue = entity.folderType || ''\n }\n if ('taskType' in entity) {\n cellValue = entity.taskType || ''\n }\n }\n }\n\n // Escape double quotes in the cell value and wrap in quotes\n rowValues.push(`${cellValue.replace(/\"/g, '\"\"')}`)\n }\n\n // Add row to clipboard text\n clipboardText += rowValues.join('\\t') + '\\n'\n }\n\n return clipboardText\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, focusedCellId, gridMap, entitiesMap, getEntityById],\n )\n\n const doesClipboardContainId = async () => {\n // check if the clipboard contains a valid ID\n const clipboardText = await getClipboardString()\n if (!clipboardText) return false\n const parsedData = parseClipboardText(clipboardText)\n if (parsedData.length === 0) return false\n return parsedData.every((row) => {\n return row.values.every((value) => value.split(',').every((v) => validateEntityId(v)))\n })\n }\n\n const copyToClipboard: ClipboardContextType['copyToClipboard'] = useCallback(\n async (selected, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n const clipboardText = await getSelectionData(selected, { fullRow })\n if (!clipboardText) {\n return\n }\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n try {\n await navigator.clipboard.writeText(clipboardText)\n console.log('Copied to clipboard successfully', clipboardText)\n } catch (error: any) {\n clipboardError(`Failed to copy to clipboard: ${error.message}`)\n }\n },\n [selectedCells, entitiesMap, gridMap],\n )\n\n const exportCSV: ClipboardContextType['exportCSV'] = useCallback(\n async (selected, projectName, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n\n try {\n // Get clipboard text with headers included for CSV export\n const clipboardText = await getSelectionData(selected, { headers: true, fullRow })\n if (!clipboardText) return\n\n // create a csv file and download it\n const blob = new Blob([clipboardText], { type: 'text/csv' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n const selectedCount = selected.length\n a.download = `${projectName}-export-${selectedCount}_cells-${new Date()\n .toISOString()\n .slice(0, 10)}.csv`\n a.click()\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, entitiesMap, gridMap, getSelectionData],\n )\n\n const getClipboardString = async (): Promise<string | void> => {\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n let clipboardText: string\n try {\n clipboardText = await navigator.clipboard.readText()\n return clipboardText\n } catch (error: any) {\n clipboardError(`Failed to read from clipboard: ${error.message}`)\n return\n }\n }\n\n const pasteFromClipboard: ClipboardContextType['pasteFromClipboard'] = useCallback(\n async (selected, config) => {\n const { method = 'replace' } = config || {}\n if (!selected.length) return\n\n const clipboardText = await getClipboardString()\n if (!clipboardText) return\n\n // Parse the clipboard text\n const parsedData = parseClipboardText(clipboardText)\n if (!parsedData.length) return\n\n // Determine if we have a single value in the clipboard (one row, one column)\n const isSingleCellValue = parsedData.length === 1 && parsedData[0].values.length === 1\n\n // Organize selected cells by row\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n Array.from(selected).forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n cellsByRow.get(rowId)?.add(colId)\n })\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // For each row, get the sorted column IDs\n const firstRow = sortedRows[0]\n const selectedColIds = Array.from(cellsByRow.get(firstRow) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // First pass: validate all values for status and subType\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const isFolder = getEntityDataById<'folder'>(rowId, entitiesMap)?.entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n // If it's a single cell value, use it for all cells\n // Otherwise use the modulo approach to repeat values\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n pasteValue = parsedData[pasteRowIndex].values[pasteColIndex]\n }\n\n // Validate clipboard data for this cell\n const isValid = validateClipboardData({\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n })\n\n if (!isValid) return\n }\n }\n\n // Create a map to consolidate updates for the same entity\n const entitiesToUpdateMap = new Map<\n string,\n {\n rowId: string\n id: string\n type: string\n fields: Record<string, any>\n attrib: Record<string, any>\n links: Record<string, string[]>\n }\n >()\n\n // For each column, prepare updates\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n // Skip special handling for 'name' which we don't want to paste\n if (colId === 'name') continue\n\n // Check if this is an attribute field by examining the first entity\n let isAttrib = false,\n isLink = false\n // Check if the field potentially contains array values\n let fieldValueType: 'string' | 'number' | 'boolean' | 'array' = 'string'\n\n if (sortedRows.length > 0) {\n const firstRowId = sortedRows[0]\n const entity = getEntityById(firstRowId)\n if (entity) {\n isAttrib = colId.startsWith('attrib_')\n isLink = colId.startsWith('link_')\n\n // Determine if field is an array and its value type\n // @ts-ignore - Check entity property or attribute\n const fieldValue = getCellValue(entity, colId)\n if (Array.isArray(fieldValue) || isLink) {\n fieldValueType = 'array'\n } else if (typeof fieldValue === 'number') {\n fieldValueType = 'number'\n } else if (typeof fieldValue === 'boolean') {\n fieldValueType = 'boolean'\n }\n\n // Special case for subType\n if (colId === 'subType') {\n isAttrib = false\n }\n }\n }\n\n // Process each row individually\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n const isFolder = entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n pasteValue = parsedData[pasteRowIndex].values[pasteColIndex]\n }\n\n let fieldToUpdate = colId.split('_').pop() || colId\n\n // Special handling for subType (convert to folderType or taskType)\n if (colId === 'subType') {\n fieldToUpdate = isFolder ? 'folderType' : 'taskType'\n isAttrib = false\n\n // Skip empty values for enum fields\n if (!pasteValue) continue\n }\n\n // Process the value based on its type\n const processedValue = processFieldValue(pasteValue, fieldValueType)\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey) && entityType) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: rowId,\n type: entityType,\n fields: {},\n attrib: {},\n links: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n\n // Add the field to the appropriate place\n if (isLink) {\n const [_link, linkType, inType, outType, direction] = colId.split('_')\n // final-task|folder|task\n entityData.links[`${linkType}|${inType}|${outType}_${direction}`] = processedValue\n } else if (isAttrib) {\n entityData.attrib[fieldToUpdate] = processedValue\n } else {\n entityData.fields[fieldToUpdate] = processedValue\n }\n }\n }\n\n // Convert the consolidated map to EntityUpdate array and LinkUpdate array\n const allEntityUpdates: EntityUpdate[] = []\n const linkUpdatesMap = new Map<string, LinkUpdate>()\n\n entitiesToUpdateMap.forEach((entity) => {\n // For regular fields, create one update per field\n Object.entries(entity.fields).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n })\n })\n\n // For attributes, create one update per attribute\n Object.entries(entity.attrib).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n isAttrib: true,\n })\n })\n\n // For links, create LinkUpdate objects\n Object.entries(entity.links).forEach(([linkKey, targetEntityIds]) => {\n // Parse the linkKey: \"linkType|inType|outType_direction\"\n const [linkTypePart, direction] = linkKey.split('_')\n const linkTypeParts = linkTypePart.split('|')\n\n if (linkTypeParts.length >= 3) {\n const linkTypeName = linkTypeParts[0]\n const inType = linkTypeParts[1]\n const outType = linkTypeParts[2]\n\n // Reconstruct the full linkType in the required format: name|input_type|output_type\n const linkType = `${linkTypeName}|${inType}|${outType}`\n\n // Determine target entity type based on direction\n const targetEntityType = direction === 'out' ? outType : inType\n\n // Create a unique key for this link operation\n const linkUpdateKey = `${entity.id}-${linkType}-${direction}`\n\n linkUpdatesMap.set(linkUpdateKey, {\n rowId: entity.rowId,\n sourceEntityId: entity.id,\n sourceEntityType: entity.type,\n linkType,\n direction: direction as 'in' | 'out',\n targetEntityType,\n operation: method,\n targetEntityIds: Array.isArray(targetEntityIds) ? targetEntityIds : [],\n })\n }\n })\n })\n\n const allLinkUpdates = Array.from(linkUpdatesMap.values())\n\n // Make separate calls to update entities and links\n const updatePromises: Promise<void>[] = []\n\n if (allEntityUpdates.length > 0) {\n updatePromises.push(updateEntities(allEntityUpdates))\n }\n\n if (allLinkUpdates.length > 0) {\n updatePromises.push(pasteTableLinks(allLinkUpdates))\n }\n\n if (updatePromises.length > 0) {\n try {\n await Promise.all(updatePromises)\n } catch (error: any) {\n console.error('Error updating entities:', error)\n clipboardError(`Paste failed: ${error || error?.message || 'Unknown error'}`)\n }\n }\n },\n [\n selectedCells,\n gridMap,\n entitiesMap,\n updateEntities,\n pasteTableLinks,\n columnEnums,\n getEntityById,\n ],\n )\n\n // Set up keyboard event listeners\n useEffect(() => {\n const handleKeyDown = async (e: KeyboardEvent) => {\n // Copy functionality (Ctrl+C or Command+C)\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n copyToClipboard()\n }\n\n // Paste functionality (Ctrl+V or Command+V)\n if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // don't execute paste if focus is inside an input, textarea, or content‐editable element\n const activeEl = document.activeElement as HTMLElement | null\n\n if (\n activeEl &&\n (activeEl.tagName === 'INPUT' ||\n activeEl.tagName === 'TEXTAREA' ||\n activeEl.isContentEditable)\n ) {\n // focus is inside an input, textarea, or content-editable element\n const allEntityIds = await doesClipboardContainId()\n // we might still want to paste if the clipboard contains valid entity IDs\n if (allEntityIds) {\n // prevent pasting into input fields and handle as paste on the cell\n e.preventDefault()\n } else {\n // skip pasting\n return\n }\n }\n pasteFromClipboard(Array.from(selectedCells), {\n method: e.shiftKey ? 'merge' : 'replace', // Use shift key to determine paste method\n })\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [copyToClipboard, pasteFromClipboard])\n\n const value = useMemo(\n () => ({\n copyToClipboard,\n pasteFromClipboard,\n exportCSV,\n }),\n [copyToClipboard, pasteFromClipboard],\n )\n\n return <ClipboardContext.Provider value={value}>{children}</ClipboardContext.Provider>\n}\n\nexport const useClipboard = (): ClipboardContextType => {\n const context = useContext(ClipboardContext)\n if (context === undefined) {\n throw new Error('useClipboard must be used within a ClipboardProvider')\n }\n return context\n}\n"],"names":["colIds","value","_a","jsx"],"mappings":";;;;;;;;;;;;;AA8BA,MAAM,mBAAmB,cAAgD,MAAS;AAE3E,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,EAAE,eAAe,SAAS,cAAA,IAAkB,yBAAyB;AACrE,QAAA,EAAE,eAAe,IAAI,eAAe;AACpC,QAAA,EAAE,gBAAgB,IAAI,cAAc;AAC1C,QAAM,EAAE,eAAe,aAAa,IAAI,uBAAuB;AAE/D,QAAM,mBAAmB;AAAA,IACvB,OAAO,UAAoB,WAAsD;AAC/E,YAAM,EAAE,SAAS,QAAQ,IAAI,UAAU,CAAC;AACpC,UAAA;AAEI,cAAA,iCAAiB,IAAyB;AAGvC,iBAAA,QAAQ,CAAC,WAAW;;AACrB,gBAAA,WAAW,YAAY,MAAM;AACnC,cAAI,CAAC,SAAU;AAET,gBAAA,EAAE,OAAO,MAAA,IAAU;AAGzB,cAAI,UAAU,wBAAyB;AAEvC,cAAI,CAAC,WAAW,IAAI,KAAK,GAAG;AAC1B,uBAAW,IAAI,OAAW,oBAAA,IAAA,CAAK;AAAA,UAAA;AAGjC,2BAAW,IAAI,KAAK,MAApB,mBAAuB,IAAI;AAAA,QAAK,CACjC;AAED,YAAI,SAAS;AACX,gBAAM,eAAe,SAClB;AAAA,YACC,CAAC;;AACC,wCAAY,MAAM,MAAlB,mBAAqB,YACrB,iBAAY,MAAM,MAAlB,mBAAqB,WAAU;AAAA;AAAA,UAAA,EAElC,IAAI,CAAC;;AAAW,qCAAY,MAAM,MAAlB,mBAAqB;AAAA,WAAK;AAIhC,uBAAA,QAAQ,CAAC,UAAU;AAE9B,gBAAI,CAAC,WAAW,IAAI,KAAK,GAAG;AAC1B,yBAAW,IAAI,OAAW,oBAAA,IAAA,CAAK;AAAA,YAAA;AAEjC,kBAAM,aAAa,MAAM,KAAK,QAAQ,aAAa,MAAM;AAC9C,uBAAA,QAAQ,CAAC,UAAU;;AAC5B,+BAAW,IAAI,KAAK,MAApB,mBAAuB,IAAI;AAAA,YAAK,CACjC;AAAA,UAAA,CACF;AAAA,QAAA;AAIG,cAAA,aAAa,MAAM,KAAK,WAAW,KAAM,CAAA,EAAE,KAAK,CAAC,GAAG,MAAM;AAC9D,gBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,gBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,iBAAO,SAAS;AAAA,QAAA,CACjB;AAGD,YAAI,gBAAgB;AAGd,cAAA,aAAa,WAAW,CAAC;AAC3B,YAAA,CAAC,WAAmB,QAAA;AAGxB,cAAM,SAAS,MAAM,KAAK,WAAW,IAAI,UAAU,KAAK,CAAE,CAAA,EAAE,KAAK,CAAC,GAAG,MAAM;AACzE,gBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,gBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,iBAAO,SAAS;AAAA,QAAA,CACjB;AAGG,YAAA,WAAW,OAAO,SAAS,GAAG;AAChC,gBAAM,eAAyB,CAAC;AAEhC,qBAAW,SAAS,QAAQ;AAE1B,kBAAM,aAAa;AACnB,yBAAa,KAAK,GAAG,WAAW,QAAQ,MAAM,IAAI,CAAC,EAAE;AAAA,UAAA;AAGtC,2BAAA,aAAa,KAAK,GAAI,IAAI;AAAA,QAAA;AAG7C,mBAAW,SAAS,YAAY;AAExB,gBAAA,SAAS,cAAc,KAAK;AAElC,cAAI,CAAC,QAAQ;AACH,oBAAA,KAAK,+BAA+B,KAAK,EAAE;AACnD;AAAA,UAAA;AAIF,gBAAMA,UAAS,MAAM,KAAK,WAAW,IAAI,KAAK,KAAK,CAAE,CAAA,EAAE,KAAK,CAAC,GAAG,MAAM;AACpE,kBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,kBAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,mBAAO,SAAS;AAAA,UAAA,CACjB;AAGD,gBAAM,iBAAiBA,QAAO,OAAO,CAAC,UAAU,UAAU,uBAAuB;AAEjF,gBAAM,YAAsB,CAAC;AAG7B,qBAAW,SAAS,gBAAgB;AAElC,gBAAI,YAAY;AAGZ,gBAAA,MAAM,WAAW,OAAO,GAAG;AACjB,0BAAA,2BAA2B,OAAO,OAAO,KAAK;AAAA,YAAA,OACrD;AAED,kBAAA,aAAa,aAAa,QAAQ,KAAK;AAE3C,kBAAI,CAAC,YAAY;AAET,sBAAA,QAAQ,aAAa,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE,CAAC;AAC9E,oBAAI,SAAS,MAAM,KAAK,SAAS,WAAW;AAC7B,+BAAA;AAAA,gBAAA,WACJ,SAAS,MAAM,KAAK,KAAK,SAAS,SAAS,GAAG;AACvD,+BAAa,CAAC;AAAA,gBAAA;AAAA,cAChB;AAIF,0BAAY,eAAe,UAAa,eAAe,OAAO,OAAO,UAAU,IAAI;AAGnF,kBAAI,UAAU,QAAQ;AACpB,4BAAY,cAAc,OAAO,YAAY,OAAO,IAAI,WAAW;AAAA,cAAA;AAGrE,kBAAI,UAAU,WAAW;AAEvB,oBAAI,gBAAgB,QAAQ;AAC1B,8BAAY,OAAO,cAAc;AAAA,gBAAA;AAEnC,oBAAI,cAAc,QAAQ;AACxB,8BAAY,OAAO,YAAY;AAAA,gBAAA;AAAA,cACjC;AAAA,YACF;AAIF,sBAAU,KAAK,GAAG,UAAU,QAAQ,MAAM,IAAI,CAAC,EAAE;AAAA,UAAA;AAIlC,2BAAA,UAAU,KAAK,GAAI,IAAI;AAAA,QAAA;AAGnC,eAAA;AAAA,eACA,OAAO;AACN,gBAAA,MAAM,gCAAgC,KAAK;AAAA,MAAA;AAAA,IAEvD;AAAA,IACA,CAAC,eAAe,eAAe,SAAS,aAAa,aAAa;AAAA,EACpE;AAEA,QAAM,yBAAyB,YAAY;AAEnC,UAAA,gBAAgB,MAAM,mBAAmB;AAC3C,QAAA,CAAC,cAAsB,QAAA;AACrB,UAAA,aAAa,mBAAmB,aAAa;AAC/C,QAAA,WAAW,WAAW,EAAU,QAAA;AAC7B,WAAA,WAAW,MAAM,CAAC,QAAQ;AAC/B,aAAO,IAAI,OAAO,MAAM,CAACC,WAAUA,OAAM,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;AAAA,IAAA,CACtF;AAAA,EACH;AAEA,QAAM,kBAA2D;AAAA,IAC/D,OAAO,UAAU,YAAY;AAChB,iBAAA,YAAY,MAAM,KAAK,aAAa;AAC3C,UAAA,CAAC,SAAS,OAAQ;AACtB,YAAM,gBAAgB,MAAM,iBAAiB,UAAU,EAAE,SAAS;AAClE,UAAI,CAAC,eAAe;AAClB;AAAA,MAAA;AAEE,UAAA,CAAC,UAAU,WAAW;AACxB,uBAAe,8CAA8C;AAC7D;AAAA,MAAA;AAEE,UAAA,CAAC,OAAO,iBAAiB;AAC3B,uBAAe,sDAAsD;AACrE;AAAA,MAAA;AAEE,UAAA;AACI,cAAA,UAAU,UAAU,UAAU,aAAa;AACzC,gBAAA,IAAI,oCAAoC,aAAa;AAAA,eACtD,OAAY;AACJ,uBAAA,gCAAgC,MAAM,OAAO,EAAE;AAAA,MAAA;AAAA,IAElE;AAAA,IACA,CAAC,eAAe,aAAa,OAAO;AAAA,EACtC;AAEA,QAAM,YAA+C;AAAA,IACnD,OAAO,UAAU,aAAa,YAAY;AAC7B,iBAAA,YAAY,MAAM,KAAK,aAAa;AAC3C,UAAA,CAAC,SAAS,OAAQ;AAElB,UAAA;AAEI,cAAA,gBAAgB,MAAM,iBAAiB,UAAU,EAAE,SAAS,MAAM,SAAS;AACjF,YAAI,CAAC,cAAe;AAGd,cAAA,OAAO,IAAI,KAAK,CAAC,aAAa,GAAG,EAAE,MAAM,YAAY;AACrD,cAAA,MAAM,IAAI,gBAAgB,IAAI;AAC9B,cAAA,IAAI,SAAS,cAAc,GAAG;AACpC,UAAE,OAAO;AACT,cAAM,gBAAgB,SAAS;AAC/B,UAAE,WAAW,GAAG,WAAW,WAAW,aAAa,WAAU,oBAAI,KAAK,GACnE,YAAY,EACZ,MAAM,GAAG,EAAE,CAAC;AACf,UAAE,MAAM;AACR,YAAI,gBAAgB,GAAG;AAAA,eAChB,OAAO;AACN,gBAAA,MAAM,gCAAgC,KAAK;AAAA,MAAA;AAAA,IAEvD;AAAA,IACA,CAAC,eAAe,aAAa,SAAS,gBAAgB;AAAA,EACxD;AAEA,QAAM,qBAAqB,YAAoC;AACzD,QAAA,CAAC,UAAU,WAAW;AACxB,qBAAe,8CAA8C;AAC7D;AAAA,IAAA;AAEE,QAAA,CAAC,OAAO,iBAAiB;AAC3B,qBAAe,sDAAsD;AACrE;AAAA,IAAA;AAEE,QAAA;AACA,QAAA;AACc,sBAAA,MAAM,UAAU,UAAU,SAAS;AAC5C,aAAA;AAAA,aACA,OAAY;AACJ,qBAAA,kCAAkC,MAAM,OAAO,EAAE;AAChE;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,qBAAiE;AAAA,IACrE,OAAO,UAAU,WAAW;;AAC1B,YAAM,EAAE,SAAS,UAAU,IAAI,UAAU,CAAC;AACtC,UAAA,CAAC,SAAS,OAAQ;AAEhB,YAAA,gBAAgB,MAAM,mBAAmB;AAC/C,UAAI,CAAC,cAAe;AAGd,YAAA,aAAa,mBAAmB,aAAa;AAC/C,UAAA,CAAC,WAAW,OAAQ;AAGlB,YAAA,oBAAoB,WAAW,WAAW,KAAK,WAAW,CAAC,EAAE,OAAO,WAAW;AAG/E,YAAA,iCAAiB,IAAyB;AAGhD,YAAM,KAAK,QAAQ,EAAE,QAAQ,CAAC,WAAW;;AACjC,cAAA,WAAW,YAAY,MAAM;AACnC,YAAI,CAAC,SAAU;AAET,cAAA,EAAE,OAAO,MAAA,IAAU;AAEzB,YAAI,CAAC,WAAW,IAAI,KAAK,GAAG;AAC1B,qBAAW,IAAI,OAAW,oBAAA,IAAA,CAAK;AAAA,QAAA;AAEjC,SAAAC,MAAA,WAAW,IAAI,KAAK,MAApB,gBAAAA,IAAuB,IAAI;AAAA,MAAK,CACjC;AAGK,YAAA,aAAa,MAAM,KAAK,WAAW,KAAM,CAAA,EAAE,KAAK,CAAC,GAAG,MAAM;AAC9D,cAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,cAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,eAAO,SAAS;AAAA,MAAA,CACjB;AAGK,YAAA,WAAW,WAAW,CAAC;AAC7B,YAAM,iBAAiB,MAAM,KAAK,WAAW,IAAI,QAAQ,KAAK,CAAE,CAAA,EAAE,KAAK,CAAC,GAAG,MAAM;AAC/E,cAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,cAAM,SAAS,QAAQ,aAAa,IAAI,CAAC,KAAK;AAC9C,eAAO,SAAS;AAAA,MAAA,CACjB;AAGD,eAAS,WAAW,GAAG,WAAW,eAAe,QAAQ,YAAY;AAC7D,cAAA,QAAQ,eAAe,QAAQ;AAErC,iBAAS,WAAW,GAAG,WAAW,WAAW,QAAQ,YAAY;AACzD,gBAAA,QAAQ,WAAW,QAAQ;AACjC,gBAAM,aAAW,uBAA4B,OAAO,WAAW,MAA9C,mBAAiD,gBAAe;AAK7E,cAAA;AACJ,cAAI,mBAAmB;AACrB,yBAAa,WAAW,CAAC,EAAE,OAAO,CAAC;AAAA,UAAA,OAC9B;AACC,kBAAA,gBAAgB,WAAW,WAAW;AAC5C,kBAAM,gBAAgB,WAAW,WAAW,aAAa,EAAE,OAAO;AAClE,yBAAa,WAAW,aAAa,EAAE,OAAO,aAAa;AAAA,UAAA;AAI7D,gBAAM,UAAU,sBAAsB;AAAA,YACpC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AAED,cAAI,CAAC,QAAS;AAAA,QAAA;AAAA,MAChB;AAII,YAAA,0CAA0B,IAU9B;AAGF,eAAS,WAAW,GAAG,WAAW,eAAe,QAAQ,YAAY;AAC7D,cAAA,QAAQ,eAAe,QAAQ;AAGrC,YAAI,UAAU,OAAQ;AAGlB,YAAA,WAAW,OACb,SAAS;AAEX,YAAI,iBAA4D;AAE5D,YAAA,WAAW,SAAS,GAAG;AACnB,gBAAA,aAAa,WAAW,CAAC;AACzB,gBAAA,SAAS,cAAc,UAAU;AACvC,cAAI,QAAQ;AACC,uBAAA,MAAM,WAAW,SAAS;AAC5B,qBAAA,MAAM,WAAW,OAAO;AAI3B,kBAAA,aAAa,aAAa,QAAQ,KAAK;AAC7C,gBAAI,MAAM,QAAQ,UAAU,KAAK,QAAQ;AACtB,+BAAA;AAAA,YAAA,WACR,OAAO,eAAe,UAAU;AACxB,+BAAA;AAAA,YAAA,WACR,OAAO,eAAe,WAAW;AACzB,+BAAA;AAAA,YAAA;AAInB,gBAAI,UAAU,WAAW;AACZ,yBAAA;AAAA,YAAA;AAAA,UACb;AAAA,QACF;AAIF,iBAAS,WAAW,GAAG,WAAW,WAAW,QAAQ,YAAY;AACzD,gBAAA,QAAQ,WAAW,QAAQ;AACjC,gBAAM,cAAa,uBAAkB,OAAO,WAAW,MAApC,mBAAuC;AAC1D,gBAAM,WAAW,eAAe;AAG5B,cAAA;AACJ,cAAI,mBAAmB;AACrB,yBAAa,WAAW,CAAC,EAAE,OAAO,CAAC;AAAA,UAAA,OAC9B;AACC,kBAAA,gBAAgB,WAAW,WAAW;AAC5C,kBAAM,gBAAgB,WAAW,WAAW,aAAa,EAAE,OAAO;AAClE,yBAAa,WAAW,aAAa,EAAE,OAAO,aAAa;AAAA,UAAA;AAG7D,cAAI,gBAAgB,MAAM,MAAM,GAAG,EAAE,SAAS;AAG9C,cAAI,UAAU,WAAW;AACvB,4BAAgB,WAAW,eAAe;AAC/B,uBAAA;AAGX,gBAAI,CAAC,WAAY;AAAA,UAAA;AAIb,gBAAA,iBAAiB,kBAAkB,YAAY,cAAc;AAGnE,gBAAM,YAAY,GAAG,KAAK,IAAI,UAAU;AACxC,cAAI,CAAC,oBAAoB,IAAI,SAAS,KAAK,YAAY;AACrD,gCAAoB,IAAI,WAAW;AAAA,cACjC;AAAA,cACA,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,QAAQ,CAAC;AAAA,cACT,QAAQ,CAAC;AAAA,cACT,OAAO,CAAA;AAAA,YAAC,CACT;AAAA,UAAA;AAGG,gBAAA,aAAa,oBAAoB,IAAI,SAAS;AAGpD,cAAI,QAAQ;AACJ,kBAAA,CAAC,OAAO,UAAU,QAAQ,SAAS,SAAS,IAAI,MAAM,MAAM,GAAG;AAE1D,uBAAA,MAAM,GAAG,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,SAAS,EAAE,IAAI;AAAA,qBAC3D,UAAU;AACR,uBAAA,OAAO,aAAa,IAAI;AAAA,UAAA,OAC9B;AACM,uBAAA,OAAO,aAAa,IAAI;AAAA,UAAA;AAAA,QACrC;AAAA,MACF;AAIF,YAAM,mBAAmC,CAAC;AACpC,YAAA,qCAAqB,IAAwB;AAE/B,0BAAA,QAAQ,CAAC,WAAW;AAE/B,eAAA,QAAQ,OAAO,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAOD,MAAK,MAAM;AACxD,2BAAiB,KAAK;AAAA,YACpB,OAAO,OAAO;AAAA,YACd,IAAI,OAAO;AAAA,YACX,MAAM,OAAO;AAAA,YACb;AAAA,YACA,OAAAA;AAAAA,UAAA,CACD;AAAA,QAAA,CACF;AAGM,eAAA,QAAQ,OAAO,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAOA,MAAK,MAAM;AACxD,2BAAiB,KAAK;AAAA,YACpB,OAAO,OAAO;AAAA,YACd,IAAI,OAAO;AAAA,YACX,MAAM,OAAO;AAAA,YACb;AAAA,YACA,OAAAA;AAAAA,YACA,UAAU;AAAA,UAAA,CACX;AAAA,QAAA,CACF;AAGM,eAAA,QAAQ,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,eAAe,MAAM;AAEnE,gBAAM,CAAC,cAAc,SAAS,IAAI,QAAQ,MAAM,GAAG;AAC7C,gBAAA,gBAAgB,aAAa,MAAM,GAAG;AAExC,cAAA,cAAc,UAAU,GAAG;AACvB,kBAAA,eAAe,cAAc,CAAC;AAC9B,kBAAA,SAAS,cAAc,CAAC;AACxB,kBAAA,UAAU,cAAc,CAAC;AAG/B,kBAAM,WAAW,GAAG,YAAY,IAAI,MAAM,IAAI,OAAO;AAG/C,kBAAA,mBAAmB,cAAc,QAAQ,UAAU;AAGzD,kBAAM,gBAAgB,GAAG,OAAO,EAAE,IAAI,QAAQ,IAAI,SAAS;AAE3D,2BAAe,IAAI,eAAe;AAAA,cAChC,OAAO,OAAO;AAAA,cACd,gBAAgB,OAAO;AAAA,cACvB,kBAAkB,OAAO;AAAA,cACzB;AAAA,cACA;AAAA,cACA;AAAA,cACA,WAAW;AAAA,cACX,iBAAiB,MAAM,QAAQ,eAAe,IAAI,kBAAkB,CAAA;AAAA,YAAC,CACtE;AAAA,UAAA;AAAA,QACH,CACD;AAAA,MAAA,CACF;AAED,YAAM,iBAAiB,MAAM,KAAK,eAAe,QAAQ;AAGzD,YAAM,iBAAkC,CAAC;AAErC,UAAA,iBAAiB,SAAS,GAAG;AAChB,uBAAA,KAAK,eAAe,gBAAgB,CAAC;AAAA,MAAA;AAGlD,UAAA,eAAe,SAAS,GAAG;AACd,uBAAA,KAAK,gBAAgB,cAAc,CAAC;AAAA,MAAA;AAGjD,UAAA,eAAe,SAAS,GAAG;AACzB,YAAA;AACI,gBAAA,QAAQ,IAAI,cAAc;AAAA,iBACzB,OAAY;AACX,kBAAA,MAAM,4BAA4B,KAAK;AAC/C,yBAAe,iBAAiB,UAAS,+BAAO,YAAW,eAAe,EAAE;AAAA,QAAA;AAAA,MAC9E;AAAA,IAEJ;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAGA,YAAU,MAAM;AACR,UAAA,gBAAgB,OAAO,MAAqB;AAEhD,WAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,KAAK;AAC7B,wBAAA;AAAA,MAAA;AAIlB,WAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,KAAK;AAE7C,cAAM,WAAW,SAAS;AAGxB,YAAA,aACC,SAAS,YAAY,WACpB,SAAS,YAAY,cACrB,SAAS,oBACX;AAEM,gBAAA,eAAe,MAAM,uBAAuB;AAElD,cAAI,cAAc;AAEhB,cAAE,eAAe;AAAA,UAAA,OACZ;AAEL;AAAA,UAAA;AAAA,QACF;AAEiB,2BAAA,MAAM,KAAK,aAAa,GAAG;AAAA,UAC5C,QAAQ,EAAE,WAAW,UAAU;AAAA;AAAA,QAAA,CAChC;AAAA,MAAA;AAAA,IAEL;AAEO,WAAA,iBAAiB,WAAW,aAAa;AAChD,WAAO,MAAM;AACJ,aAAA,oBAAoB,WAAW,aAAa;AAAA,IACrD;AAAA,EAAA,GACC,CAAC,iBAAiB,kBAAkB,CAAC;AAExC,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,CAAC,iBAAiB,kBAAkB;AAAA,EACtC;AAEA,SAAQE,kCAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAA4B;AAChD,QAAA,UAAU,WAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
4
+ const React = require("react");
5
+ const DetailsPanelEntityContext = React.createContext(
6
+ void 0
7
+ );
8
+ const DetailsPanelEntityProvider = ({ children }) => {
9
+ const [selectedEntity, setSelectedEntityState] = React.useState(null);
10
+ const setSelectedEntity = React.useCallback((entity) => {
11
+ setSelectedEntityState(entity);
12
+ }, []);
13
+ const clearSelectedEntity = React.useCallback(() => {
14
+ setSelectedEntityState(null);
15
+ }, []);
16
+ const value = {
17
+ selectedEntity,
18
+ setSelectedEntity,
19
+ clearSelectedEntity
20
+ };
21
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(DetailsPanelEntityContext.Provider, { value, children });
22
+ };
23
+ const useDetailsPanelEntityContext = () => {
24
+ const context = React.useContext(DetailsPanelEntityContext);
25
+ if (!context) {
26
+ throw new Error("useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider");
27
+ }
28
+ return context;
29
+ };
30
+ exports.DetailsPanelEntityContext = DetailsPanelEntityContext;
31
+ exports.DetailsPanelEntityProvider = DetailsPanelEntityProvider;
32
+ exports.useDetailsPanelEntityContext = useDetailsPanelEntityContext;
33
+ //# sourceMappingURL=DetailsPanelEntityContext.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsPanelEntityContext.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.tsx"],"sourcesContent":["import { createContext, useContext, useState, useCallback, ReactNode } from 'react'\n\nexport interface DetailsPanelEntity {\n entityId: string\n entityType: 'folder' | 'task'\n}\n\nexport interface DetailsPanelEntityContextType {\n selectedEntity: DetailsPanelEntity | null\n setSelectedEntity: (entity: DetailsPanelEntity | null) => void\n clearSelectedEntity: () => void\n}\n\nexport const DetailsPanelEntityContext = createContext<DetailsPanelEntityContextType | undefined>(\n undefined,\n)\n\nexport interface DetailsPanelEntityProviderProps {\n children: ReactNode\n}\n\nexport const DetailsPanelEntityProvider = ({ children }: DetailsPanelEntityProviderProps) => {\n const [selectedEntity, setSelectedEntityState] = useState<DetailsPanelEntity | null>(null)\n\n const setSelectedEntity = useCallback((entity: DetailsPanelEntity | null) => {\n setSelectedEntityState(entity)\n }, [])\n\n const clearSelectedEntity = useCallback(() => {\n setSelectedEntityState(null)\n }, [])\n\n const value = {\n selectedEntity,\n setSelectedEntity,\n clearSelectedEntity,\n }\n\n return (\n <DetailsPanelEntityContext.Provider value={value}>\n {children}\n </DetailsPanelEntityContext.Provider>\n )\n}\n\nexport const useDetailsPanelEntityContext = () => {\n const context = useContext(DetailsPanelEntityContext)\n if (!context) {\n throw new Error('useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useCallback","jsx","useContext"],"mappings":";;;;AAaO,MAAM,4BAA4BA,MAAA;AAAA,EACvC;AACF;AAMO,MAAM,6BAA6B,CAAC,EAAE,eAAgD;AAC3F,QAAM,CAAC,gBAAgB,sBAAsB,IAAIC,MAAAA,SAAoC,IAAI;AAEnF,QAAA,oBAAoBC,kBAAY,CAAC,WAAsC;AAC3E,2BAAuB,MAAM;AAAA,EAC/B,GAAG,EAAE;AAEC,QAAA,sBAAsBA,MAAAA,YAAY,MAAM;AAC5C,2BAAuB,IAAI;AAAA,EAC7B,GAAG,EAAE;AAEL,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACGC,2BAAAA,kBAAAA,IAAA,0BAA0B,UAA1B,EAAmC,OACjC,SACH,CAAA;AAEJ;AAEO,MAAM,+BAA+B,MAAM;AAC1C,QAAA,UAAUC,iBAAW,yBAAyB;AACpD,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,+EAA+E;AAAA,EAAA;AAE1F,SAAA;AACT;;;;"}
@@ -0,0 +1,33 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { createContext, useState, useCallback, useContext } from "react";
3
+ const DetailsPanelEntityContext = createContext(
4
+ void 0
5
+ );
6
+ const DetailsPanelEntityProvider = ({ children }) => {
7
+ const [selectedEntity, setSelectedEntityState] = useState(null);
8
+ const setSelectedEntity = useCallback((entity) => {
9
+ setSelectedEntityState(entity);
10
+ }, []);
11
+ const clearSelectedEntity = useCallback(() => {
12
+ setSelectedEntityState(null);
13
+ }, []);
14
+ const value = {
15
+ selectedEntity,
16
+ setSelectedEntity,
17
+ clearSelectedEntity
18
+ };
19
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(DetailsPanelEntityContext.Provider, { value, children });
20
+ };
21
+ const useDetailsPanelEntityContext = () => {
22
+ const context = useContext(DetailsPanelEntityContext);
23
+ if (!context) {
24
+ throw new Error("useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider");
25
+ }
26
+ return context;
27
+ };
28
+ export {
29
+ DetailsPanelEntityContext,
30
+ DetailsPanelEntityProvider,
31
+ useDetailsPanelEntityContext
32
+ };
33
+ //# sourceMappingURL=DetailsPanelEntityContext.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsPanelEntityContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/DetailsPanelEntityContext.tsx"],"sourcesContent":["import { createContext, useContext, useState, useCallback, ReactNode } from 'react'\n\nexport interface DetailsPanelEntity {\n entityId: string\n entityType: 'folder' | 'task'\n}\n\nexport interface DetailsPanelEntityContextType {\n selectedEntity: DetailsPanelEntity | null\n setSelectedEntity: (entity: DetailsPanelEntity | null) => void\n clearSelectedEntity: () => void\n}\n\nexport const DetailsPanelEntityContext = createContext<DetailsPanelEntityContextType | undefined>(\n undefined,\n)\n\nexport interface DetailsPanelEntityProviderProps {\n children: ReactNode\n}\n\nexport const DetailsPanelEntityProvider = ({ children }: DetailsPanelEntityProviderProps) => {\n const [selectedEntity, setSelectedEntityState] = useState<DetailsPanelEntity | null>(null)\n\n const setSelectedEntity = useCallback((entity: DetailsPanelEntity | null) => {\n setSelectedEntityState(entity)\n }, [])\n\n const clearSelectedEntity = useCallback(() => {\n setSelectedEntityState(null)\n }, [])\n\n const value = {\n selectedEntity,\n setSelectedEntity,\n clearSelectedEntity,\n }\n\n return (\n <DetailsPanelEntityContext.Provider value={value}>\n {children}\n </DetailsPanelEntityContext.Provider>\n )\n}\n\nexport const useDetailsPanelEntityContext = () => {\n const context = useContext(DetailsPanelEntityContext)\n if (!context) {\n throw new Error('useDetailsPanelEntityContext must be used within a DetailsPanelEntityProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;AAaO,MAAM,4BAA4B;AAAA,EACvC;AACF;AAMO,MAAM,6BAA6B,CAAC,EAAE,eAAgD;AAC3F,QAAM,CAAC,gBAAgB,sBAAsB,IAAI,SAAoC,IAAI;AAEnF,QAAA,oBAAoB,YAAY,CAAC,WAAsC;AAC3E,2BAAuB,MAAM;AAAA,EAC/B,GAAG,EAAE;AAEC,QAAA,sBAAsB,YAAY,MAAM;AAC5C,2BAAuB,IAAI;AAAA,EAC7B,GAAG,EAAE;AAEL,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACGA,kCAAAA,IAAA,0BAA0B,UAA1B,EAAmC,OACjC,SACH,CAAA;AAEJ;AAEO,MAAM,+BAA+B,MAAM;AAC1C,QAAA,UAAU,WAAW,yBAAyB;AACpD,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,+EAA+E;AAAA,EAAA;AAE1F,SAAA;AACT;"}
@@ -4,6 +4,7 @@ const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
4
4
  const React = require("react");
5
5
  require("../../../api/base/client.cjs.js");
6
6
  require("../../../api/generated/graphql.cjs.js");
7
+ require("../../../api/generated/graphqlLinks.cjs.js");
7
8
  require("../../../api/generated/access.cjs.js");
8
9
  require("../../../api/generated/actions.cjs.js");
9
10
  require("../../../api/generated/activityFeed.cjs.js");
@@ -59,6 +60,9 @@ require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
59
60
  require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
60
61
  require("../../../api/queries/folders/getFolders.cjs.js");
61
62
  require("../../../api/queries/grouping/getGrouping.cjs.js");
63
+ require("../../../api/queries/links/updateLinks.cjs.js");
64
+ require("../../../api/queries/links/getLinks.cjs.js");
65
+ require("../../../api/queries/links/getEntityLinks.cjs.js");
62
66
  require("../../../api/queries/overview/getOverview.cjs.js");
63
67
  require("../../../api/queries/overview/updateOverview.cjs.js");
64
68
  require("../../../api/queries/permissions/getPermissions.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDataContext.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectDataContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react'\nimport { useGetUsersAssigneeQuery, useGetProjectQuery } from '@shared/api'\nimport type { ProjectModel } from '@shared/api'\nimport useAttributeFields, { ProjectTableAttribute } from '../hooks/useAttributesList'\n\ntype User = {\n name: string\n fullName: string\n}\n\nexport interface ProjectDataContextProps {\n isInitialized: boolean\n isLoading: boolean\n // Project Info\n projectInfo?: ProjectModel\n projectName: string\n users: User[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n}\n\nconst ProjectDataContext = createContext<ProjectDataContextProps | undefined>(undefined)\n\ninterface ProjectDataProviderProps {\n children: ReactNode\n projectName: string\n}\n\nexport const ProjectDataProvider = ({ children, projectName }: ProjectDataProviderProps) => {\n // GET PROJECT DATA\n const {\n data: projectInfo,\n isSuccess: isSuccessProject,\n isFetching: isFetchingProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n\n const {\n attribFields,\n isSuccess: isSuccessAttribs,\n isFetching: isFetchingAttribs,\n } = useAttributeFields({ projectName })\n\n // GET USERS\n const { data: usersData = [] } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n const users = usersData as User[]\n\n const isInitialized =\n isSuccessProject && isSuccessAttribs && !isFetchingProject && !isFetchingAttribs\n\n const value = useMemo(\n () => ({\n isInitialized,\n isLoading: isFetchingProject || isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n }),\n [\n isInitialized,\n isFetchingProject,\n isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n ],\n )\n\n return <ProjectDataContext.Provider value={value}>{children}</ProjectDataContext.Provider>\n}\n\nexport const useProjectDataContext = () => {\n const context = useContext(ProjectDataContext)\n if (!context) {\n throw new Error('useProjectDataContext must be used within a ProjectDataProvider')\n }\n return context\n}\n"],"names":["createContext","useGetProjectQuery","useAttributeFields","useGetUsersAssigneeQuery","useMemo","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,qBAAqBA,oBAAmD,MAAS;AAOhF,MAAM,sBAAsB,CAAC,EAAE,UAAU,kBAA4C;AAEpF,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACVC,WAAAA,mBAAmB,EAAE,YAAA,GAAe,EAAE,MAAM,CAAC,aAAa;AAExD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACVC,kBAAmB,EAAE,aAAa;AAGtC,QAAM,EAAE,MAAM,YAAY,CAAA,MAAOC,SAAAA,yBAAyB,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa;AACjG,QAAM,QAAQ;AAEd,QAAM,gBACJ,oBAAoB,oBAAoB,CAAC,qBAAqB,CAAC;AAEjE,QAAM,QAAQC,MAAA;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,WAAW,qBAAqB;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAQC,2BAAAA,kBAAAA,IAAA,mBAAmB,UAAnB,EAA4B,OAAe,SAAS,CAAA;AAC9D;AAEO,MAAM,wBAAwB,MAAM;AACnC,QAAA,UAAUC,iBAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,iEAAiE;AAAA,EAAA;AAE5E,SAAA;AACT;;;"}
1
+ {"version":3,"file":"ProjectDataContext.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectDataContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react'\nimport { useGetUsersAssigneeQuery, useGetProjectQuery } from '@shared/api'\nimport type { ProjectModel } from '@shared/api'\nimport useAttributeFields, { ProjectTableAttribute } from '../hooks/useAttributesList'\n\ntype User = {\n name: string\n fullName: string\n}\n\nexport interface ProjectDataContextProps {\n isInitialized: boolean\n isLoading: boolean\n // Project Info\n projectInfo?: ProjectModel\n projectName: string\n users: User[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n}\n\nconst ProjectDataContext = createContext<ProjectDataContextProps | undefined>(undefined)\n\ninterface ProjectDataProviderProps {\n children: ReactNode\n projectName: string\n}\n\nexport const ProjectDataProvider = ({ children, projectName }: ProjectDataProviderProps) => {\n // GET PROJECT DATA\n const {\n data: projectInfo,\n isSuccess: isSuccessProject,\n isFetching: isFetchingProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n\n const {\n attribFields,\n isSuccess: isSuccessAttribs,\n isFetching: isFetchingAttribs,\n } = useAttributeFields({ projectName })\n\n // GET USERS\n const { data: usersData = [] } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n const users = usersData as User[]\n\n const isInitialized =\n isSuccessProject && isSuccessAttribs && !isFetchingProject && !isFetchingAttribs\n\n const value = useMemo(\n () => ({\n isInitialized,\n isLoading: isFetchingProject || isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n }),\n [\n isInitialized,\n isFetchingProject,\n isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n ],\n )\n\n return <ProjectDataContext.Provider value={value}>{children}</ProjectDataContext.Provider>\n}\n\nexport const useProjectDataContext = () => {\n const context = useContext(ProjectDataContext)\n if (!context) {\n throw new Error('useProjectDataContext must be used within a ProjectDataProvider')\n }\n return context\n}\n"],"names":["createContext","useGetProjectQuery","useAttributeFields","useGetUsersAssigneeQuery","useMemo","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,qBAAqBA,oBAAmD,MAAS;AAOhF,MAAM,sBAAsB,CAAC,EAAE,UAAU,kBAA4C;AAEpF,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACVC,WAAAA,mBAAmB,EAAE,YAAA,GAAe,EAAE,MAAM,CAAC,aAAa;AAExD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACVC,kBAAmB,EAAE,aAAa;AAGtC,QAAM,EAAE,MAAM,YAAY,CAAA,MAAOC,SAAAA,yBAAyB,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa;AACjG,QAAM,QAAQ;AAEd,QAAM,gBACJ,oBAAoB,oBAAoB,CAAC,qBAAqB,CAAC;AAEjE,QAAM,QAAQC,MAAA;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,WAAW,qBAAqB;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAQC,2BAAAA,kBAAAA,IAAA,mBAAmB,UAAnB,EAA4B,OAAe,SAAS,CAAA;AAC9D;AAEO,MAAM,wBAAwB,MAAM;AACnC,QAAA,UAAUC,iBAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,iEAAiE;AAAA,EAAA;AAE5E,SAAA;AACT;;;"}
@@ -2,6 +2,7 @@ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.j
2
2
  import { createContext, useMemo, useContext } from "react";
3
3
  import "../../../api/base/client.es.js";
4
4
  import "../../../api/generated/graphql.es.js";
5
+ import "../../../api/generated/graphqlLinks.es.js";
5
6
  import "../../../api/generated/access.es.js";
6
7
  import "../../../api/generated/actions.es.js";
7
8
  import "../../../api/generated/activityFeed.es.js";
@@ -57,6 +58,9 @@ import "../../../api/queries/entityLists/getListsAttributes.es.js";
57
58
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
58
59
  import "../../../api/queries/folders/getFolders.es.js";
59
60
  import "../../../api/queries/grouping/getGrouping.es.js";
61
+ import "../../../api/queries/links/updateLinks.es.js";
62
+ import "../../../api/queries/links/getLinks.es.js";
63
+ import "../../../api/queries/links/getEntityLinks.es.js";
60
64
  import "../../../api/queries/overview/getOverview.es.js";
61
65
  import "../../../api/queries/overview/updateOverview.es.js";
62
66
  import "../../../api/queries/permissions/getPermissions.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDataContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectDataContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react'\nimport { useGetUsersAssigneeQuery, useGetProjectQuery } from '@shared/api'\nimport type { ProjectModel } from '@shared/api'\nimport useAttributeFields, { ProjectTableAttribute } from '../hooks/useAttributesList'\n\ntype User = {\n name: string\n fullName: string\n}\n\nexport interface ProjectDataContextProps {\n isInitialized: boolean\n isLoading: boolean\n // Project Info\n projectInfo?: ProjectModel\n projectName: string\n users: User[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n}\n\nconst ProjectDataContext = createContext<ProjectDataContextProps | undefined>(undefined)\n\ninterface ProjectDataProviderProps {\n children: ReactNode\n projectName: string\n}\n\nexport const ProjectDataProvider = ({ children, projectName }: ProjectDataProviderProps) => {\n // GET PROJECT DATA\n const {\n data: projectInfo,\n isSuccess: isSuccessProject,\n isFetching: isFetchingProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n\n const {\n attribFields,\n isSuccess: isSuccessAttribs,\n isFetching: isFetchingAttribs,\n } = useAttributeFields({ projectName })\n\n // GET USERS\n const { data: usersData = [] } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n const users = usersData as User[]\n\n const isInitialized =\n isSuccessProject && isSuccessAttribs && !isFetchingProject && !isFetchingAttribs\n\n const value = useMemo(\n () => ({\n isInitialized,\n isLoading: isFetchingProject || isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n }),\n [\n isInitialized,\n isFetchingProject,\n isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n ],\n )\n\n return <ProjectDataContext.Provider value={value}>{children}</ProjectDataContext.Provider>\n}\n\nexport const useProjectDataContext = () => {\n const context = useContext(ProjectDataContext)\n if (!context) {\n throw new Error('useProjectDataContext must be used within a ProjectDataProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,qBAAqB,cAAmD,MAAS;AAOhF,MAAM,sBAAsB,CAAC,EAAE,UAAU,kBAA4C;AAEpF,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACV,mBAAmB,EAAE,YAAA,GAAe,EAAE,MAAM,CAAC,aAAa;AAExD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACV,mBAAmB,EAAE,aAAa;AAGtC,QAAM,EAAE,MAAM,YAAY,CAAA,MAAO,yBAAyB,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa;AACjG,QAAM,QAAQ;AAEd,QAAM,gBACJ,oBAAoB,oBAAoB,CAAC,qBAAqB,CAAC;AAEjE,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,WAAW,qBAAqB;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAQA,kCAAAA,IAAA,mBAAmB,UAAnB,EAA4B,OAAe,SAAS,CAAA;AAC9D;AAEO,MAAM,wBAAwB,MAAM;AACnC,QAAA,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,iEAAiE;AAAA,EAAA;AAE5E,SAAA;AACT;"}
1
+ {"version":3,"file":"ProjectDataContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectDataContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react'\nimport { useGetUsersAssigneeQuery, useGetProjectQuery } from '@shared/api'\nimport type { ProjectModel } from '@shared/api'\nimport useAttributeFields, { ProjectTableAttribute } from '../hooks/useAttributesList'\n\ntype User = {\n name: string\n fullName: string\n}\n\nexport interface ProjectDataContextProps {\n isInitialized: boolean\n isLoading: boolean\n // Project Info\n projectInfo?: ProjectModel\n projectName: string\n users: User[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n}\n\nconst ProjectDataContext = createContext<ProjectDataContextProps | undefined>(undefined)\n\ninterface ProjectDataProviderProps {\n children: ReactNode\n projectName: string\n}\n\nexport const ProjectDataProvider = ({ children, projectName }: ProjectDataProviderProps) => {\n // GET PROJECT DATA\n const {\n data: projectInfo,\n isSuccess: isSuccessProject,\n isFetching: isFetchingProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n\n const {\n attribFields,\n isSuccess: isSuccessAttribs,\n isFetching: isFetchingAttribs,\n } = useAttributeFields({ projectName })\n\n // GET USERS\n const { data: usersData = [] } = useGetUsersAssigneeQuery({ projectName }, { skip: !projectName })\n const users = usersData as User[]\n\n const isInitialized =\n isSuccessProject && isSuccessAttribs && !isFetchingProject && !isFetchingAttribs\n\n const value = useMemo(\n () => ({\n isInitialized,\n isLoading: isFetchingProject || isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n }),\n [\n isInitialized,\n isFetchingProject,\n isFetchingAttribs,\n projectInfo,\n projectName,\n users,\n attribFields,\n ],\n )\n\n return <ProjectDataContext.Provider value={value}>{children}</ProjectDataContext.Provider>\n}\n\nexport const useProjectDataContext = () => {\n const context = useContext(ProjectDataContext)\n if (!context) {\n throw new Error('useProjectDataContext must be used within a ProjectDataProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,qBAAqB,cAAmD,MAAS;AAOhF,MAAM,sBAAsB,CAAC,EAAE,UAAU,kBAA4C;AAEpF,QAAA;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACV,mBAAmB,EAAE,YAAA,GAAe,EAAE,MAAM,CAAC,aAAa;AAExD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EAAA,IACV,mBAAmB,EAAE,aAAa;AAGtC,QAAM,EAAE,MAAM,YAAY,CAAA,MAAO,yBAAyB,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa;AACjG,QAAM,QAAQ;AAEd,QAAM,gBACJ,oBAAoB,oBAAoB,CAAC,qBAAqB,CAAC;AAEjE,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,WAAW,qBAAqB;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAQA,kCAAAA,IAAA,mBAAmB,UAAnB,EAA4B,OAAe,SAAS,CAAA;AAC9D;AAEO,MAAM,wBAAwB,MAAM;AACnC,QAAA,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,iEAAiE;AAAA,EAAA;AAE5E,SAAA;AACT;"}
@@ -5,8 +5,16 @@ const React = require("react");
5
5
  const SelectionCellsContext = require("./SelectionCellsContext.cjs.js");
6
6
  const cellUtils = require("../utils/cellUtils.cjs.js");
7
7
  const SelectedRowsContext = require("./SelectedRowsContext.cjs.js");
8
+ const DetailsPanelEntityContext = require("./DetailsPanelEntityContext.cjs.js");
8
9
  const SelectedRowsProvider = ({ children }) => {
9
10
  const { selectedCells, gridMap, setSelectedCells, setFocusedCellId, setAnchorCell } = SelectionCellsContext.useSelectionCellsContext();
11
+ let clearSelectedEntity;
12
+ try {
13
+ const entityContext = DetailsPanelEntityContext.useDetailsPanelEntityContext();
14
+ clearSelectedEntity = entityContext.clearSelectedEntity;
15
+ } catch {
16
+ clearSelectedEntity = void 0;
17
+ }
10
18
  const prevSelectedRowsRef = React.useRef([]);
11
19
  const currentSelectedRows = React.useMemo(
12
20
  () => Array.from(selectedCells).filter(
@@ -30,6 +38,11 @@ const SelectedRowsProvider = ({ children }) => {
30
38
  }
31
39
  return prevSelectedRowsRef.current;
32
40
  }, [currentSelectedRows]);
41
+ React.useEffect(() => {
42
+ if (selectedRows.length > 0 && clearSelectedEntity) {
43
+ clearSelectedEntity();
44
+ }
45
+ }, [selectedRows.length, clearSelectedEntity]);
33
46
  const selectAllRows = React.useCallback(() => {
34
47
  const allRowIds = Array.from(gridMap.rowIdToIndex.keys());
35
48
  const newSelection = /* @__PURE__ */ new Set();