@ynput/ayon-frontend-shared 0.4.1 → 0.4.2

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 (1096) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -201
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +248 -512
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -233
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +83 -82
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.es.js +32 -130
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/shared/src/api/generated/graphql.cjs.js +8 -7
  17. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  18. package/dist/shared/src/api/generated/graphql.es.js +18 -17
  19. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  20. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  22. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  23. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  24. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  25. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  27. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  28. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  29. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +55 -151
  35. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  44. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  45. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
  49. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  53. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  54. package/dist/shared/src/api/queries/entityLists/getLists.es.js +67 -118
  55. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  59. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  65. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  66. package/dist/shared/src/api/queries/folders/getFolders.es.js +68 -119
  67. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  69. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
  71. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/overview/getOverview.es.js +229 -282
  77. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  85. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
  89. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  94. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  95. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  96. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +88 -141
  97. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  98. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  101. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  102. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +30 -80
  103. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  105. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  114. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  115. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  116. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  117. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  118. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  119. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  120. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  121. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  122. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  123. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  124. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  125. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
  127. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  128. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  129. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  130. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  131. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  132. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  133. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  134. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  135. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  136. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  137. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +26 -182
  139. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -195
  143. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  145. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  146. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
  147. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  149. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  153. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  155. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  167. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  169. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  171. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  172. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  173. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  174. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +12 -314
  175. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  178. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -273
  179. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  180. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  181. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  182. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -335
  183. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  184. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  185. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  186. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  187. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  188. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -310
  189. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  190. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  191. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  192. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  193. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  194. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  195. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  196. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -293
  197. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  198. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  199. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  200. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  201. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  202. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  203. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  204. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  205. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  206. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  207. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  208. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  209. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -346
  210. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  211. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  212. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  213. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -212
  214. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  215. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  216. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
  218. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  219. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  220. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -185
  222. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  223. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  224. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  225. package/dist/shared/src/components/Menu/Menu.es.js +48 -343
  226. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  227. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  228. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  229. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -316
  230. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  231. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  232. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  233. package/dist/shared/src/components/Menu/MenuList.es.js +74 -373
  234. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  235. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  236. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  237. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
  238. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  239. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  240. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  241. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -346
  242. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  243. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  244. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  245. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
  246. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  247. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  248. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  249. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +74 -367
  250. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  251. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  252. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  253. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
  254. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  255. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  256. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  257. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -334
  258. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  259. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  260. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  261. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -331
  262. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  263. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  264. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  265. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
  266. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  267. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  268. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  269. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
  270. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  271. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  272. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  273. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -365
  274. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  275. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  276. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  277. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -316
  278. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  280. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  281. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  282. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  283. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  284. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  285. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -326
  286. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  287. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  288. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  289. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  290. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  291. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
  292. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  293. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  294. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  295. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
  296. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  297. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  298. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  299. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
  300. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  301. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  302. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  303. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
  304. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  305. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  306. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  307. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  308. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  309. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  310. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  311. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
  312. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  313. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  314. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  315. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  316. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  317. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  318. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  319. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  320. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  321. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  322. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  323. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
  324. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  325. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  326. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  327. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -262
  328. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  329. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  330. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  331. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  332. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  333. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  334. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -210
  336. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  337. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  339. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  340. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/Actions/Actions.es.js +51 -250
  342. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  343. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  345. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  346. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -323
  348. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  349. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  351. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +143 -327
  356. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  358. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -329
  360. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -236
  364. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -255
  368. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  370. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
  372. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  374. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
  376. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  378. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  380. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  400. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
  402. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  404. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -217
  406. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  408. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -323
  410. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  412. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -307
  414. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  424. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  426. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
  432. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  434. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
  436. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  437. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  438. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -324
  440. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  441. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  442. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
  444. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  445. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  446. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
  448. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  449. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  450. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  452. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  453. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  454. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
  456. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  457. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  458. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  460. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  461. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/Feed.es.js +65 -245
  466. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  470. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -309
  472. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  474. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -421
  476. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  477. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  478. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -317
  480. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  481. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  482. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  484. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  485. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  486. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
  488. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  489. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  491. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  492. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -372
  494. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  495. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  498. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
  500. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  502. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -324
  504. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  506. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  508. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  510. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
  512. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  514. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  516. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  518. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  519. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  520. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  521. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  524. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  526. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
  528. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
  532. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  534. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -310
  536. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  538. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
  540. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  542. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  544. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  547. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  548. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  549. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  551. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  552. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  554. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  555. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  557. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  558. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  559. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
  561. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  562. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  563. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +44 -177
  565. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  566. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  567. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -343
  569. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  570. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  572. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  574. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  575. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
  577. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  578. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  580. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  581. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  582. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
  583. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +590 -859
  587. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +245 -391
  591. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -375
  595. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -204
  599. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +27 -124
  603. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  605. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  607. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
  611. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  613. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +243 -441
  615. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
  619. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
  623. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
  627. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +71 -245
  631. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  634. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  642. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
  646. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  647. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +59 -233
  650. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +74 -248
  654. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +147 -439
  658. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +23 -197
  662. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -206
  666. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -332
  670. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +135 -335
  674. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -203
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -204
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -282
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -232
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -198
  696. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +29 -203
  700. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -467
  704. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  706. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
  708. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  714. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  718. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  724. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  728. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  730. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
  732. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  734. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +113 -398
  736. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  738. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
  740. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
  744. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
  746. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  748. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  752. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  753. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
  754. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  755. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  756. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
  758. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  760. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -202
  762. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  764. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +36 -333
  766. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  768. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
  770. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  772. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +80 -176
  774. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  776. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  778. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  779. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  780. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  781. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -217
  782. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  783. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  784. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  785. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -527
  786. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  787. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  788. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  789. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -367
  790. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  791. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  792. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  793. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
  794. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  795. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  796. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  797. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
  798. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  799. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  800. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  801. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -370
  802. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  803. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  804. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  805. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -228
  806. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  807. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  808. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  809. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
  810. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  811. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  812. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  813. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -309
  814. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  815. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  816. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  817. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -311
  818. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  819. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  820. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  821. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
  822. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  823. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  824. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  825. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
  826. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  827. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  828. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  829. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
  830. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  831. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  832. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
  834. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  835. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  836. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
  838. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  839. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  840. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  841. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  842. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  843. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  844. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  846. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  847. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  848. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  849. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  850. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  851. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -336
  852. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  853. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  854. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  855. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -354
  856. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  857. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  858. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  859. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
  860. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  861. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  862. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  863. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +59 -262
  864. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  865. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  866. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  867. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  868. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  869. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  870. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  871. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  872. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  873. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  874. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  875. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  876. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  877. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -216
  878. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  879. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  880. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  881. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  882. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  883. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  884. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  885. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  886. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  887. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  888. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  889. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  890. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  891. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  892. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  893. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  894. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  895. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  896. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  897. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -362
  898. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  899. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  900. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  901. package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
  902. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  903. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  904. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  905. package/dist/shared/src/context/PowerpackContext.es.js +42 -344
  906. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  907. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  908. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  909. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -231
  910. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  911. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  912. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  913. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  914. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  915. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -324
  916. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  917. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  918. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  919. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  920. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  921. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  922. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  923. package/dist/shared/src/context/UriContext.es.js +2 -2
  924. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  925. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  926. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  927. package/dist/shared/src/context/WebsocketContext.es.js +28 -229
  928. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  929. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  930. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  931. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
  932. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  933. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  934. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  935. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -314
  936. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  937. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  938. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  939. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -333
  940. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  941. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  942. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  943. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  944. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  945. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  946. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  947. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  948. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  949. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -212
  950. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  951. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  952. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  953. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  954. package/dist/shared/src/util/checkName.es.js.map +1 -1
  955. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  956. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  957. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  958. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  959. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  960. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  961. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  962. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  963. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  964. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  965. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  966. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  967. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  968. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  969. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  970. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  971. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  972. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  973. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  974. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  975. package/dist/shared/src/util/parseFilename.es.js +8 -0
  976. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  977. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  978. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  979. package/dist/types/api/base/index.d.ts +1 -1
  980. package/dist/types/api/generated/graphql.d.ts +5 -2
  981. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  982. package/dist/types/api/queries/activities/getActivities.d.ts +4 -2
  983. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  984. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
  985. package/dist/types/api/queries/entities/getEntity.d.ts +2 -1
  986. package/dist/types/api/queries/entities/getEntityPanel.d.ts +2 -1
  987. package/dist/types/api/queries/entities/updateEntity.d.ts +2 -1
  988. package/dist/types/api/queries/entityLists/getLists.d.ts +305 -305
  989. package/dist/types/api/queries/overview/getOverview.d.ts +35 -18
  990. package/dist/types/api/queries/project/getProject.d.ts +62 -61
  991. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  992. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +2 -1
  993. package/dist/types/api/queries/users/getUsers.d.ts +2 -1
  994. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +4 -2
  995. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  996. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  997. package/dist/types/components/Menu/Menu.d.ts +1 -1
  998. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  999. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1000. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
  1001. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1002. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1003. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1004. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
  1005. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1006. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1007. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1008. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1009. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1010. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  1011. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1012. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1013. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1014. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1015. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1016. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1017. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1018. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1019. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1020. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1021. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1022. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1023. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1024. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1025. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1026. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1027. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1028. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1029. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1030. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1031. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1032. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1033. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1034. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1035. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1036. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1037. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1038. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1039. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1040. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1041. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1042. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1043. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1044. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1045. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1046. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
  1047. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  1048. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1049. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1050. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1051. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1052. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1053. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1054. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1055. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1056. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1057. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1058. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1059. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1060. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1061. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1062. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1063. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1064. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1065. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1066. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1067. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1068. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1069. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1070. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1071. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1072. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1073. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1074. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1075. package/dist/types/containers/Views/types.d.ts +1 -1
  1076. package/dist/types/context/AddonContext.d.ts +1 -1
  1077. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1078. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1079. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1080. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1081. package/dist/types/util/buildHierarchicalTableRows.d.ts +1 -1
  1082. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1083. package/dist/types/util/getBundleMode.d.ts +1 -1
  1084. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1085. package/dist/types/util/index.d.ts +2 -0
  1086. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1087. package/dist/types/util/parseFilename.d.ts +1 -0
  1088. package/dist/types/util/uriUtils.d.ts +1 -1
  1089. package/dist/util.cjs.js +1 -1
  1090. package/dist/util.es.js +24 -20
  1091. package/dist/util.es.js.map +1 -1
  1092. package/package.json +1 -1
  1093. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1094. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1095. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1096. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -42,62 +42,7 @@ import { formatEntityLabel as w } from "./utils/formatEntityLinks.es.js";
42
42
  import { toast as v } from "react-toastify";
43
43
  import "lodash";
44
44
  import "uuid";
45
- import "../actions/getActions.es.js";
46
- import "../activities/getActivities.es.js";
47
- import "../activities/updateReaction.es.js";
48
- import "../activities/getMentions.es.js";
49
- import "../activities/getCategories.es.js";
50
- import "../addons/getAddons.es.js";
51
- import "../addons/updateAddons.es.js";
52
- import "../attributes/getAttributes.es.js";
53
- import "../attributes/updateAttributes.es.js";
54
- import "../authentication/getAuthentication.es.js";
55
- import "../bundles/getBundles.es.js";
56
- import "../bundles/updateBundles.es.js";
57
- import "../cloud/cloud.es.js";
58
- import "../columnStats/metricTargets.es.js";
59
- import "../columnStats/groupCounts.es.js";
60
- import "../config/getConfig.es.js";
61
- import "../config/updateConfig.es.js";
62
- import "../entities/getEntity.es.js";
63
- import "../entities/getEntityPanel.es.js";
64
- import "../overview/getOverview.es.js";
65
- import "../overview/updateOverview.es.js";
66
- import "../versions/getVersionsProducts.es.js";
67
- import "../entities/updateEntity.es.js";
68
- import "../entityLists/getLists.es.js";
69
- import "../entityLists/updateLists.es.js";
70
- import "../entityLists/getListsAttributes.es.js";
71
- import "../entityLists/listItemsColumnStats.es.js";
72
- import "../entityLists/updateListsAttributes.es.js";
73
- import "../entityLists/listFolders.es.js";
74
- import "../folders/getFolders.es.js";
75
- import "../folders/getFolderDeleteInfo.es.js";
76
- import "../grouping/getGrouping.es.js";
77
- import "./updateLinks.es.js";
78
- import "./getLinks.es.js";
79
- import "../permissions/getPermissions.es.js";
80
- import "../products/createProduct.es.js";
81
- import "../products/getFolderProducts.es.js";
82
- import "../project/getProject.es.js";
83
- import "../project/updateProject.es.js";
84
- import "../projectFolders/projectFolders.es.js";
85
- import "../review/getReview.es.js";
86
- import "../review/updateReview.es.js";
87
- import "../share/share.es.js";
88
- import "../system/getSystem.es.js";
89
- import "../tasks/getTasks.es.js";
90
- import "../tasks/updateTasks.es.js";
91
- import "../teams/getTeams.es.js";
92
- import "../userDashboard/getUserDashboard.es.js";
93
- import "../users/getUsers.es.js";
94
45
  import "../users/updateUsers.es.js";
95
- import "../users/guests.es.js";
96
- import "../versions/updateVersions.es.js";
97
- import "../views/getViews.es.js";
98
- import "../views/updateViews.es.js";
99
- import "../watchers/getWatchers.es.js";
100
- import "../uris/getUris.es.js";
101
46
  import { createRealtimeBatcher as G, waitForRealtimeJitter as E } from "../../../util/realtimeUpdatesUtils.es.js";
102
47
  import T from "../../../util/pubsub.es.js";
103
48
  const L = {
@@ -117,140 +62,140 @@ const L = {
117
62
  }, F = S.injectEndpoints({
118
63
  endpoints: (j) => ({
119
64
  getEntityLinks: j.query({
120
- queryFn: async ({ projectName: t, entityIds: n, entityType: r }, { getState: e, dispatch: a, queryCacheKey: h, forced: l }) => {
65
+ queryFn: async ({ projectName: t, entityIds: o, entityType: e }, { getState: i, dispatch: d, queryCacheKey: h, forced: l }) => {
121
66
  try {
122
- const d = e(), c = JSON.stringify({ projectName: t, entityType: r }), u = d.restApi?.queries?.[h || `getEntityLinks(${c})`]?.data || [], f = new Set(u.map((p) => p.id)), s = n.filter((p) => !f?.has(p) || l);
123
- if (s.length === 0)
67
+ const c = i(), m = JSON.stringify({ projectName: t, entityType: e }), u = c.restApi?.queries?.[h || `getEntityLinks(${m})`]?.data || [], f = new Set(u.map((s) => s.id)), p = o.filter((s) => !f?.has(s) || l);
68
+ if (p.length === 0)
124
69
  return { data: u };
125
- const k = L[r], m = $[r];
126
- return { data: (await a(
70
+ const k = L[e], a = $[e];
71
+ return { data: (await d(
127
72
  R.endpoints[k].initiate(
128
- { projectName: t, entityIds: s },
73
+ { projectName: t, entityIds: p },
129
74
  { forceRefetch: !0 }
130
75
  )
131
- ).unwrap()).project?.[m]?.edges?.map(({ node: p }) => {
132
- const I = p.links.edges?.filter((i) => !i?.node) || [];
76
+ ).unwrap()).project?.[a]?.edges?.map(({ node: s }) => {
77
+ const I = s.links.edges?.filter((r) => !r?.node) || [];
133
78
  return I.length > 0 && console.log(
134
- `[RESTRICTED LINKS] Entity ${p.id} (${p.name}) has ${I.length} restricted link(s):`,
135
- I.map((i) => ({
136
- linkId: i?.id,
137
- linkType: i?.linkType,
138
- direction: i?.direction,
139
- entityType: i?.entityType,
140
- nodeIsNull: !i?.node
79
+ `[RESTRICTED LINKS] Entity ${s.id} (${s.name}) has ${I.length} restricted link(s):`,
80
+ I.map((r) => ({
81
+ linkId: r?.id,
82
+ linkType: r?.linkType,
83
+ direction: r?.direction,
84
+ entityType: r?.entityType,
85
+ nodeIsNull: !r?.node
141
86
  }))
142
87
  ), {
143
- id: p.id,
144
- links: p.links.edges?.map((i) => i?.node ? {
145
- ...i,
88
+ id: s.id,
89
+ links: s.links.edges?.map((r) => r?.node ? {
90
+ ...r,
146
91
  node: {
147
- id: i.node.id,
148
- name: i.node.name,
149
- label: w(i.node),
150
- parents: i.node.parents || [],
151
- subType: "subType" in i.node ? i.node.subType : void 0
92
+ id: r.node.id,
93
+ name: r.node.name,
94
+ label: w(r.node),
95
+ parents: r.node.parents || [],
96
+ subType: "subType" in r.node ? r.node.subType : void 0
152
97
  },
153
98
  isRestricted: !1
154
99
  } : {
155
- ...i,
100
+ ...r,
156
101
  node: null,
157
102
  isRestricted: !0
158
103
  }) || []
159
104
  // Flatten the edges structure
160
105
  };
161
106
  }) || [] };
162
- } catch (d) {
163
- return console.error(`Error in getEntityLinks queryFn for ${r}:`, d), v.error(`Error fetching ${r} links`), { error: { status: "FETCH_ERROR", error: d.message } };
107
+ } catch (c) {
108
+ return console.error(`Error in getEntityLinks queryFn for ${e}:`, c), v.error(`Error fetching ${e} links`), { error: { status: "FETCH_ERROR", error: c.message } };
164
109
  }
165
110
  },
166
111
  // 2. We should not create new caches when the entityIds argument changes.
167
112
  serializeQueryArgs: ({ queryArgs: t }) => ({ projectName: t.projectName, entityType: t.entityType }),
168
113
  // 3. We should force a refetch every time the entityIds changes.
169
- forceRefetch: ({ currentArg: t, previousArg: n }) => {
170
- if (!t || !n) return !0;
171
- const r = new Set(t.entityIds), e = new Set(n.entityIds);
172
- if (r.size !== e.size) return !0;
173
- for (const a of r)
174
- if (!e.has(a)) return !0;
114
+ forceRefetch: ({ currentArg: t, previousArg: o }) => {
115
+ if (!t || !o) return !0;
116
+ const e = new Set(t.entityIds), i = new Set(o.entityIds);
117
+ if (e.size !== i.size) return !0;
118
+ for (const d of e)
119
+ if (!i.has(d)) return !0;
175
120
  return !1;
176
121
  },
177
122
  // 4. We should merge new entities into the cache ensuring there are no duplicates.
178
- merge: (t, n) => {
179
- if (!t) return n;
180
- const r = new Map(t.map((e) => [e.id, e]));
181
- for (const e of n)
182
- r.set(e.id, e);
183
- t.length = 0, t.push(...r.values());
123
+ merge: (t, o) => {
124
+ if (!t) return o;
125
+ const e = new Map(t.map((i) => [i.id, i]));
126
+ for (const i of o)
127
+ e.set(i.id, i);
128
+ t.length = 0, t.push(...e.values());
184
129
  },
185
130
  // Provide tags for potential invalidation
186
- providesTags: (t, n, r) => t ? [
131
+ providesTags: (t, o, e) => t ? [
187
132
  ...t.flatMap(
188
- (e) => e.links.filter((a) => a.node !== null).map((a) => ({ type: "link", id: a.node.id }))
133
+ (i) => i.links.filter((d) => d.node !== null).map((d) => ({ type: "link", id: d.node.id }))
189
134
  ),
190
- { type: "link", id: `${r.projectName}-${r.entityType}` }
191
- ] : [{ type: "link", id: `${r.projectName}-${r.entityType}` }],
135
+ { type: "link", id: `${e.projectName}-${e.entityType}` }
136
+ ] : [{ type: "link", id: `${e.projectName}-${e.entityType}` }],
192
137
  // Subscribe to link.created and link.deleted WebSocket events
193
- async onCacheEntryAdded({ projectName: t, entityType: n }, { cacheDataLoaded: r, cacheEntryRemoved: e, updateCachedData: a, dispatch: h }) {
138
+ async onCacheEntryAdded({ projectName: t, entityType: o }, { cacheDataLoaded: e, cacheEntryRemoved: i, updateCachedData: d, dispatch: h }) {
194
139
  let l;
195
- const d = G(
196
- async (c, y) => {
197
- const u = L[n], f = $[n];
140
+ const c = G(
141
+ async (m, y) => {
142
+ const u = L[o], f = $[o];
198
143
  try {
199
144
  await E();
200
- const s = await h(
145
+ const p = await h(
201
146
  R.endpoints[u].initiate(
202
- { projectName: t, entityIds: c.map(({ entityId: m }) => m) },
147
+ { projectName: t, entityIds: m.map(({ entityId: a }) => a) },
203
148
  { forceRefetch: !0 }
204
149
  )
205
150
  ).unwrap();
206
151
  if (!y()) return;
207
- const k = s.project?.[f]?.edges?.map(({ node: m }) => ({
208
- id: m.id,
209
- links: m.links.edges?.map((o) => o?.node ? {
210
- ...o,
152
+ const k = p.project?.[f]?.edges?.map(({ node: a }) => ({
153
+ id: a.id,
154
+ links: a.links.edges?.map((n) => n?.node ? {
155
+ ...n,
211
156
  node: {
212
- id: o.node.id,
213
- name: o.node.name,
214
- label: w(o.node),
215
- parents: o.node.parents || [],
216
- subType: "subType" in o.node ? o.node.subType : void 0
157
+ id: n.node.id,
158
+ name: n.node.name,
159
+ label: w(n.node),
160
+ parents: n.node.parents || [],
161
+ subType: "subType" in n.node ? n.node.subType : void 0
217
162
  },
218
163
  isRestricted: !1
219
164
  } : {
220
- ...o,
165
+ ...n,
221
166
  node: null,
222
167
  isRestricted: !0
223
168
  }) || []
224
169
  })) || [];
225
- a((m) => {
226
- for (const o of k) {
227
- const b = m.findIndex((p) => p.id === o.id);
228
- b > -1 ? m[b] = o : m.push(o);
170
+ d((a) => {
171
+ for (const n of k) {
172
+ const b = a.findIndex((s) => s.id === n.id);
173
+ b > -1 ? a[b] = n : a.push(n);
229
174
  }
230
175
  });
231
- } catch (s) {
232
- console.error("Realtime link batch update failed", s);
176
+ } catch (p) {
177
+ console.error("Realtime link batch update failed", p);
233
178
  }
234
179
  },
235
- ({ entityId: c }) => c
180
+ ({ entityId: m }) => m
236
181
  );
237
182
  try {
238
- await r;
239
- const c = (y, u) => {
183
+ await e;
184
+ const m = (y, u) => {
240
185
  if (!y.startsWith("link.created") && !y.startsWith("link.deleted") || u?.project !== t) return;
241
- const f = u?.summary?.inputId, s = u?.summary?.outputId;
242
- !f && !s || (f && d.add({ entityId: f }), s && d.add({ entityId: s }));
186
+ const f = u?.summary?.inputId, p = u?.summary?.outputId;
187
+ !f && !p || (f && c.add({ entityId: f }), p && c.add({ entityId: p }));
243
188
  };
244
- l = T.subscribe("link", c);
189
+ l = T.subscribe("link", m);
245
190
  } catch {
246
191
  }
247
- await e, l && T.unsubscribe(l), d.clear();
192
+ await i, l && T.unsubscribe(l), c.clear();
248
193
  }
249
194
  })
250
195
  })
251
- }), { useGetEntityLinksQuery: jr } = F;
196
+ }), { useGetEntityLinksQuery: $t } = F;
252
197
  export {
253
198
  F as entityLinksApi,
254
- jr as useGetEntityLinksQuery
199
+ $t as useGetEntityLinksQuery
255
200
  };
256
201
  //# sourceMappingURL=getEntityLinks.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getEntityLinks.es.js","sources":["../../../../../../src/api/queries/links/getEntityLinks.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n GetFoldersLinksQuery,\n GetTasksLinksQuery,\n GetProductsLinksQuery,\n GetVersionsLinksQuery,\n GetRepresentationsLinksQuery,\n GetWorkfilesLinksQuery,\n gqlLinksApi,\n foldersApi,\n} from '@shared/api/generated'\nimport { formatEntityLabel } from './utils/formatEntityLinks'\nimport { toast } from 'react-toastify'\nimport { createRealtimeBatcher, PubSub, waitForRealtimeJitter } from '@shared/util'\n\n/**\n * Custom queryFn for fetching entity links with optimized caching behavior.\n *\n * Key features:\n * 1. Single cache per project and entity type - different entityIds combinations don't create new caches\n * 2. Skips fetching entities that are already cached\n * 3. Force refetch when entityIds change\n * 4. Merges new entities into cache without duplicates\n * 5. Supports all entity types: folders, tasks, products, versions, representations, workfiles\n */\n\n// Define the arguments for the query\nexport type GetEntityLinksArgs = {\n projectName: string\n entityIds: string[]\n entityType: 'folder' | 'task' | 'product' | 'version' | 'representation' | 'workfile'\n}\n\n// Define link types for each entity\nexport type FolderLink =\n GetFoldersLinksQuery['project']['folders']['edges'][0]['node']['links']['edges'][0]\nexport type TaskLink =\n GetTasksLinksQuery['project']['tasks']['edges'][0]['node']['links']['edges'][0]\nexport type ProductLink =\n GetProductsLinksQuery['project']['products']['edges'][0]['node']['links']['edges'][0]\nexport type VersionLink =\n GetVersionsLinksQuery['project']['versions']['edges'][0]['node']['links']['edges'][0]\nexport type RepresentationLink =\n GetRepresentationsLinksQuery['project']['representations']['edges'][0]['node']['links']['edges'][0]\nexport type WorkfileLink =\n GetWorkfilesLinksQuery['project']['workfiles']['edges'][0]['node']['links']['edges'][0]\n\nexport type EntityLinkQuery =\n | FolderLink\n | TaskLink\n | ProductLink\n | VersionLink\n | RepresentationLink\n | WorkfileLink\nexport type EntityLink = Pick<EntityLinkQuery, 'direction' | 'entityType' | 'id' | 'linkType'> & {\n node:\n | (EntityLinkQuery['node'] & {\n name: string\n id: string\n label?: string | null\n parents: string[]\n subType: string | undefined\n })\n | null\n isRestricted?: boolean // flag to indicate if this link is restricted\n}\n\n// Define the result type for the query - simplified without edges wrapper\nexport type EntityWithLinks = {\n id: string\n links: EntityLink[]\n}\n\nexport type GetEntityLinksResult = EntityWithLinks[]\n\n// Map entity types to their corresponding GraphQL endpoints\nconst entityEndpoints = {\n folder: 'GetFoldersLinks',\n task: 'GetTasksLinks',\n product: 'GetProductsLinks',\n version: 'GetVersionsLinks',\n representation: 'GetRepresentationsLinks',\n workfile: 'GetWorkfilesLinks',\n} as const\n\n// Map entity types to their result path in the GraphQL response\nconst entityResultPaths = {\n folder: 'folders',\n task: 'tasks',\n product: 'products',\n version: 'versions',\n representation: 'representations',\n workfile: 'workfiles',\n} as const\n\nconst injectedQueries = foldersApi.injectEndpoints({\n endpoints: (build) => ({\n getEntityLinks: build.query<GetEntityLinksResult, GetEntityLinksArgs>({\n queryFn: async (\n { projectName, entityIds, entityType },\n { getState, dispatch, queryCacheKey, forced },\n ) => {\n try {\n // Get current state to access cached data\n const state = getState() as any\n const cacheKey = JSON.stringify({ projectName, entityType })\n\n // Access the cache entry for this project and entity type\n const cacheEntry =\n state.restApi?.queries?.[queryCacheKey || `getEntityLinks(${cacheKey})`]\n const cachedData = cacheEntry?.data || []\n\n // 1. When fetching new data for entityIds, we should skip entities that are already in the cache.\n const cachedEntityIds = new Set(cachedData.map((entity: EntityWithLinks) => entity.id))\n const entityIdsToFetch = entityIds.filter((id) => !cachedEntityIds?.has(id) || forced)\n\n // If all entities are already cached, return the cached data\n if (entityIdsToFetch.length === 0) {\n return { data: cachedData }\n }\n\n // Get the appropriate endpoint and parameter names\n const endpoint = entityEndpoints[entityType]\n const resultPath = entityResultPaths[entityType]\n\n // Fetch only the entities that aren't already cached\n const result = await dispatch(\n (gqlLinksApi.endpoints as any)[endpoint].initiate(\n { projectName, entityIds: entityIdsToFetch },\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const newEntities =\n result.project?.[resultPath]?.edges?.map(({ node }: { node: any }) => {\n // Log restricted links\n const restrictedLinks =\n node.links.edges?.filter((e: EntityLinkQuery | null) => !e?.node) || []\n if (restrictedLinks.length > 0) {\n console.log(\n `[RESTRICTED LINKS] Entity ${node.id} (${node.name}) has ${restrictedLinks.length} restricted link(s):`,\n restrictedLinks.map((link: any) => ({\n linkId: link?.id,\n linkType: link?.linkType,\n direction: link?.direction,\n entityType: link?.entityType,\n nodeIsNull: !link?.node,\n })),\n )\n }\n\n return {\n id: node.id,\n links:\n node.links.edges?.map((linkEdge: EntityLinkQuery | null) => {\n if (!linkEdge?.node) {\n // Restricted link - node is null\n return {\n ...linkEdge,\n node: null,\n isRestricted: true,\n } as EntityLink\n }\n // Normal link\n return {\n ...linkEdge,\n node: {\n id: linkEdge.node.id,\n name: linkEdge.node.name,\n label: formatEntityLabel(linkEdge.node),\n parents: linkEdge.node.parents || [],\n subType: 'subType' in linkEdge.node ? linkEdge.node.subType : undefined,\n },\n isRestricted: false,\n } as EntityLink\n }) || [], // Flatten the edges structure\n }\n }) || []\n\n // Return the new entities - the merge function will handle combining with existing cache\n return { data: newEntities }\n } catch (error: any) {\n console.error(`Error in getEntityLinks queryFn for ${entityType}:`, error)\n toast.error(`Error fetching ${entityType} links`)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n // 2. We should not create new caches when the entityIds argument changes.\n serializeQueryArgs: ({ queryArgs }) => {\n // Use only projectName and entityType for the cache key, ignoring entityIds\n return { projectName: queryArgs.projectName, entityType: queryArgs.entityType }\n },\n // 3. We should force a refetch every time the entityIds changes.\n forceRefetch: ({ currentArg, previousArg }) => {\n // Force refetch if entityIds array is different\n if (!currentArg || !previousArg) return true\n\n // Compare arrays by converting to sets\n const currentIds = new Set(currentArg.entityIds)\n const previousIds = new Set(previousArg.entityIds)\n\n if (currentIds.size !== previousIds.size) return true\n\n // Check if any IDs are different\n for (const id of currentIds) {\n if (!previousIds.has(id)) return true\n }\n\n return false\n },\n // 4. We should merge new entities into the cache ensuring there are no duplicates.\n merge: (currentCache, newItems) => {\n if (!currentCache) return newItems\n\n const cacheMap = new Map(currentCache.map((item) => [item.id, item]))\n for (const newItem of newItems) {\n cacheMap.set(newItem.id, newItem) // Overwrite if exists, add if not\n }\n // Update currentCache in-place\n currentCache.length = 0\n currentCache.push(...cacheMap.values())\n },\n // Provide tags for potential invalidation\n providesTags: (result, error, arg) =>\n result\n ? [\n ...result.flatMap((entity) =>\n entity.links\n .filter((link) => link.node !== null)\n .map((link) => ({ type: 'link', id: link.node!.id as string })),\n ),\n { type: 'link', id: `${arg.projectName}-${arg.entityType}` },\n ]\n : [{ type: 'link', id: `${arg.projectName}-${arg.entityType}` }],\n // Subscribe to link.created and link.deleted WebSocket events\n async onCacheEntryAdded(\n { projectName, entityType },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const batcher = createRealtimeBatcher(\n async (items: { entityId: string }[], isActive) => {\n const endpoint = entityEndpoints[entityType]\n const resultPath = entityResultPaths[entityType]\n\n try {\n await waitForRealtimeJitter()\n const result = await dispatch(\n (gqlLinksApi.endpoints as any)[endpoint].initiate(\n { projectName, entityIds: items.map(({ entityId }) => entityId) },\n { forceRefetch: true },\n ),\n ).unwrap()\n\n if (!isActive()) return\n\n const updatedEntities =\n result.project?.[resultPath]?.edges?.map(({ node }: { node: any }) => {\n return {\n id: node.id,\n links:\n node.links.edges?.map((linkEdge: EntityLinkQuery | null) => {\n if (!linkEdge?.node) {\n return {\n ...linkEdge,\n node: null,\n isRestricted: true,\n } as EntityLink\n }\n return {\n ...linkEdge,\n node: {\n id: linkEdge.node.id,\n name: linkEdge.node.name,\n label: formatEntityLabel(linkEdge.node),\n parents: linkEdge.node.parents || [],\n subType: 'subType' in linkEdge.node ? linkEdge.node.subType : undefined,\n },\n isRestricted: false,\n } as EntityLink\n }) || [],\n }\n }) || []\n\n updateCachedData((draft: EntityWithLinks[]) => {\n for (const updatedEntity of updatedEntities) {\n const idx = draft.findIndex((entity) => entity.id === updatedEntity.id)\n if (idx > -1) draft[idx] = updatedEntity\n else draft.push(updatedEntity)\n }\n })\n } catch (err) {\n console.error('Realtime link batch update failed', err)\n }\n },\n ({ entityId }) => entityId,\n )\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, message: any) => {\n // Only react to link.created and link.deleted events for this project\n if (!_topic.startsWith('link.created') && !_topic.startsWith('link.deleted')) return\n if (message?.project !== projectName) return\n\n // Link events have inputId and outputId in the summary (both entities affected by the link)\n const inputId = message?.summary?.inputId\n const outputId = message?.summary?.outputId\n if (!inputId && !outputId) return\n\n if (inputId) batcher.add({ entityId: inputId })\n if (outputId) batcher.add({ entityId: outputId })\n }\n\n // Subscribe to link events\n // NOTE: backend emits topics like 'link.created' and 'link.deleted'.\n // PubSub supports prefix matching when subscribing.\n token = PubSub.subscribe('link', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n batcher.clear()\n },\n }),\n }),\n})\n\nexport const { useGetEntityLinksQuery } = injectedQueries\nexport { injectedQueries as entityLinksApi }\n"],"names":["entityEndpoints","entityResultPaths","injectedQueries","foldersApi","build","projectName","entityIds","entityType","getState","dispatch","queryCacheKey","forced","state","cacheKey","cachedData","cachedEntityIds","entity","entityIdsToFetch","id","endpoint","resultPath","gqlLinksApi","node","restrictedLinks","e","link","linkEdge","formatEntityLabel","error","toast","queryArgs","currentArg","previousArg","currentIds","previousIds","currentCache","newItems","cacheMap","item","newItem","result","arg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","batcher","createRealtimeBatcher","items","isActive","waitForRealtimeJitter","entityId","updatedEntities","draft","updatedEntity","idx","err","handlePubSub","_topic","message","inputId","outputId","PubSub","useGetEntityLinksQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getEntityLinks.es.js","sources":["../../../../../../src/api/queries/links/getEntityLinks.ts"],"sourcesContent":["import { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n GetFoldersLinksQuery,\n GetTasksLinksQuery,\n GetProductsLinksQuery,\n GetVersionsLinksQuery,\n GetRepresentationsLinksQuery,\n GetWorkfilesLinksQuery,\n gqlLinksApi,\n foldersApi,\n} from '@shared/api/generated'\nimport { formatEntityLabel } from './utils/formatEntityLinks'\nimport { toast } from 'react-toastify'\nimport { createRealtimeBatcher, PubSub, waitForRealtimeJitter } from '@shared/util'\n\n/**\n * Custom queryFn for fetching entity links with optimized caching behavior.\n *\n * Key features:\n * 1. Single cache per project and entity type - different entityIds combinations don't create new caches\n * 2. Skips fetching entities that are already cached\n * 3. Force refetch when entityIds change\n * 4. Merges new entities into cache without duplicates\n * 5. Supports all entity types: folders, tasks, products, versions, representations, workfiles\n */\n\n// Define the arguments for the query\nexport type GetEntityLinksArgs = {\n projectName: string\n entityIds: string[]\n entityType: 'folder' | 'task' | 'product' | 'version' | 'representation' | 'workfile'\n}\n\n// Define link types for each entity\nexport type FolderLink =\n GetFoldersLinksQuery['project']['folders']['edges'][0]['node']['links']['edges'][0]\nexport type TaskLink =\n GetTasksLinksQuery['project']['tasks']['edges'][0]['node']['links']['edges'][0]\nexport type ProductLink =\n GetProductsLinksQuery['project']['products']['edges'][0]['node']['links']['edges'][0]\nexport type VersionLink =\n GetVersionsLinksQuery['project']['versions']['edges'][0]['node']['links']['edges'][0]\nexport type RepresentationLink =\n GetRepresentationsLinksQuery['project']['representations']['edges'][0]['node']['links']['edges'][0]\nexport type WorkfileLink =\n GetWorkfilesLinksQuery['project']['workfiles']['edges'][0]['node']['links']['edges'][0]\n\nexport type EntityLinkQuery =\n | FolderLink\n | TaskLink\n | ProductLink\n | VersionLink\n | RepresentationLink\n | WorkfileLink\nexport type EntityLink = Pick<EntityLinkQuery, 'direction' | 'entityType' | 'id' | 'linkType'> & {\n node:\n | (EntityLinkQuery['node'] & {\n name: string\n id: string\n label?: string | null\n parents: string[]\n subType: string | undefined\n })\n | null\n isRestricted?: boolean // flag to indicate if this link is restricted\n}\n\n// Define the result type for the query - simplified without edges wrapper\nexport type EntityWithLinks = {\n id: string\n links: EntityLink[]\n}\n\nexport type GetEntityLinksResult = EntityWithLinks[]\n\n// Map entity types to their corresponding GraphQL endpoints\nconst entityEndpoints = {\n folder: 'GetFoldersLinks',\n task: 'GetTasksLinks',\n product: 'GetProductsLinks',\n version: 'GetVersionsLinks',\n representation: 'GetRepresentationsLinks',\n workfile: 'GetWorkfilesLinks',\n} as const\n\n// Map entity types to their result path in the GraphQL response\nconst entityResultPaths = {\n folder: 'folders',\n task: 'tasks',\n product: 'products',\n version: 'versions',\n representation: 'representations',\n workfile: 'workfiles',\n} as const\n\nconst injectedQueries = foldersApi.injectEndpoints({\n endpoints: (build) => ({\n getEntityLinks: build.query<GetEntityLinksResult, GetEntityLinksArgs>({\n queryFn: async (\n { projectName, entityIds, entityType },\n { getState, dispatch, queryCacheKey, forced },\n ) => {\n try {\n // Get current state to access cached data\n const state = getState() as any\n const cacheKey = JSON.stringify({ projectName, entityType })\n\n // Access the cache entry for this project and entity type\n const cacheEntry =\n state.restApi?.queries?.[queryCacheKey || `getEntityLinks(${cacheKey})`]\n const cachedData = cacheEntry?.data || []\n\n // 1. When fetching new data for entityIds, we should skip entities that are already in the cache.\n const cachedEntityIds = new Set(cachedData.map((entity: EntityWithLinks) => entity.id))\n const entityIdsToFetch = entityIds.filter((id) => !cachedEntityIds?.has(id) || forced)\n\n // If all entities are already cached, return the cached data\n if (entityIdsToFetch.length === 0) {\n return { data: cachedData }\n }\n\n // Get the appropriate endpoint and parameter names\n const endpoint = entityEndpoints[entityType]\n const resultPath = entityResultPaths[entityType]\n\n // Fetch only the entities that aren't already cached\n const result = await dispatch(\n (gqlLinksApi.endpoints as any)[endpoint].initiate(\n { projectName, entityIds: entityIdsToFetch },\n { forceRefetch: true },\n ),\n ).unwrap()\n\n const newEntities =\n result.project?.[resultPath]?.edges?.map(({ node }: { node: any }) => {\n // Log restricted links\n const restrictedLinks =\n node.links.edges?.filter((e: EntityLinkQuery | null) => !e?.node) || []\n if (restrictedLinks.length > 0) {\n console.log(\n `[RESTRICTED LINKS] Entity ${node.id} (${node.name}) has ${restrictedLinks.length} restricted link(s):`,\n restrictedLinks.map((link: any) => ({\n linkId: link?.id,\n linkType: link?.linkType,\n direction: link?.direction,\n entityType: link?.entityType,\n nodeIsNull: !link?.node,\n })),\n )\n }\n\n return {\n id: node.id,\n links:\n node.links.edges?.map((linkEdge: EntityLinkQuery | null) => {\n if (!linkEdge?.node) {\n // Restricted link - node is null\n return {\n ...linkEdge,\n node: null,\n isRestricted: true,\n } as EntityLink\n }\n // Normal link\n return {\n ...linkEdge,\n node: {\n id: linkEdge.node.id,\n name: linkEdge.node.name,\n label: formatEntityLabel(linkEdge.node),\n parents: linkEdge.node.parents || [],\n subType: 'subType' in linkEdge.node ? linkEdge.node.subType : undefined,\n },\n isRestricted: false,\n } as EntityLink\n }) || [], // Flatten the edges structure\n }\n }) || []\n\n // Return the new entities - the merge function will handle combining with existing cache\n return { data: newEntities }\n } catch (error: any) {\n console.error(`Error in getEntityLinks queryFn for ${entityType}:`, error)\n toast.error(`Error fetching ${entityType} links`)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n // 2. We should not create new caches when the entityIds argument changes.\n serializeQueryArgs: ({ queryArgs }) => {\n // Use only projectName and entityType for the cache key, ignoring entityIds\n return { projectName: queryArgs.projectName, entityType: queryArgs.entityType }\n },\n // 3. We should force a refetch every time the entityIds changes.\n forceRefetch: ({ currentArg, previousArg }) => {\n // Force refetch if entityIds array is different\n if (!currentArg || !previousArg) return true\n\n // Compare arrays by converting to sets\n const currentIds = new Set(currentArg.entityIds)\n const previousIds = new Set(previousArg.entityIds)\n\n if (currentIds.size !== previousIds.size) return true\n\n // Check if any IDs are different\n for (const id of currentIds) {\n if (!previousIds.has(id)) return true\n }\n\n return false\n },\n // 4. We should merge new entities into the cache ensuring there are no duplicates.\n merge: (currentCache, newItems) => {\n if (!currentCache) return newItems\n\n const cacheMap = new Map(currentCache.map((item) => [item.id, item]))\n for (const newItem of newItems) {\n cacheMap.set(newItem.id, newItem) // Overwrite if exists, add if not\n }\n // Update currentCache in-place\n currentCache.length = 0\n currentCache.push(...cacheMap.values())\n },\n // Provide tags for potential invalidation\n providesTags: (result, error, arg) =>\n result\n ? [\n ...result.flatMap((entity) =>\n entity.links\n .filter((link) => link.node !== null)\n .map((link) => ({ type: 'link', id: link.node!.id as string })),\n ),\n { type: 'link', id: `${arg.projectName}-${arg.entityType}` },\n ]\n : [{ type: 'link', id: `${arg.projectName}-${arg.entityType}` }],\n // Subscribe to link.created and link.deleted WebSocket events\n async onCacheEntryAdded(\n { projectName, entityType },\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n let token: any\n const batcher = createRealtimeBatcher(\n async (items: { entityId: string }[], isActive) => {\n const endpoint = entityEndpoints[entityType]\n const resultPath = entityResultPaths[entityType]\n\n try {\n await waitForRealtimeJitter()\n const result = await dispatch(\n (gqlLinksApi.endpoints as any)[endpoint].initiate(\n { projectName, entityIds: items.map(({ entityId }) => entityId) },\n { forceRefetch: true },\n ),\n ).unwrap()\n\n if (!isActive()) return\n\n const updatedEntities =\n result.project?.[resultPath]?.edges?.map(({ node }: { node: any }) => {\n return {\n id: node.id,\n links:\n node.links.edges?.map((linkEdge: EntityLinkQuery | null) => {\n if (!linkEdge?.node) {\n return {\n ...linkEdge,\n node: null,\n isRestricted: true,\n } as EntityLink\n }\n return {\n ...linkEdge,\n node: {\n id: linkEdge.node.id,\n name: linkEdge.node.name,\n label: formatEntityLabel(linkEdge.node),\n parents: linkEdge.node.parents || [],\n subType: 'subType' in linkEdge.node ? linkEdge.node.subType : undefined,\n },\n isRestricted: false,\n } as EntityLink\n }) || [],\n }\n }) || []\n\n updateCachedData((draft: EntityWithLinks[]) => {\n for (const updatedEntity of updatedEntities) {\n const idx = draft.findIndex((entity) => entity.id === updatedEntity.id)\n if (idx > -1) draft[idx] = updatedEntity\n else draft.push(updatedEntity)\n }\n })\n } catch (err) {\n console.error('Realtime link batch update failed', err)\n }\n },\n ({ entityId }) => entityId,\n )\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, message: any) => {\n // Only react to link.created and link.deleted events for this project\n if (!_topic.startsWith('link.created') && !_topic.startsWith('link.deleted')) return\n if (message?.project !== projectName) return\n\n // Link events have inputId and outputId in the summary (both entities affected by the link)\n const inputId = message?.summary?.inputId\n const outputId = message?.summary?.outputId\n if (!inputId && !outputId) return\n\n if (inputId) batcher.add({ entityId: inputId })\n if (outputId) batcher.add({ entityId: outputId })\n }\n\n // Subscribe to link events\n // NOTE: backend emits topics like 'link.created' and 'link.deleted'.\n // PubSub supports prefix matching when subscribing.\n token = PubSub.subscribe('link', handlePubSub)\n } catch (e) {\n // cache entry removed before loaded - ignore\n }\n\n await cacheEntryRemoved\n if (token) PubSub.unsubscribe(token)\n batcher.clear()\n },\n }),\n }),\n})\n\nexport const { useGetEntityLinksQuery } = injectedQueries\nexport { injectedQueries as entityLinksApi }\n"],"names":["entityEndpoints","entityResultPaths","injectedQueries","foldersApi","build","projectName","entityIds","entityType","getState","dispatch","queryCacheKey","forced","state","cacheKey","cachedData","cachedEntityIds","entity","entityIdsToFetch","id","endpoint","resultPath","gqlLinksApi","node","restrictedLinks","e","link","linkEdge","formatEntityLabel","error","toast","queryArgs","currentArg","previousArg","currentIds","previousIds","currentCache","newItems","cacheMap","item","newItem","result","arg","cacheDataLoaded","cacheEntryRemoved","updateCachedData","token","batcher","createRealtimeBatcher","items","isActive","waitForRealtimeJitter","entityId","updatedEntities","draft","updatedEntity","idx","err","handlePubSub","_topic","message","inputId","outputId","PubSub","useGetEntityLinksQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateLinks.cjs.js","sources":["../../../../../../src/api/queries/links/updateLinks.ts"],"sourcesContent":["import { gqlLinksApi, linksApi } from '@shared/api/generated'\nimport { RootState } from '@reduxjs/toolkit/query'\nimport { current, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EntityLink, EntityWithLinks, entityLinksApi } from './getEntityLinks'\n\ntype Entity = {\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile'\n entityId: string\n name: string\n label?: string | null\n parents: string[]\n subType: string | undefined // Optional subtype for folders, products, versions\n}\n\n// Helper function to get entity data by type\nconst getEntityDataByType = async (\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile',\n entityId: string,\n projectName: string,\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n switch (entityType) {\n case 'task': {\n const resTask = await dispatch(\n gqlLinksApi.endpoints.GetTaskLinkData.initiate({\n projectName,\n taskId: entityId,\n }),\n ).unwrap()\n return resTask?.project.task\n }\n case 'folder': {\n const resFolder = await dispatch(\n gqlLinksApi.endpoints.GetFolderLinkData.initiate({\n projectName,\n folderId: entityId,\n }),\n ).unwrap()\n return resFolder?.project.folder\n }\n case 'product': {\n const resProduct = await dispatch(\n gqlLinksApi.endpoints.GetProductLinkData.initiate({\n projectName,\n productId: entityId,\n }),\n ).unwrap()\n return resProduct?.project.product\n }\n case 'version': {\n const resVersion = await dispatch(\n gqlLinksApi.endpoints.GetVersionLinkData.initiate({\n projectName,\n versionId: entityId,\n }),\n ).unwrap()\n return resVersion?.project.version\n }\n case 'representation': {\n const resRepresentation = await dispatch(\n gqlLinksApi.endpoints.GetRepresentationLinkData.initiate({\n projectName,\n representationId: entityId,\n }),\n ).unwrap()\n return resRepresentation?.project.representation\n }\n case 'workfile': {\n const resWorkfile = await dispatch(\n gqlLinksApi.endpoints.GetWorkfileLinkData.initiate({\n projectName,\n workfileId: entityId,\n }),\n ).unwrap()\n return resWorkfile?.project.workfile\n }\n default:\n throw new Error(`Unknown entity type: ${entityType}`)\n }\n}\n\n// Helper function to patch entity links cache for all entity types\nconst patchEntityLinksCache = (\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete = false,\n }: {\n projectName: string\n sourceEntity: Entity\n targetEntity: Entity\n linkId: string\n linkType: string\n direction: 'in' | 'out'\n isDelete?: boolean\n },\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches: any[] = [],\n) => {\n // Helper function to patch a single entity's links\n const patchEntityLinks = (\n entityToPatch: Entity,\n otherEntity: Entity,\n linkDirection: 'in' | 'out',\n ) => {\n // Get all cached query arguments for the getEntityLinks endpoint\n const cachedArgs = entityLinksApi.util.selectCachedArgsForQuery(state, 'getEntityLinks')\n\n // Filter for queries that match our project and entity type\n const relevantArgs = cachedArgs.filter(\n (args) => args.projectName === projectName && args.entityType === entityToPatch.entityType,\n )\n\n let entityFoundInAnyCache = false\n\n for (const args of relevantArgs) {\n try {\n const patch = dispatch(\n entityLinksApi.util.updateQueryData(\n 'getEntityLinks',\n args,\n (draft: EntityWithLinks[]) => {\n // Find the entity in the cache\n const entityInCache = draft.find((entity) => entity.id === entityToPatch.entityId)\n if (!entityInCache) {\n // Entity not in this specific cache, continue to next one\n return\n }\n\n entityFoundInAnyCache = true\n console.log(\n `Found and patching ${entityToPatch.entityType} ${entityToPatch.entityId} in cache`,\n )\n\n if (isDelete) {\n // Remove the link from the entity\n entityInCache.links = entityInCache.links.filter((link) => link.id !== linkId)\n } else {\n console.log(`Adding new link to ${entityToPatch.entityType}`)\n // Add the new link to the entity\n const newLink: EntityLink = {\n id: linkId,\n direction: linkDirection,\n linkType,\n entityType: otherEntity.entityType,\n node: {\n id: otherEntity.entityId,\n name: otherEntity.name,\n label: otherEntity.label,\n parents: otherEntity.parents,\n subType: otherEntity.subType,\n },\n }\n\n // Check if link already exists and update it, or add new one\n const existingLinkIndex = entityInCache.links.findIndex(\n (link) => link.id === linkId,\n )\n\n if (existingLinkIndex !== -1) {\n entityInCache.links[existingLinkIndex] = newLink\n } else {\n console.log(\n `Adding new link to ${entityToPatch.entityType} links cache`,\n newLink,\n current(entityInCache),\n )\n entityInCache.links.push(newLink)\n }\n }\n },\n ),\n )\n\n patches.push(patch)\n } catch (error) {\n console.error(`Error patching cache for ${entityToPatch.entityType}:`, error)\n }\n }\n\n // If entity was not found in any cache, handle based on context\n if (!entityFoundInAnyCache) {\n // For source entities (where user is creating the link from), we need to invalidate\n // to ensure the user sees the new link appear in the UI\n if (entityToPatch.entityId === sourceEntity.entityId) {\n console.warn(\n `Source ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - invalidating to refresh UI`,\n )\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${entityToPatch.entityType}` },\n ]),\n )\n } else {\n // For target entities, we can skip since they're not currently visible\n console.log(\n `Target ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - skipping patch (entity not currently visible)`,\n )\n // No action needed - when the entity is eventually loaded, it will have the correct links from the server\n }\n }\n }\n\n // Patch the source entity with the link\n patchEntityLinks(sourceEntity, targetEntity, direction)\n\n // Patch the target entity with the link (flip direction)\n const targetDirection = direction === 'in' ? 'out' : 'in'\n patchEntityLinks(targetEntity, sourceEntity, targetDirection)\n}\n\nconst enhancedApi = linksApi.enhanceEndpoints({\n endpoints: {\n deleteEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { linkId, projectName, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const state = getState()\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const targetEntity = patch?.target\n const linkType = patch?.linkType || ''\n const direction = patch?.direction || 'out'\n\n if (sourceEntity && targetEntity) {\n try {\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete: true,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish\n await queryFulfilled\n } catch (error) {\n console.error('Error patching entities during link deletion:', error)\n // Undo patches if there's an error\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n } else {\n console.warn('Source or target entity not provided for link deletion')\n }\n },\n },\n createEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { projectName, createLinkRequestModel, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const { linkType, id: linkId } = createLinkRequestModel\n const state = getState()\n\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const sourceEntityType = sourceEntity?.entityType\n const sourceEntityId = sourceEntity?.entityId\n const targetEntity = patch?.target\n const targetEntityType = targetEntity?.entityType\n const targetEntityId = targetEntity?.entityId\n const direction = patch?.direction || ('out' as 'in' | 'out')\n const linkTypeName = linkType?.split('|')[0] as string\n\n try {\n if (sourceEntity.entityType && targetEntity) {\n // Get the source entity data based on its type\n const sourcePromise = getEntityDataByType(\n sourceEntityType,\n sourceEntityId,\n projectName,\n dispatch,\n )\n\n const targetPromise = getEntityDataByType(\n targetEntityType,\n targetEntityId,\n projectName,\n dispatch,\n )\n\n // Wait for both cache data and source entity data to be loaded\n const res = await Promise.all([sourcePromise, targetPromise])\n const sourceEntityData = res[0]\n const targetEntityData = res[1]\n\n if (!sourceEntityData || !targetEntityData) {\n throw new Error('Source or target entity data not found')\n }\n\n if (!linkId) {\n throw new Error('Link ID not found in cache entry')\n }\n\n const sourceEntity: Entity = {\n entityType: sourceEntityType,\n entityId: sourceEntityId,\n name: sourceEntityData.name,\n label: 'label' in sourceEntityData ? sourceEntityData.label : undefined,\n parents: sourceEntityData.parents || [],\n subType: 'subType' in sourceEntityData ? sourceEntityData.subType : undefined,\n }\n\n const targetEntity: Entity = {\n entityType: targetEntityType,\n entityId: targetEntityId,\n name: targetEntityData.name,\n label: 'label' in targetEntityData ? targetEntityData.label : undefined,\n parents: targetEntityData.parents || [],\n subType: 'subType' in targetEntityData ? targetEntityData.subType : undefined,\n }\n\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType: linkTypeName,\n direction,\n isDelete: false,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish (undo patches if it fails)\n await queryFulfilled\n } else {\n console.warn('Source entity type not provided, falling back to task query')\n throw new Error('Source entity type not provided')\n }\n } catch (error) {\n console.error(error)\n\n // Undo patches if the mutation fails\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n if (sourceEntity && targetEntity) {\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n }\n },\n },\n },\n})\n\nexport const { useDeleteEntityLinkMutation, useCreateEntityLinkMutation } = enhancedApi\n"],"names":["getEntityDataByType","entityType","entityId","projectName","dispatch","gqlLinksApi","patchEntityLinksCache","sourceEntity","targetEntity","linkId","linkType","direction","isDelete","state","patches","patchEntityLinks","entityToPatch","otherEntity","linkDirection","relevantArgs","entityLinksApi","args","entityFoundInAnyCache","patch","draft","entityInCache","entity","link","newLink","existingLinkIndex","current","error","enhancedApi","linksApi","getState","queryFulfilled","createLinkRequestModel","sourceEntityType","sourceEntityId","targetEntityType","targetEntityId","linkTypeName","sourcePromise","targetPromise","res","sourceEntityData","targetEntityData","useDeleteEntityLinkMutation","useCreateEntityLinkMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateLinks.cjs.js","sources":["../../../../../../src/api/queries/links/updateLinks.ts"],"sourcesContent":["import { gqlLinksApi, linksApi } from '@shared/api/generated'\nimport { RootState } from '@reduxjs/toolkit/query'\nimport { current, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { entityLinksApi } from './getEntityLinks'\nimport type { EntityLink, EntityWithLinks } from './getEntityLinks'\n\ntype Entity = {\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile'\n entityId: string\n name: string\n label?: string | null\n parents: string[]\n subType: string | undefined // Optional subtype for folders, products, versions\n}\n\n// Helper function to get entity data by type\nconst getEntityDataByType = async (\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile',\n entityId: string,\n projectName: string,\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n switch (entityType) {\n case 'task': {\n const resTask = await dispatch(\n gqlLinksApi.endpoints.GetTaskLinkData.initiate({\n projectName,\n taskId: entityId,\n }),\n ).unwrap()\n return resTask?.project.task\n }\n case 'folder': {\n const resFolder = await dispatch(\n gqlLinksApi.endpoints.GetFolderLinkData.initiate({\n projectName,\n folderId: entityId,\n }),\n ).unwrap()\n return resFolder?.project.folder\n }\n case 'product': {\n const resProduct = await dispatch(\n gqlLinksApi.endpoints.GetProductLinkData.initiate({\n projectName,\n productId: entityId,\n }),\n ).unwrap()\n return resProduct?.project.product\n }\n case 'version': {\n const resVersion = await dispatch(\n gqlLinksApi.endpoints.GetVersionLinkData.initiate({\n projectName,\n versionId: entityId,\n }),\n ).unwrap()\n return resVersion?.project.version\n }\n case 'representation': {\n const resRepresentation = await dispatch(\n gqlLinksApi.endpoints.GetRepresentationLinkData.initiate({\n projectName,\n representationId: entityId,\n }),\n ).unwrap()\n return resRepresentation?.project.representation\n }\n case 'workfile': {\n const resWorkfile = await dispatch(\n gqlLinksApi.endpoints.GetWorkfileLinkData.initiate({\n projectName,\n workfileId: entityId,\n }),\n ).unwrap()\n return resWorkfile?.project.workfile\n }\n default:\n throw new Error(`Unknown entity type: ${entityType}`)\n }\n}\n\n// Helper function to patch entity links cache for all entity types\nconst patchEntityLinksCache = (\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete = false,\n }: {\n projectName: string\n sourceEntity: Entity\n targetEntity: Entity\n linkId: string\n linkType: string\n direction: 'in' | 'out'\n isDelete?: boolean\n },\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches: any[] = [],\n) => {\n // Helper function to patch a single entity's links\n const patchEntityLinks = (\n entityToPatch: Entity,\n otherEntity: Entity,\n linkDirection: 'in' | 'out',\n ) => {\n // Get all cached query arguments for the getEntityLinks endpoint\n const cachedArgs = entityLinksApi.util.selectCachedArgsForQuery(state, 'getEntityLinks')\n\n // Filter for queries that match our project and entity type\n const relevantArgs = cachedArgs.filter(\n (args) => args.projectName === projectName && args.entityType === entityToPatch.entityType,\n )\n\n let entityFoundInAnyCache = false\n\n for (const args of relevantArgs) {\n try {\n const patch = dispatch(\n entityLinksApi.util.updateQueryData(\n 'getEntityLinks',\n args,\n (draft: EntityWithLinks[]) => {\n // Find the entity in the cache\n const entityInCache = draft.find((entity) => entity.id === entityToPatch.entityId)\n if (!entityInCache) {\n // Entity not in this specific cache, continue to next one\n return\n }\n\n entityFoundInAnyCache = true\n console.log(\n `Found and patching ${entityToPatch.entityType} ${entityToPatch.entityId} in cache`,\n )\n\n if (isDelete) {\n // Remove the link from the entity\n entityInCache.links = entityInCache.links.filter((link) => link.id !== linkId)\n } else {\n console.log(`Adding new link to ${entityToPatch.entityType}`)\n // Add the new link to the entity\n const newLink: EntityLink = {\n id: linkId,\n direction: linkDirection,\n linkType,\n entityType: otherEntity.entityType,\n node: {\n id: otherEntity.entityId,\n name: otherEntity.name,\n label: otherEntity.label,\n parents: otherEntity.parents,\n subType: otherEntity.subType,\n },\n }\n\n // Check if link already exists and update it, or add new one\n const existingLinkIndex = entityInCache.links.findIndex(\n (link) => link.id === linkId,\n )\n\n if (existingLinkIndex !== -1) {\n entityInCache.links[existingLinkIndex] = newLink\n } else {\n console.log(\n `Adding new link to ${entityToPatch.entityType} links cache`,\n newLink,\n current(entityInCache),\n )\n entityInCache.links.push(newLink)\n }\n }\n },\n ),\n )\n\n patches.push(patch)\n } catch (error) {\n console.error(`Error patching cache for ${entityToPatch.entityType}:`, error)\n }\n }\n\n // If entity was not found in any cache, handle based on context\n if (!entityFoundInAnyCache) {\n // For source entities (where user is creating the link from), we need to invalidate\n // to ensure the user sees the new link appear in the UI\n if (entityToPatch.entityId === sourceEntity.entityId) {\n console.warn(\n `Source ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - invalidating to refresh UI`,\n )\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${entityToPatch.entityType}` },\n ]),\n )\n } else {\n // For target entities, we can skip since they're not currently visible\n console.log(\n `Target ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - skipping patch (entity not currently visible)`,\n )\n // No action needed - when the entity is eventually loaded, it will have the correct links from the server\n }\n }\n }\n\n // Patch the source entity with the link\n patchEntityLinks(sourceEntity, targetEntity, direction)\n\n // Patch the target entity with the link (flip direction)\n const targetDirection = direction === 'in' ? 'out' : 'in'\n patchEntityLinks(targetEntity, sourceEntity, targetDirection)\n}\n\nconst enhancedApi = linksApi.enhanceEndpoints({\n endpoints: {\n deleteEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { linkId, projectName, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const state = getState()\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const targetEntity = patch?.target\n const linkType = patch?.linkType || ''\n const direction = patch?.direction || 'out'\n\n if (sourceEntity && targetEntity) {\n try {\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete: true,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish\n await queryFulfilled\n } catch (error) {\n console.error('Error patching entities during link deletion:', error)\n // Undo patches if there's an error\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n } else {\n console.warn('Source or target entity not provided for link deletion')\n }\n },\n },\n createEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { projectName, createLinkRequestModel, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const { linkType, id: linkId } = createLinkRequestModel\n const state = getState()\n\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const sourceEntityType = sourceEntity?.entityType\n const sourceEntityId = sourceEntity?.entityId\n const targetEntity = patch?.target\n const targetEntityType = targetEntity?.entityType\n const targetEntityId = targetEntity?.entityId\n const direction = patch?.direction || ('out' as 'in' | 'out')\n const linkTypeName = linkType?.split('|')[0] as string\n\n try {\n if (sourceEntity.entityType && targetEntity) {\n // Get the source entity data based on its type\n const sourcePromise = getEntityDataByType(\n sourceEntityType,\n sourceEntityId,\n projectName,\n dispatch,\n )\n\n const targetPromise = getEntityDataByType(\n targetEntityType,\n targetEntityId,\n projectName,\n dispatch,\n )\n\n // Wait for both cache data and source entity data to be loaded\n const res = await Promise.all([sourcePromise, targetPromise])\n const sourceEntityData = res[0]\n const targetEntityData = res[1]\n\n if (!sourceEntityData || !targetEntityData) {\n throw new Error('Source or target entity data not found')\n }\n\n if (!linkId) {\n throw new Error('Link ID not found in cache entry')\n }\n\n const sourceEntity: Entity = {\n entityType: sourceEntityType,\n entityId: sourceEntityId,\n name: sourceEntityData.name,\n label: 'label' in sourceEntityData ? sourceEntityData.label : undefined,\n parents: sourceEntityData.parents || [],\n subType: 'subType' in sourceEntityData ? sourceEntityData.subType : undefined,\n }\n\n const targetEntity: Entity = {\n entityType: targetEntityType,\n entityId: targetEntityId,\n name: targetEntityData.name,\n label: 'label' in targetEntityData ? targetEntityData.label : undefined,\n parents: targetEntityData.parents || [],\n subType: 'subType' in targetEntityData ? targetEntityData.subType : undefined,\n }\n\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType: linkTypeName,\n direction,\n isDelete: false,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish (undo patches if it fails)\n await queryFulfilled\n } else {\n console.warn('Source entity type not provided, falling back to task query')\n throw new Error('Source entity type not provided')\n }\n } catch (error) {\n console.error(error)\n\n // Undo patches if the mutation fails\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n if (sourceEntity && targetEntity) {\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n }\n },\n },\n },\n})\n\nexport const { useDeleteEntityLinkMutation, useCreateEntityLinkMutation } = enhancedApi\n"],"names":["getEntityDataByType","entityType","entityId","projectName","dispatch","gqlLinksApi","patchEntityLinksCache","sourceEntity","targetEntity","linkId","linkType","direction","isDelete","state","patches","patchEntityLinks","entityToPatch","otherEntity","linkDirection","relevantArgs","entityLinksApi","args","entityFoundInAnyCache","patch","draft","entityInCache","entity","link","newLink","existingLinkIndex","current","error","enhancedApi","linksApi","getState","queryFulfilled","createLinkRequestModel","sourceEntityType","sourceEntityId","targetEntityType","targetEntityId","linkTypeName","sourcePromise","targetPromise","res","sourceEntityData","targetEntityData","useDeleteEntityLinkMutation","useCreateEntityLinkMutation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateLinks.es.js","sources":["../../../../../../src/api/queries/links/updateLinks.ts"],"sourcesContent":["import { gqlLinksApi, linksApi } from '@shared/api/generated'\nimport { RootState } from '@reduxjs/toolkit/query'\nimport { current, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EntityLink, EntityWithLinks, entityLinksApi } from './getEntityLinks'\n\ntype Entity = {\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile'\n entityId: string\n name: string\n label?: string | null\n parents: string[]\n subType: string | undefined // Optional subtype for folders, products, versions\n}\n\n// Helper function to get entity data by type\nconst getEntityDataByType = async (\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile',\n entityId: string,\n projectName: string,\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n switch (entityType) {\n case 'task': {\n const resTask = await dispatch(\n gqlLinksApi.endpoints.GetTaskLinkData.initiate({\n projectName,\n taskId: entityId,\n }),\n ).unwrap()\n return resTask?.project.task\n }\n case 'folder': {\n const resFolder = await dispatch(\n gqlLinksApi.endpoints.GetFolderLinkData.initiate({\n projectName,\n folderId: entityId,\n }),\n ).unwrap()\n return resFolder?.project.folder\n }\n case 'product': {\n const resProduct = await dispatch(\n gqlLinksApi.endpoints.GetProductLinkData.initiate({\n projectName,\n productId: entityId,\n }),\n ).unwrap()\n return resProduct?.project.product\n }\n case 'version': {\n const resVersion = await dispatch(\n gqlLinksApi.endpoints.GetVersionLinkData.initiate({\n projectName,\n versionId: entityId,\n }),\n ).unwrap()\n return resVersion?.project.version\n }\n case 'representation': {\n const resRepresentation = await dispatch(\n gqlLinksApi.endpoints.GetRepresentationLinkData.initiate({\n projectName,\n representationId: entityId,\n }),\n ).unwrap()\n return resRepresentation?.project.representation\n }\n case 'workfile': {\n const resWorkfile = await dispatch(\n gqlLinksApi.endpoints.GetWorkfileLinkData.initiate({\n projectName,\n workfileId: entityId,\n }),\n ).unwrap()\n return resWorkfile?.project.workfile\n }\n default:\n throw new Error(`Unknown entity type: ${entityType}`)\n }\n}\n\n// Helper function to patch entity links cache for all entity types\nconst patchEntityLinksCache = (\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete = false,\n }: {\n projectName: string\n sourceEntity: Entity\n targetEntity: Entity\n linkId: string\n linkType: string\n direction: 'in' | 'out'\n isDelete?: boolean\n },\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches: any[] = [],\n) => {\n // Helper function to patch a single entity's links\n const patchEntityLinks = (\n entityToPatch: Entity,\n otherEntity: Entity,\n linkDirection: 'in' | 'out',\n ) => {\n // Get all cached query arguments for the getEntityLinks endpoint\n const cachedArgs = entityLinksApi.util.selectCachedArgsForQuery(state, 'getEntityLinks')\n\n // Filter for queries that match our project and entity type\n const relevantArgs = cachedArgs.filter(\n (args) => args.projectName === projectName && args.entityType === entityToPatch.entityType,\n )\n\n let entityFoundInAnyCache = false\n\n for (const args of relevantArgs) {\n try {\n const patch = dispatch(\n entityLinksApi.util.updateQueryData(\n 'getEntityLinks',\n args,\n (draft: EntityWithLinks[]) => {\n // Find the entity in the cache\n const entityInCache = draft.find((entity) => entity.id === entityToPatch.entityId)\n if (!entityInCache) {\n // Entity not in this specific cache, continue to next one\n return\n }\n\n entityFoundInAnyCache = true\n console.log(\n `Found and patching ${entityToPatch.entityType} ${entityToPatch.entityId} in cache`,\n )\n\n if (isDelete) {\n // Remove the link from the entity\n entityInCache.links = entityInCache.links.filter((link) => link.id !== linkId)\n } else {\n console.log(`Adding new link to ${entityToPatch.entityType}`)\n // Add the new link to the entity\n const newLink: EntityLink = {\n id: linkId,\n direction: linkDirection,\n linkType,\n entityType: otherEntity.entityType,\n node: {\n id: otherEntity.entityId,\n name: otherEntity.name,\n label: otherEntity.label,\n parents: otherEntity.parents,\n subType: otherEntity.subType,\n },\n }\n\n // Check if link already exists and update it, or add new one\n const existingLinkIndex = entityInCache.links.findIndex(\n (link) => link.id === linkId,\n )\n\n if (existingLinkIndex !== -1) {\n entityInCache.links[existingLinkIndex] = newLink\n } else {\n console.log(\n `Adding new link to ${entityToPatch.entityType} links cache`,\n newLink,\n current(entityInCache),\n )\n entityInCache.links.push(newLink)\n }\n }\n },\n ),\n )\n\n patches.push(patch)\n } catch (error) {\n console.error(`Error patching cache for ${entityToPatch.entityType}:`, error)\n }\n }\n\n // If entity was not found in any cache, handle based on context\n if (!entityFoundInAnyCache) {\n // For source entities (where user is creating the link from), we need to invalidate\n // to ensure the user sees the new link appear in the UI\n if (entityToPatch.entityId === sourceEntity.entityId) {\n console.warn(\n `Source ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - invalidating to refresh UI`,\n )\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${entityToPatch.entityType}` },\n ]),\n )\n } else {\n // For target entities, we can skip since they're not currently visible\n console.log(\n `Target ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - skipping patch (entity not currently visible)`,\n )\n // No action needed - when the entity is eventually loaded, it will have the correct links from the server\n }\n }\n }\n\n // Patch the source entity with the link\n patchEntityLinks(sourceEntity, targetEntity, direction)\n\n // Patch the target entity with the link (flip direction)\n const targetDirection = direction === 'in' ? 'out' : 'in'\n patchEntityLinks(targetEntity, sourceEntity, targetDirection)\n}\n\nconst enhancedApi = linksApi.enhanceEndpoints({\n endpoints: {\n deleteEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { linkId, projectName, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const state = getState()\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const targetEntity = patch?.target\n const linkType = patch?.linkType || ''\n const direction = patch?.direction || 'out'\n\n if (sourceEntity && targetEntity) {\n try {\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete: true,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish\n await queryFulfilled\n } catch (error) {\n console.error('Error patching entities during link deletion:', error)\n // Undo patches if there's an error\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n } else {\n console.warn('Source or target entity not provided for link deletion')\n }\n },\n },\n createEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { projectName, createLinkRequestModel, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const { linkType, id: linkId } = createLinkRequestModel\n const state = getState()\n\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const sourceEntityType = sourceEntity?.entityType\n const sourceEntityId = sourceEntity?.entityId\n const targetEntity = patch?.target\n const targetEntityType = targetEntity?.entityType\n const targetEntityId = targetEntity?.entityId\n const direction = patch?.direction || ('out' as 'in' | 'out')\n const linkTypeName = linkType?.split('|')[0] as string\n\n try {\n if (sourceEntity.entityType && targetEntity) {\n // Get the source entity data based on its type\n const sourcePromise = getEntityDataByType(\n sourceEntityType,\n sourceEntityId,\n projectName,\n dispatch,\n )\n\n const targetPromise = getEntityDataByType(\n targetEntityType,\n targetEntityId,\n projectName,\n dispatch,\n )\n\n // Wait for both cache data and source entity data to be loaded\n const res = await Promise.all([sourcePromise, targetPromise])\n const sourceEntityData = res[0]\n const targetEntityData = res[1]\n\n if (!sourceEntityData || !targetEntityData) {\n throw new Error('Source or target entity data not found')\n }\n\n if (!linkId) {\n throw new Error('Link ID not found in cache entry')\n }\n\n const sourceEntity: Entity = {\n entityType: sourceEntityType,\n entityId: sourceEntityId,\n name: sourceEntityData.name,\n label: 'label' in sourceEntityData ? sourceEntityData.label : undefined,\n parents: sourceEntityData.parents || [],\n subType: 'subType' in sourceEntityData ? sourceEntityData.subType : undefined,\n }\n\n const targetEntity: Entity = {\n entityType: targetEntityType,\n entityId: targetEntityId,\n name: targetEntityData.name,\n label: 'label' in targetEntityData ? targetEntityData.label : undefined,\n parents: targetEntityData.parents || [],\n subType: 'subType' in targetEntityData ? targetEntityData.subType : undefined,\n }\n\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType: linkTypeName,\n direction,\n isDelete: false,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish (undo patches if it fails)\n await queryFulfilled\n } else {\n console.warn('Source entity type not provided, falling back to task query')\n throw new Error('Source entity type not provided')\n }\n } catch (error) {\n console.error(error)\n\n // Undo patches if the mutation fails\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n if (sourceEntity && targetEntity) {\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n }\n },\n },\n },\n})\n\nexport const { useDeleteEntityLinkMutation, useCreateEntityLinkMutation } = enhancedApi\n"],"names":["getEntityDataByType","entityType","entityId","projectName","dispatch","gqlLinksApi","patchEntityLinksCache","sourceEntity","targetEntity","linkId","linkType","direction","isDelete","state","patches","patchEntityLinks","entityToPatch","otherEntity","linkDirection","relevantArgs","entityLinksApi","args","entityFoundInAnyCache","patch","draft","entityInCache","entity","link","newLink","existingLinkIndex","current","error","enhancedApi","linksApi","getState","queryFulfilled","createLinkRequestModel","sourceEntityType","sourceEntityId","targetEntityType","targetEntityId","linkTypeName","sourcePromise","targetPromise","res","sourceEntityData","targetEntityData","useDeleteEntityLinkMutation","useCreateEntityLinkMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateLinks.es.js","sources":["../../../../../../src/api/queries/links/updateLinks.ts"],"sourcesContent":["import { gqlLinksApi, linksApi } from '@shared/api/generated'\nimport { RootState } from '@reduxjs/toolkit/query'\nimport { current, ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { entityLinksApi } from './getEntityLinks'\nimport type { EntityLink, EntityWithLinks } from './getEntityLinks'\n\ntype Entity = {\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile'\n entityId: string\n name: string\n label?: string | null\n parents: string[]\n subType: string | undefined // Optional subtype for folders, products, versions\n}\n\n// Helper function to get entity data by type\nconst getEntityDataByType = async (\n entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile',\n entityId: string,\n projectName: string,\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n switch (entityType) {\n case 'task': {\n const resTask = await dispatch(\n gqlLinksApi.endpoints.GetTaskLinkData.initiate({\n projectName,\n taskId: entityId,\n }),\n ).unwrap()\n return resTask?.project.task\n }\n case 'folder': {\n const resFolder = await dispatch(\n gqlLinksApi.endpoints.GetFolderLinkData.initiate({\n projectName,\n folderId: entityId,\n }),\n ).unwrap()\n return resFolder?.project.folder\n }\n case 'product': {\n const resProduct = await dispatch(\n gqlLinksApi.endpoints.GetProductLinkData.initiate({\n projectName,\n productId: entityId,\n }),\n ).unwrap()\n return resProduct?.project.product\n }\n case 'version': {\n const resVersion = await dispatch(\n gqlLinksApi.endpoints.GetVersionLinkData.initiate({\n projectName,\n versionId: entityId,\n }),\n ).unwrap()\n return resVersion?.project.version\n }\n case 'representation': {\n const resRepresentation = await dispatch(\n gqlLinksApi.endpoints.GetRepresentationLinkData.initiate({\n projectName,\n representationId: entityId,\n }),\n ).unwrap()\n return resRepresentation?.project.representation\n }\n case 'workfile': {\n const resWorkfile = await dispatch(\n gqlLinksApi.endpoints.GetWorkfileLinkData.initiate({\n projectName,\n workfileId: entityId,\n }),\n ).unwrap()\n return resWorkfile?.project.workfile\n }\n default:\n throw new Error(`Unknown entity type: ${entityType}`)\n }\n}\n\n// Helper function to patch entity links cache for all entity types\nconst patchEntityLinksCache = (\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete = false,\n }: {\n projectName: string\n sourceEntity: Entity\n targetEntity: Entity\n linkId: string\n linkType: string\n direction: 'in' | 'out'\n isDelete?: boolean\n },\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches: any[] = [],\n) => {\n // Helper function to patch a single entity's links\n const patchEntityLinks = (\n entityToPatch: Entity,\n otherEntity: Entity,\n linkDirection: 'in' | 'out',\n ) => {\n // Get all cached query arguments for the getEntityLinks endpoint\n const cachedArgs = entityLinksApi.util.selectCachedArgsForQuery(state, 'getEntityLinks')\n\n // Filter for queries that match our project and entity type\n const relevantArgs = cachedArgs.filter(\n (args) => args.projectName === projectName && args.entityType === entityToPatch.entityType,\n )\n\n let entityFoundInAnyCache = false\n\n for (const args of relevantArgs) {\n try {\n const patch = dispatch(\n entityLinksApi.util.updateQueryData(\n 'getEntityLinks',\n args,\n (draft: EntityWithLinks[]) => {\n // Find the entity in the cache\n const entityInCache = draft.find((entity) => entity.id === entityToPatch.entityId)\n if (!entityInCache) {\n // Entity not in this specific cache, continue to next one\n return\n }\n\n entityFoundInAnyCache = true\n console.log(\n `Found and patching ${entityToPatch.entityType} ${entityToPatch.entityId} in cache`,\n )\n\n if (isDelete) {\n // Remove the link from the entity\n entityInCache.links = entityInCache.links.filter((link) => link.id !== linkId)\n } else {\n console.log(`Adding new link to ${entityToPatch.entityType}`)\n // Add the new link to the entity\n const newLink: EntityLink = {\n id: linkId,\n direction: linkDirection,\n linkType,\n entityType: otherEntity.entityType,\n node: {\n id: otherEntity.entityId,\n name: otherEntity.name,\n label: otherEntity.label,\n parents: otherEntity.parents,\n subType: otherEntity.subType,\n },\n }\n\n // Check if link already exists and update it, or add new one\n const existingLinkIndex = entityInCache.links.findIndex(\n (link) => link.id === linkId,\n )\n\n if (existingLinkIndex !== -1) {\n entityInCache.links[existingLinkIndex] = newLink\n } else {\n console.log(\n `Adding new link to ${entityToPatch.entityType} links cache`,\n newLink,\n current(entityInCache),\n )\n entityInCache.links.push(newLink)\n }\n }\n },\n ),\n )\n\n patches.push(patch)\n } catch (error) {\n console.error(`Error patching cache for ${entityToPatch.entityType}:`, error)\n }\n }\n\n // If entity was not found in any cache, handle based on context\n if (!entityFoundInAnyCache) {\n // For source entities (where user is creating the link from), we need to invalidate\n // to ensure the user sees the new link appear in the UI\n if (entityToPatch.entityId === sourceEntity.entityId) {\n console.warn(\n `Source ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - invalidating to refresh UI`,\n )\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${entityToPatch.entityType}` },\n ]),\n )\n } else {\n // For target entities, we can skip since they're not currently visible\n console.log(\n `Target ${entityToPatch.entityType} ${entityToPatch.entityId} not in cache - skipping patch (entity not currently visible)`,\n )\n // No action needed - when the entity is eventually loaded, it will have the correct links from the server\n }\n }\n }\n\n // Patch the source entity with the link\n patchEntityLinks(sourceEntity, targetEntity, direction)\n\n // Patch the target entity with the link (flip direction)\n const targetDirection = direction === 'in' ? 'out' : 'in'\n patchEntityLinks(targetEntity, sourceEntity, targetDirection)\n}\n\nconst enhancedApi = linksApi.enhanceEndpoints({\n endpoints: {\n deleteEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { linkId, projectName, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const state = getState()\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const targetEntity = patch?.target\n const linkType = patch?.linkType || ''\n const direction = patch?.direction || 'out'\n\n if (sourceEntity && targetEntity) {\n try {\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType,\n direction,\n isDelete: true,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish\n await queryFulfilled\n } catch (error) {\n console.error('Error patching entities during link deletion:', error)\n // Undo patches if there's an error\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n } else {\n console.warn('Source or target entity not provided for link deletion')\n }\n },\n },\n createEntityLink: {\n transformErrorResponse: (error: any) => error.data?.detail || '',\n async onQueryStarted(\n // @ts-ignore - patch is purely used for patching the entities\n { projectName, createLinkRequestModel, patch },\n { dispatch, getState, queryFulfilled },\n ) {\n const { linkType, id: linkId } = createLinkRequestModel\n const state = getState()\n\n let patches: any[] = []\n\n const sourceEntity = patch?.source\n const sourceEntityType = sourceEntity?.entityType\n const sourceEntityId = sourceEntity?.entityId\n const targetEntity = patch?.target\n const targetEntityType = targetEntity?.entityType\n const targetEntityId = targetEntity?.entityId\n const direction = patch?.direction || ('out' as 'in' | 'out')\n const linkTypeName = linkType?.split('|')[0] as string\n\n try {\n if (sourceEntity.entityType && targetEntity) {\n // Get the source entity data based on its type\n const sourcePromise = getEntityDataByType(\n sourceEntityType,\n sourceEntityId,\n projectName,\n dispatch,\n )\n\n const targetPromise = getEntityDataByType(\n targetEntityType,\n targetEntityId,\n projectName,\n dispatch,\n )\n\n // Wait for both cache data and source entity data to be loaded\n const res = await Promise.all([sourcePromise, targetPromise])\n const sourceEntityData = res[0]\n const targetEntityData = res[1]\n\n if (!sourceEntityData || !targetEntityData) {\n throw new Error('Source or target entity data not found')\n }\n\n if (!linkId) {\n throw new Error('Link ID not found in cache entry')\n }\n\n const sourceEntity: Entity = {\n entityType: sourceEntityType,\n entityId: sourceEntityId,\n name: sourceEntityData.name,\n label: 'label' in sourceEntityData ? sourceEntityData.label : undefined,\n parents: sourceEntityData.parents || [],\n subType: 'subType' in sourceEntityData ? sourceEntityData.subType : undefined,\n }\n\n const targetEntity: Entity = {\n entityType: targetEntityType,\n entityId: targetEntityId,\n name: targetEntityData.name,\n label: 'label' in targetEntityData ? targetEntityData.label : undefined,\n parents: targetEntityData.parents || [],\n subType: 'subType' in targetEntityData ? targetEntityData.subType : undefined,\n }\n\n // Update entity links cache for both entities\n patchEntityLinksCache(\n {\n projectName,\n sourceEntity,\n targetEntity,\n linkId,\n linkType: linkTypeName,\n direction,\n isDelete: false,\n },\n { state, dispatch },\n patches,\n )\n\n // Wait for the mutation to finish (undo patches if it fails)\n await queryFulfilled\n } else {\n console.warn('Source entity type not provided, falling back to task query')\n throw new Error('Source entity type not provided')\n }\n } catch (error) {\n console.error(error)\n\n // Undo patches if the mutation fails\n for (const patch of patches) {\n patch.undo()\n }\n\n // Invalidate entity links queries as fallback\n if (sourceEntity && targetEntity) {\n dispatch(\n entityLinksApi.util.invalidateTags([\n { type: 'link', id: `${projectName}-${sourceEntity.entityType}` },\n { type: 'link', id: `${projectName}-${targetEntity.entityType}` },\n ]),\n )\n }\n }\n },\n },\n },\n})\n\nexport const { useDeleteEntityLinkMutation, useCreateEntityLinkMutation } = enhancedApi\n"],"names":["getEntityDataByType","entityType","entityId","projectName","dispatch","gqlLinksApi","patchEntityLinksCache","sourceEntity","targetEntity","linkId","linkType","direction","isDelete","state","patches","patchEntityLinks","entityToPatch","otherEntity","linkDirection","relevantArgs","entityLinksApi","args","entityFoundInAnyCache","patch","draft","entityInCache","entity","link","newLink","existingLinkIndex","current","error","enhancedApi","linksApi","getState","queryFulfilled","createLinkRequestModel","sourceEntityType","sourceEntityId","targetEntityType","targetEntityId","linkTypeName","sourcePromise","targetPromise","res","sourceEntityData","targetEntityData","useDeleteEntityLinkMutation","useCreateEntityLinkMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAMA,IAAsB,OAC1BC,GACAC,GACAC,GACAC,MACG;AACH,UAAQH,GAAA;AAAA,IACN,KAAK;AAOH,cANgB,MAAMG;AAAA,QACpBC,EAAY,UAAU,gBAAgB,SAAS;AAAA,UAC7C,aAAAF;AAAA,UACA,QAAQD;AAAA,QAAA,CACT;AAAA,MAAA,EACD,OAAA,IACc,QAAQ;AAAA,IAE1B,KAAK;AAOH,cANkB,MAAME;AAAA,QACtBC,EAAY,UAAU,kBAAkB,SAAS;AAAA,UAC/C,aAAAF;AAAA,UACA,UAAUD;AAAA,QAAA,CACX;AAAA,MAAA,EACD,OAAA,IACgB,QAAQ;AAAA,IAE5B,KAAK;AAOH,cANmB,MAAME;AAAA,QACvBC,EAAY,UAAU,mBAAmB,SAAS;AAAA,UAChD,aAAAF;AAAA,UACA,WAAWD;AAAA,QAAA,CACZ;AAAA,MAAA,EACD,OAAA,IACiB,QAAQ;AAAA,IAE7B,KAAK;AAOH,cANmB,MAAME;AAAA,QACvBC,EAAY,UAAU,mBAAmB,SAAS;AAAA,UAChD,aAAAF;AAAA,UACA,WAAWD;AAAA,QAAA,CACZ;AAAA,MAAA,EACD,OAAA,IACiB,QAAQ;AAAA,IAE7B,KAAK;AAOH,cAN0B,MAAME;AAAA,QAC9BC,EAAY,UAAU,0BAA0B,SAAS;AAAA,UACvD,aAAAF;AAAA,UACA,kBAAkBD;AAAA,QAAA,CACnB;AAAA,MAAA,EACD,OAAA,IACwB,QAAQ;AAAA,IAEpC,KAAK;AAOH,cANoB,MAAME;AAAA,QACxBC,EAAY,UAAU,oBAAoB,SAAS;AAAA,UACjD,aAAAF;AAAA,UACA,YAAYD;AAAA,QAAA,CACb;AAAA,MAAA,EACD,OAAA,IACkB,QAAQ;AAAA,IAE9B;AACE,YAAM,IAAI,MAAM,wBAAwBD,CAAU,EAAE;AAAA,EAAA;AAE1D,GAGMK,IAAwB,CAC5B;AAAA,EACE,aAAAH;AAAA,EACA,cAAAI;AAAA,EACA,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC,IAAW;AACb,GASA;AAAA,EACE,OAAAC;AAAA,EACA,UAAAT;AACF,GAIAU,IAAiB,CAAA,MACd;AAEH,QAAMC,IAAmB,CACvBC,GACAC,GACAC,MACG;AAKH,UAAMC,IAHaC,EAAe,KAAK,yBAAyBP,GAAO,gBAAgB,EAGvD;AAAA,MAC9B,CAACQ,MAASA,EAAK,gBAAgBlB,KAAekB,EAAK,eAAeL,EAAc;AAAA,IAAA;AAGlF,QAAIM,IAAwB;AAE5B,eAAWD,KAAQF;AACjB,UAAI;AACF,cAAMI,IAAQnB;AAAA,UACZgB,EAAe,KAAK;AAAA,YAClB;AAAA,YACAC;AAAA,YACA,CAACG,MAA6B;AAE5B,oBAAMC,IAAgBD,EAAM,KAAK,CAACE,MAAWA,EAAO,OAAOV,EAAc,QAAQ;AACjF,kBAAKS;AAUL,oBALAH,IAAwB,IACxB,QAAQ;AAAA,kBACN,sBAAsBN,EAAc,UAAU,IAAIA,EAAc,QAAQ;AAAA,gBAAA,GAGtEJ;AAEF,kBAAAa,EAAc,QAAQA,EAAc,MAAM,OAAO,CAACE,MAASA,EAAK,OAAOlB,CAAM;AAAA,qBACxE;AACL,0BAAQ,IAAI,sBAAsBO,EAAc,UAAU,EAAE;AAE5D,wBAAMY,IAAsB;AAAA,oBAC1B,IAAInB;AAAA,oBACJ,WAAWS;AAAA,oBACX,UAAAR;AAAA,oBACA,YAAYO,EAAY;AAAA,oBACxB,MAAM;AAAA,sBACJ,IAAIA,EAAY;AAAA,sBAChB,MAAMA,EAAY;AAAA,sBAClB,OAAOA,EAAY;AAAA,sBACnB,SAASA,EAAY;AAAA,sBACrB,SAASA,EAAY;AAAA,oBAAA;AAAA,kBACvB,GAIIY,IAAoBJ,EAAc,MAAM;AAAA,oBAC5C,CAACE,MAASA,EAAK,OAAOlB;AAAA,kBAAA;AAGxB,kBAAIoB,MAAsB,KACxBJ,EAAc,MAAMI,CAAiB,IAAID,KAEzC,QAAQ;AAAA,oBACN,sBAAsBZ,EAAc,UAAU;AAAA,oBAC9CY;AAAA,oBACAE,EAAQL,CAAa;AAAA,kBAAA,GAEvBA,EAAc,MAAM,KAAKG,CAAO;AAAA,gBAEpC;AAAA,YACF;AAAA,UAAA;AAAA,QACF;AAGF,QAAAd,EAAQ,KAAKS,CAAK;AAAA,MACpB,SAASQ,GAAO;AACd,gBAAQ,MAAM,4BAA4Bf,EAAc,UAAU,KAAKe,CAAK;AAAA,MAC9E;AAIF,IAAKT,MAGCN,EAAc,aAAaT,EAAa,YAC1C,QAAQ;AAAA,MACN,UAAUS,EAAc,UAAU,IAAIA,EAAc,QAAQ;AAAA,IAAA,GAE9DZ;AAAA,MACEgB,EAAe,KAAK,eAAe;AAAA,QACjC,EAAE,MAAM,QAAQ,IAAI,GAAGjB,CAAW,IAAIa,EAAc,UAAU,GAAA;AAAA,MAAG,CAClE;AAAA,IAAA,KAIH,QAAQ;AAAA,MACN,UAAUA,EAAc,UAAU,IAAIA,EAAc,QAAQ;AAAA,IAAA;AAAA,EAKpE;AAGA,EAAAD,EAAiBR,GAAcC,GAAcG,CAAS,GAItDI,EAAiBP,GAAcD,GADPI,MAAc,OAAO,QAAQ,IACO;AAC9D,GAEMqB,IAAcC,EAAS,iBAAiB;AAAA,EAC5C,WAAW;AAAA,IACT,kBAAkB;AAAA,MAChB,wBAAwB,CAACF,MAAeA,EAAM,MAAM,UAAU;AAAA,MAC9D,MAAM,eAEJ,EAAE,QAAAtB,GAAQ,aAAAN,GAAa,OAAAoB,EAAA,GACvB,EAAE,UAAAnB,GAAU,UAAA8B,GAAU,gBAAAC,KACtB;AACA,cAAMtB,IAAQqB,EAAA;AACd,YAAIpB,IAAiB,CAAA;AAErB,cAAMP,IAAegB,GAAO,QACtBf,IAAee,GAAO,QACtBb,IAAWa,GAAO,YAAY,IAC9BZ,IAAYY,GAAO,aAAa;AAEtC,YAAIhB,KAAgBC;AAClB,cAAI;AAEF,YAAAF;AAAA,cACE;AAAA,gBACE,aAAAH;AAAA,gBACA,cAAAI;AAAA,gBACA,cAAAC;AAAA,gBACA,QAAAC;AAAA,gBACA,UAAAC;AAAA,gBACA,WAAAC;AAAA,gBACA,UAAU;AAAA,cAAA;AAAA,cAEZ,EAAE,OAAAE,GAAO,UAAAT,EAAA;AAAA,cACTU;AAAA,YAAA,GAIF,MAAMqB;AAAA,UACR,SAASJ,GAAO;AACd,oBAAQ,MAAM,iDAAiDA,CAAK;AAEpE,uBAAWR,KAAST;AAClBS,cAAAA,EAAM,KAAA;AAIR,YAAAnB;AAAA,cACEgB,EAAe,KAAK,eAAe;AAAA,gBACjC,EAAE,MAAM,QAAQ,IAAI,GAAGjB,CAAW,IAAII,EAAa,UAAU,GAAA;AAAA,gBAC7D,EAAE,MAAM,QAAQ,IAAI,GAAGJ,CAAW,IAAIK,EAAa,UAAU,GAAA;AAAA,cAAG,CACjE;AAAA,YAAA;AAAA,UAEL;AAAA;AAEA,kBAAQ,KAAK,wDAAwD;AAAA,MAEzE;AAAA,IAAA;AAAA,IAEF,kBAAkB;AAAA,MAChB,wBAAwB,CAACuB,MAAeA,EAAM,MAAM,UAAU;AAAA,MAC9D,MAAM,eAEJ,EAAE,aAAA5B,GAAa,wBAAAiC,GAAwB,OAAAb,EAAA,GACvC,EAAE,UAAAnB,GAAU,UAAA8B,GAAU,gBAAAC,KACtB;AACA,cAAM,EAAE,UAAAzB,GAAU,IAAID,EAAA,IAAW2B,GAC3BvB,IAAQqB,EAAA;AAEd,YAAIpB,IAAiB,CAAA;AAErB,cAAMP,IAAegB,GAAO,QACtBc,IAAmB9B,GAAc,YACjC+B,IAAiB/B,GAAc,UAC/BC,IAAee,GAAO,QACtBgB,IAAmB/B,GAAc,YACjCgC,IAAiBhC,GAAc,UAC/BG,IAAYY,GAAO,aAAc,OACjCkB,IAAe/B,GAAU,MAAM,GAAG,EAAE,CAAC;AAE3C,YAAI;AACF,cAAIH,EAAa,cAAcC,GAAc;AAE3C,kBAAMkC,IAAgB1C;AAAA,cACpBqC;AAAA,cACAC;AAAA,cACAnC;AAAA,cACAC;AAAA,YAAA,GAGIuC,IAAgB3C;AAAA,cACpBuC;AAAA,cACAC;AAAA,cACArC;AAAA,cACAC;AAAA,YAAA,GAIIwC,IAAM,MAAM,QAAQ,IAAI,CAACF,GAAeC,CAAa,CAAC,GACtDE,IAAmBD,EAAI,CAAC,GACxBE,IAAmBF,EAAI,CAAC;AAE9B,gBAAI,CAACC,KAAoB,CAACC;AACxB,oBAAM,IAAI,MAAM,wCAAwC;AAG1D,gBAAI,CAACrC;AACH,oBAAM,IAAI,MAAM,kCAAkC;AAGpD,kBAAMF,IAAuB;AAAA,cAC3B,YAAY8B;AAAA,cACZ,UAAUC;AAAA,cACV,MAAMO,EAAiB;AAAA,cACvB,OAAO,WAAWA,IAAmBA,EAAiB,QAAQ;AAAA,cAC9D,SAASA,EAAiB,WAAW,CAAA;AAAA,cACrC,SAAS,aAAaA,IAAmBA,EAAiB,UAAU;AAAA,YAAA,GAGhErC,IAAuB;AAAA,cAC3B,YAAY+B;AAAA,cACZ,UAAUC;AAAA,cACV,MAAMM,EAAiB;AAAA,cACvB,OAAO,WAAWA,IAAmBA,EAAiB,QAAQ;AAAA,cAC9D,SAASA,EAAiB,WAAW,CAAA;AAAA,cACrC,SAAS,aAAaA,IAAmBA,EAAiB,UAAU;AAAA,YAAA;AAItE,YAAAxC;AAAA,cACE;AAAA,gBACE,aAAAH;AAAA,gBACA,cAAAI;AAAAA,gBACA,cAAAC;AAAAA,gBACA,QAAAC;AAAA,gBACA,UAAUgC;AAAA,gBACV,WAAA9B;AAAA,gBACA,UAAU;AAAA,cAAA;AAAA,cAEZ,EAAE,OAAAE,GAAO,UAAAT,EAAA;AAAA,cACTU;AAAA,YAAA,GAIF,MAAMqB;AAAA,UACR;AACE,0BAAQ,KAAK,6DAA6D,GACpE,IAAI,MAAM,iCAAiC;AAAA,QAErD,SAASJ,GAAO;AACd,kBAAQ,MAAMA,CAAK;AAGnB,qBAAWR,KAAST;AAClBS,YAAAA,EAAM,KAAA;AAIR,UAAIhB,KAAgBC,KAClBJ;AAAA,YACEgB,EAAe,KAAK,eAAe;AAAA,cACjC,EAAE,MAAM,QAAQ,IAAI,GAAGjB,CAAW,IAAII,EAAa,UAAU,GAAA;AAAA,cAC7D,EAAE,MAAM,QAAQ,IAAI,GAAGJ,CAAW,IAAIK,EAAa,UAAU,GAAA;AAAA,YAAG,CACjE;AAAA,UAAA;AAAA,QAGP;AAAA,MACF;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,6BAAAuC,IAA6B,6BAAAC,OAAgChB;"}