@ynput/ayon-frontend-shared 0.3.8 → 0.3.10

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 (811) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +182 -171
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +13 -11
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/api.cjs.js +1 -1
  11. package/dist/api.es.js +340 -331
  12. package/dist/api.es.js.map +1 -1
  13. package/dist/context.cjs.js +1 -1
  14. package/dist/context.es.js +39 -36
  15. package/dist/context.es.js.map +1 -1
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +11 -9
  18. package/dist/index.es.js.map +1 -1
  19. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  20. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  21. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  22. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  23. package/dist/shared/src/api/generated/projectFolders.cjs.js +2 -0
  24. package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -0
  25. package/dist/shared/src/api/generated/projectFolders.es.js +44 -0
  26. package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -0
  27. package/dist/shared/src/api/generated/projects.cjs.js +1 -1
  28. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  29. package/dist/shared/src/api/generated/projects.es.js +20 -0
  30. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  31. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  32. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  33. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -1
  34. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  35. package/dist/shared/src/api/queries/actions/getActions.es.js +11 -10
  36. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  37. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  38. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/activities/getActivities.es.js +11 -10
  40. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  41. package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
  42. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/activities/getCategories.es.js +3 -2
  44. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -1
  46. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/activities/getMentions.es.js +3 -2
  48. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/activities/updateReaction.es.js +4 -3
  52. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/addons/getAddons.es.js +7 -6
  56. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +4 -3
  60. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -1
  62. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +4 -3
  64. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -1
  66. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/cloud/cloud.es.js +9 -8
  68. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/config/getConfig.cjs.js +1 -1
  70. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/config/getConfig.es.js +9 -8
  72. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/entities/getEntity.es.js +13 -12
  76. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  78. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -3
  80. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  82. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +4 -2
  84. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  86. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  88. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entityLists/getLists.es.js +15 -14
  92. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  93. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -1
  94. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  95. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +3 -2
  96. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  97. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  98. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +22 -20
  100. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  102. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +17 -16
  104. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  106. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/folders/getFolders.es.js +4 -3
  108. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  110. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +22 -6
  112. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  114. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +3 -2
  116. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  118. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/links/getLinks.es.js +14 -13
  120. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  121. package/dist/shared/src/api/queries/links/updateLinks.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/links/updateLinks.es.js +17 -16
  124. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/overview/getOverview.es.js +37 -36
  128. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  130. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/overview/patchVersions.es.js +88 -53
  132. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  134. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/overview/updateOverview.es.js +8 -6
  136. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -1
  138. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +4 -3
  140. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  142. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/products/createProduct.es.js +3 -2
  144. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  146. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/project/getProject.es.js +9 -8
  148. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +2 -0
  150. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -0
  151. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +178 -0
  152. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -0
  153. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  154. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/review/getReview.es.js +15 -14
  156. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
  158. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/review/updateReview.es.js +7 -6
  160. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
  162. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  163. package/dist/shared/src/api/queries/share/share.es.js +3 -2
  164. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  165. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
  166. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/system/getSystem.es.js +5 -4
  168. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js +1 -1
  170. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/tasks/updateTasks.es.js +6 -6
  172. package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
  173. package/dist/shared/src/api/queries/uris/getUris.cjs.js +1 -1
  174. package/dist/shared/src/api/queries/uris/getUris.cjs.js.map +1 -1
  175. package/dist/shared/src/api/queries/uris/getUris.es.js +3 -2
  176. package/dist/shared/src/api/queries/uris/getUris.es.js.map +1 -1
  177. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  178. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  179. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +6 -5
  180. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  181. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  182. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  183. package/dist/shared/src/api/queries/users/getUsers.es.js +20 -18
  184. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  185. package/dist/shared/src/api/queries/users/guests.cjs.js +1 -1
  186. package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -1
  187. package/dist/shared/src/api/queries/users/guests.es.js +5 -4
  188. package/dist/shared/src/api/queries/users/guests.es.js.map +1 -1
  189. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
  190. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  191. package/dist/shared/src/api/queries/users/updateUsers.es.js +21 -20
  192. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  193. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  194. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  195. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +348 -136
  196. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  197. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js +1 -1
  198. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  199. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js +57 -59
  200. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  201. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -1
  202. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  203. package/dist/shared/src/api/queries/versions/updateVersions.es.js +6 -5
  204. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  205. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
  206. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  207. package/dist/shared/src/api/queries/views/getViews.es.js +11 -10
  208. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  209. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -1
  210. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  211. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +4 -3
  212. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  213. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  214. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  215. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  216. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  217. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +3 -3
  218. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  219. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +13 -13
  220. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  221. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  222. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  223. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +24 -22
  224. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  225. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  226. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  227. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  228. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  229. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  230. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  231. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  232. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  233. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  234. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  235. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  236. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  237. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  238. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  239. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  240. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  241. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  242. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  243. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +16 -14
  244. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  245. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  246. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  247. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  248. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  249. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  250. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  251. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
  252. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  253. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  254. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  255. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  256. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  257. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  258. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  259. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  260. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  261. package/dist/shared/src/components/Menu/Menu.styled.cjs.js +0 -1
  262. package/dist/shared/src/components/Menu/Menu.styled.cjs.js.map +1 -1
  263. package/dist/shared/src/components/Menu/Menu.styled.es.js +0 -1
  264. package/dist/shared/src/components/Menu/Menu.styled.es.js.map +1 -1
  265. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  266. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  267. package/dist/shared/src/components/Menu/MenuList.es.js +21 -21
  268. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  269. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  270. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  271. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +58 -38
  272. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  273. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  274. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -107
  276. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  277. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  278. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  279. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  280. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  281. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  282. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  283. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
  284. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  285. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  286. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  287. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
  288. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  289. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  290. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  291. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  292. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  293. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  294. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  295. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  296. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  297. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  298. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  299. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +32 -30
  300. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  301. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  302. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  303. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  304. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  308. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  312. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  313. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  314. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  315. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  316. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  317. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +31 -0
  318. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -0
  319. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +107 -0
  320. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -0
  321. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  322. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  323. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +33 -28
  324. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  325. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  326. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +12 -11
  328. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  329. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  330. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  331. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  332. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  333. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  334. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  335. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  336. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  337. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  338. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  339. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  340. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  341. package/dist/shared/src/config/plannerFeatures.cjs.js +2 -0
  342. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -0
  343. package/dist/shared/src/config/plannerFeatures.es.js +50 -0
  344. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -0
  345. package/dist/shared/src/config/powerpackFeatures.cjs.js +2 -0
  346. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -0
  347. package/dist/shared/src/config/powerpackFeatures.es.js +74 -0
  348. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -0
  349. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  350. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  352. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  353. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  354. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Actions/Actions.es.js +18 -15
  356. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  357. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  358. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +33 -32
  360. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  361. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  362. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  364. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +73 -68
  368. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  370. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  372. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  374. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  376. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  378. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  380. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
  388. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
  392. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
  396. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +4 -2
  400. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  404. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  405. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  406. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  408. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  409. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  410. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  412. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  413. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  414. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  416. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  417. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  418. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  420. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  421. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  422. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  424. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  425. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js +1 -1
  426. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js +8 -8
  428. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js.map +1 -1
  429. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  430. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
  432. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  433. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  434. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  436. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  437. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  438. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  440. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  441. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  443. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  444. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +18 -18
  446. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  447. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  448. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  450. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  451. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  452. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  454. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  455. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  456. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  458. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  459. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  460. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  462. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +686 -616
  466. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +26 -11
  468. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +40 -25
  470. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
  474. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +2 -0
  476. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -0
  477. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +381 -0
  478. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -0
  479. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  482. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  486. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -2
  488. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +13 -9
  490. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +147 -119
  494. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -3
  496. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +487 -262
  498. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +149 -145
  502. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  506. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +118 -109
  512. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +30 -30
  516. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +94 -91
  520. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js +5 -0
  522. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -0
  523. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js +67 -0
  524. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -0
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +33 -31
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +30 -28
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js +2 -0
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js.map +1 -0
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js +56 -0
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js.map +1 -0
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +57 -40
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +30 -28
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +2 -0
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -0
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +303 -0
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -0
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +175 -156
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  592. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +21 -19
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +21 -18
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -29
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  617. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  618. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  619. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +7 -5
  620. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  621. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  622. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  623. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +90 -85
  624. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  625. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +9 -5
  626. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  627. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +11 -7
  628. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  629. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  630. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  631. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
  632. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  633. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  634. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  635. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +6 -4
  636. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  637. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  638. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  639. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +14 -12
  640. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  641. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  642. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
  644. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  645. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  646. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  647. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  648. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  649. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  650. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  651. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
  652. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  653. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  654. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  655. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +40 -38
  656. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  657. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  658. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  659. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +10 -8
  660. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  661. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  662. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  663. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +5 -3
  664. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  665. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  666. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  667. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  668. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  669. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  670. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  671. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  672. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  673. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  674. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  675. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +12 -10
  676. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  677. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  678. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  680. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  681. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  682. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  683. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  684. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  685. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  686. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  687. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  688. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  689. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  690. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  691. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  692. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  693. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  694. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  695. package/dist/shared/src/context/PowerpackContext.es.js +46 -94
  696. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  697. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  698. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  699. package/dist/shared/src/context/ProjectContext.es.js +6 -4
  700. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  701. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  702. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  703. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  704. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  705. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  706. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  707. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  708. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  709. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  710. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  711. package/dist/shared/src/context/SubtasksModulesContext.es.js +21 -14
  712. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  713. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  714. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  715. package/dist/shared/src/context/UriContext.es.js +7 -5
  716. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  717. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  718. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  719. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  720. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  721. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  722. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  723. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  724. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  725. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  726. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  727. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  728. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  729. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  730. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  731. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  732. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  733. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  734. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  735. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  736. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  737. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  738. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  739. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  740. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  741. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  742. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  743. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  744. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  745. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +2 -0
  746. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -0
  747. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +69 -0
  748. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -0
  749. package/dist/shared/src/util/errorHandling.cjs.js +2 -0
  750. package/dist/shared/src/util/errorHandling.cjs.js.map +1 -0
  751. package/dist/shared/src/util/errorHandling.es.js +9 -0
  752. package/dist/shared/src/util/errorHandling.es.js.map +1 -0
  753. package/dist/shared/src/util/folderHierarchy.cjs.js +2 -0
  754. package/dist/shared/src/util/folderHierarchy.cjs.js.map +1 -0
  755. package/dist/shared/src/util/folderHierarchy.es.js +14 -0
  756. package/dist/shared/src/util/folderHierarchy.es.js.map +1 -0
  757. package/dist/shared/src/util/folderOperations.cjs.js +2 -0
  758. package/dist/shared/src/util/folderOperations.cjs.js.map +1 -0
  759. package/dist/shared/src/util/folderOperations.es.js +27 -0
  760. package/dist/shared/src/util/folderOperations.es.js.map +1 -0
  761. package/dist/shared/src/util/keyboardShortcuts.cjs.js +2 -0
  762. package/dist/shared/src/util/keyboardShortcuts.cjs.js.map +1 -0
  763. package/dist/shared/src/util/keyboardShortcuts.es.js +8 -0
  764. package/dist/shared/src/util/keyboardShortcuts.es.js.map +1 -0
  765. package/dist/types/api/generated/actions.d.ts +2 -1
  766. package/dist/types/api/generated/folders.d.ts +3 -3
  767. package/dist/types/api/generated/index.d.ts +2 -0
  768. package/dist/types/api/generated/projectFolders.d.ts +79 -0
  769. package/dist/types/api/generated/projects.d.ts +55 -1
  770. package/dist/types/api/generated/system.d.ts +2 -1
  771. package/dist/types/api/queries/index.d.ts +1 -0
  772. package/dist/types/api/queries/project/getProject.d.ts +4 -0
  773. package/dist/types/api/queries/projectFolders/index.d.ts +1 -0
  774. package/dist/types/api/queries/projectFolders/projectFolders.d.ts +985 -0
  775. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1 -1
  776. package/dist/types/components/FolderForm/FolderForm.d.ts +24 -0
  777. package/dist/types/components/FolderForm/index.d.ts +3 -0
  778. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -1
  779. package/dist/types/components/SimpleFormDialog/FormFile.d.ts +16 -0
  780. package/dist/types/components/SimpleFormDialog/SimpleFormDialog.d.ts +2 -1
  781. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +3 -2
  782. package/dist/types/config/index.d.ts +2 -0
  783. package/dist/types/config/plannerFeatures.d.ts +13 -0
  784. package/dist/types/config/powerpackFeatures.d.ts +6 -0
  785. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +2 -1
  786. package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.d.ts +1 -0
  787. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
  788. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.d.ts +1 -0
  789. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -0
  790. package/dist/types/containers/ProjectTreeTable/components/ColumnDndProvider.d.ts +6 -0
  791. package/dist/types/containers/ProjectTreeTable/components/index.d.ts +1 -0
  792. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -0
  793. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +6 -1
  794. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.d.ts +26 -0
  795. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  796. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  797. package/dist/types/containers/ProjectTreeTable/hooks/useColumnDragRestriction.d.ts +19 -0
  798. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +4 -0
  799. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +2 -1
  800. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +2 -2
  801. package/dist/types/context/PowerpackContext.d.ts +17 -6
  802. package/dist/types/util/buildHierarchicalTableRows.d.ts +43 -0
  803. package/dist/types/util/errorHandling.d.ts +7 -0
  804. package/dist/types/util/folderHierarchy.d.ts +37 -0
  805. package/dist/types/util/folderOperations.d.ts +34 -0
  806. package/dist/types/util/index.d.ts +5 -0
  807. package/dist/types/util/keyboardShortcuts.d.ts +6 -0
  808. package/dist/util.cjs.js +1 -1
  809. package/dist/util.es.js +51 -41
  810. package/dist/util.es.js.map +1 -1
  811. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const q=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const g=require("./getLists.cjs.js"),b=q.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:t,entityListPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityList",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getListsInfinite");let c=[];for(const a of L){const l=i(g.default.util.updateQueryData("getListsInfinite",a.originalArgs,p=>{for(const d of p.pages){const s=d.lists.findIndex(n=>n.id===t);if(s!==-1){const n=d.lists[s];Object.assign(n,e);break}}}));c.push(l)}const r=q.api.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getEntityList"&&a.originalArgs.listId===t);for(const a of r){const l=i(q.api.util.updateQueryData("getEntityList",a.originalArgs,p=>{Object.assign(p,{...p,...e})}));c.push(l)}try{await u}catch{c.forEach(a=>{a.undo()})}},transformErrorResponse:t=>t.data.detail,invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i}]},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:t,entityListMultiPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];if(!e.items||e.items.length===0){await u;return}for(const r of L){if(r.originalArgs.listId!==t)continue;const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{let p=!1;for(const d of l.pages)e.items?.forEach(s=>{const n=d.items.findIndex(y=>y.id===s.id||y.entityId===s.entityId);if(n!==-1){const y=d.items[n],I={...y,...s,attrib:{...y.attrib,...s.attrib||{}}};Object.assign(d.items[n],I),s.position!==void 0&&(p=!0)}});if(p){let d=l.pages.flatMap(n=>n.items);d.sort((n,y)=>{const I=typeof n.position=="number"?n.position:1/0,v=typeof y.position=="number"?y.position:1/0;return I-v});let s=0;for(const n of l.pages){const y=n.items.length;n.items=d.slice(s,s+y),s+=y}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,entityListMultiPatchModel:{items:u}})=>u?.every(o=>Object.keys(o).every(L=>L==="id"||L==="position"))?[]:[{type:"entityList",id:i},{type:"entityListItem",id:i},...(u||[]).flatMap(o=>(o.id?[{type:"entityListItem",id:o.id}]:[]).concat(o.entityId?[{type:"entityListItem",id:o.entityId}]:[]))],transformErrorResponse:t=>t.data.detail},updateEntityListItem:{async onQueryStarted({listItemId:t,entityListItemPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];for(const r of L){const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{for(const p of l.pages){const d=p.items.findIndex(s=>s.id===t);if(d!==-1){const s=p.items[d],n={...s,attrib:{...s.attrib,...e.attrib}};Object.assign(s,n);break}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,listItemId:u})=>[{type:"entityListItem",id:i},{type:"entityListItem",id:u}]},createEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]},deleteEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]}}}),E=b.injectEndpoints({endpoints:t=>({createSessionFromList:t.mutation({query:e=>({url:`/api/addons/review/${e.addonVersion}/${e.projectName}/sessions/fromList`,method:"POST",body:e.sessionFromListRequest}),transformErrorResponse:e=>e.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:h,useUpdateEntityListMutation:M,useDeleteEntityListMutation:R,useUpdateEntityListItemsMutation:T,useUpdateEntityListItemMutation:S,useCreateEntityListItemMutation:_,useDeleteEntityListItemMutation:j,useCreateSessionFromListMutation:O}=E;exports.entityListsQueriesGql=g.default;exports.entityListsQueriesRest=E;exports.useCreateEntityListItemMutation=_;exports.useCreateEntityListMutation=h;exports.useCreateSessionFromListMutation=O;exports.useDeleteEntityListItemMutation=j;exports.useDeleteEntityListMutation=R;exports.useUpdateEntityListItemMutation=S;exports.useUpdateEntityListItemsMutation=T;exports.useUpdateEntityListMutation=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const q=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const g=require("./getLists.cjs.js"),b=q.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:t,entityListPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityList",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getListsInfinite");let c=[];for(const a of L){const l=i(g.default.util.updateQueryData("getListsInfinite",a.originalArgs,p=>{for(const d of p.pages){const s=d.lists.findIndex(n=>n.id===t);if(s!==-1){const n=d.lists[s];Object.assign(n,e);break}}}));c.push(l)}const r=q.api.util.selectInvalidatedBy(f,o).filter(a=>a.endpointName==="getEntityList"&&a.originalArgs.listId===t);for(const a of r){const l=i(q.api.util.updateQueryData("getEntityList",a.originalArgs,p=>{Object.assign(p,{...p,...e})}));c.push(l)}try{await u}catch{c.forEach(a=>{a.undo()})}},transformErrorResponse:t=>t.data.detail,invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i}]},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:t,entityListMultiPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];if(!e.items||e.items.length===0){await u;return}for(const r of L){if(r.originalArgs.listId!==t)continue;const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{let p=!1;for(const d of l.pages)e.items?.forEach(s=>{const n=d.items.findIndex(y=>y.id===s.id||y.entityId===s.entityId);if(n!==-1){const y=d.items[n],I={...y,...s,attrib:{...y.attrib,...s.attrib||{}}};Object.assign(d.items[n],I),s.position!==void 0&&(p=!0)}});if(p){let d=l.pages.flatMap(n=>n.items);d.sort((n,y)=>{const I=typeof n.position=="number"?n.position:1/0,v=typeof y.position=="number"?y.position:1/0;return I-v});let s=0;for(const n of l.pages){const y=n.items.length;n.items=d.slice(s,s+y),s+=y}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,entityListMultiPatchModel:{items:u}})=>u?.every(o=>Object.keys(o).every(L=>L==="id"||L==="position"))?[]:[{type:"entityList",id:i},{type:"entityListItem",id:i},...(u||[]).flatMap(o=>(o.id?[{type:"entityListItem",id:o.id}]:[]).concat(o.entityId?[{type:"entityListItem",id:o.entityId}]:[]))],transformErrorResponse:t=>t.data.detail},updateEntityListItem:{async onQueryStarted({listItemId:t,entityListItemPatchModel:e},{dispatch:i,queryFulfilled:u,getState:m}){const f=m(),o=[{type:"entityListItem",id:t}],L=g.default.util.selectInvalidatedBy(f,o).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];for(const r of L){const a=i(g.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,l=>{for(const p of l.pages){const d=p.items.findIndex(s=>s.id===t);if(d!==-1){const s=p.items[d],n={...s,attrib:{...s.attrib,...e.attrib}};Object.assign(s,n);break}}}));c.push(a)}try{await u}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(t,e,{listId:i,listItemId:u})=>[{type:"entityListItem",id:i},{type:"entityListItem",id:u}]},createEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]},deleteEntityListItem:{invalidatesTags:(t,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]}}}),E=b.injectEndpoints({endpoints:t=>({createSessionFromList:t.mutation({query:e=>({url:`/api/addons/review/${e.addonVersion}/${e.projectName}/sessions/fromList`,method:"POST",body:e.sessionFromListRequest}),transformErrorResponse:e=>e.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:h,useUpdateEntityListMutation:M,useDeleteEntityListMutation:R,useUpdateEntityListItemsMutation:T,useUpdateEntityListItemMutation:S,useCreateEntityListItemMutation:_,useDeleteEntityListItemMutation:j,useCreateSessionFromListMutation:O}=E;exports.entityListsQueriesGql=g.default;exports.entityListsQueriesRest=E;exports.useCreateEntityListItemMutation=_;exports.useCreateEntityListMutation=h;exports.useCreateSessionFromListMutation=O;exports.useDeleteEntityListItemMutation=j;exports.useDeleteEntityListMutation=R;exports.useUpdateEntityListItemMutation=S;exports.useUpdateEntityListItemsMutation=T;exports.useUpdateEntityListMutation=M;
2
2
  //# sourceMappingURL=updateLists.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n\n // Update getListsInfinite cache (GraphQL)\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\n })\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position, using updated positions from the map\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n transformErrorResponse: (error: any) => error.data.detail,\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\n ],\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n\n // Update getListsInfinite cache (GraphQL)\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\n })\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position, using updated positions from the map\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n transformErrorResponse: (error: any) => error.data.detail,\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\n ],\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
23
23
  import "../../generated/products.es.js";
24
24
  import "../../generated/projectDashboard.es.js";
25
25
  import "../../generated/projects.es.js";
26
+ import "../../generated/projectFolders.es.js";
26
27
  import "../../generated/reviewables.es.js";
27
28
  import "../../generated/services.es.js";
28
29
  import "../../generated/system.es.js";
@@ -223,27 +224,27 @@ const v = E.enhanceEndpoints({
223
224
  })
224
225
  }), {
225
226
  // LIST MUTATIONS
226
- useCreateEntityListMutation: pt,
227
- useUpdateEntityListMutation: dt,
228
- useDeleteEntityListMutation: mt,
227
+ useCreateEntityListMutation: dt,
228
+ useUpdateEntityListMutation: mt,
229
+ useDeleteEntityListMutation: yt,
229
230
  // LIST ITEM MUTATIONS
230
- useUpdateEntityListItemsMutation: yt,
231
- useUpdateEntityListItemMutation: ct,
232
- useCreateEntityListItemMutation: ut,
233
- useDeleteEntityListItemMutation: lt,
231
+ useUpdateEntityListItemsMutation: ct,
232
+ useUpdateEntityListItemMutation: ut,
233
+ useCreateEntityListItemMutation: lt,
234
+ useDeleteEntityListItemMutation: gt,
234
235
  // REVIEW SESSION MUTATIONS
235
- useCreateSessionFromListMutation: gt
236
+ useCreateSessionFromListMutation: ft
236
237
  } = b;
237
238
  export {
238
239
  L as entityListsQueriesGql,
239
240
  b as entityListsQueriesRest,
240
- ut as useCreateEntityListItemMutation,
241
- pt as useCreateEntityListMutation,
242
- gt as useCreateSessionFromListMutation,
243
- lt as useDeleteEntityListItemMutation,
244
- mt as useDeleteEntityListMutation,
245
- ct as useUpdateEntityListItemMutation,
246
- yt as useUpdateEntityListItemsMutation,
247
- dt as useUpdateEntityListMutation
241
+ lt as useCreateEntityListItemMutation,
242
+ dt as useCreateEntityListMutation,
243
+ ft as useCreateSessionFromListMutation,
244
+ gt as useDeleteEntityListItemMutation,
245
+ yt as useDeleteEntityListMutation,
246
+ ut as useUpdateEntityListItemMutation,
247
+ ct as useUpdateEntityListItemsMutation,
248
+ mt as useUpdateEntityListMutation
248
249
  };
249
250
  //# sourceMappingURL=updateLists.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n\n // Update getListsInfinite cache (GraphQL)\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\n })\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position, using updated positions from the map\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n transformErrorResponse: (error: any) => error.data.detail,\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\n ],\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateLists.es.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n\n // Update getListsInfinite cache (GraphQL)\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\n })\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position, using updated positions from the map\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n // Check if this is a position-only update (reordering)\n const isReorderingOnly = items?.every((item) =>\n Object.keys(item).every((key) => key === 'id' || key === 'position'),\n )\n\n // Don't invalidate cache for reordering - the optimistic update is sufficient\n // This prevents the cache refetch from overwriting client-side positions of restricted entities\n if (isReorderingOnly) {\n return []\n }\n\n // For other updates, invalidate as normal\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n transformErrorResponse: (error: any) => error.data.detail,\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, listItemId }) => [\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: listItemId },\n ],\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","error","_s","_e","entityListMultiPatchModel","overallPositionChanged","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","items","key","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");const S=require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const T=require("../../../util/pubsub.cjs.js"),E=F.api.enhanceEndpoints({endpoints:{getFolderHierarchy:{providesTags:["hierarchy"]},getFolderList:{providesTags:(a,g,{projectName:l})=>["hierarchy",{type:"folder",id:"LIST"},...a?.folders.map(({id:d})=>({type:"folder",id:d}))||[],{type:"folder",id:l}],async onCacheEntryAdded(a,{cacheDataLoaded:g,cacheEntryRemoved:l,updateCachedData:d,dispatch:m}){const{projectName:L}=a||{},M=["entity.folder","entity.folder.created","entity.folder.deleted"],w=[],_=1e3,u=new Set;let c=!1,s=null,f=!1;const A=()=>{s&&(clearTimeout(s),s=null)},I=()=>{s||(s=setTimeout(Q,_))},Q=async()=>{if(A(),!(f||!L)){f=!0;try{if(c){c=!1;try{const e=await m(F.api.endpoints.getFolderList.initiate({...a,realtime:!0},{forceRefetch:!0})).unwrap();d(()=>e)}catch{console.warn("Failed to refetch folder list on resync")}finally{u.clear()}return}if(u.size===0)return;const o=Array.from(u);u.clear();const t=[],y={"entity.folder.label_changed":"label","entity.folder.renamed":"name","entity.folder.type_changed":"folderType","entity.folder.status_changed":"status","entity.folder.tags_changed":"tags","entity.folder.attrib_changed":"attrib"};if(await Promise.all(o.map(async e=>{try{const r=await m(S.api.endpoints.getEvent.initiate({eventId:e},{forceRefetch:!0})).unwrap(),i=r?.topic||"",n=r?.payload||{},q=r?.summary||{},p=q.entityId;if(!p)return;const h=y[i];if(!h)return;if(h==="attrib"&&n?.newValue&&typeof n.newValue=="object")t.push({folderId:p,attribMerge:n.newValue,updatedAt:r.updatedAt});else{const v=n?.newValue;if(v===void 0)return;const b={updatedAt:r.updatedAt};b[h]=v,q.parentId!==void 0&&(b.parentId=q.parentId),t.push({folderId:p,partial:b})}}catch{}})),!t.length)return;d(e=>{!e||!Array.isArray(e.folders)||t.forEach(r=>{const i=e.folders.findIndex(n=>n.id===r.folderId);i!==-1&&(r.attribMerge&&(e.folders[i].attrib={...e.folders[i].attrib||{},...r.attribMerge},r.updatedAt&&(e.folders[i].updatedAt=r.updatedAt)),r.partial&&(e.folders[i]={...e.folders[i],...r.partial}))})})}finally{f=!1}}};try{await g;const o=(t,y)=>{if(t.endsWith(".created")||t.endsWith(".deleted")){c=!0,I();return}const e=y?.id;e&&(u.add(e),I())};M.forEach(t=>w.push(T.subscribe(t,o)))}catch{}await l,w.forEach(o=>T.unsubscribe(o)),A()}}}}),{useGetFolderHierarchyQuery:V,useGetFolderListQuery:G}=E;exports.foldersQueries=E;exports.useGetFolderHierarchyQuery=V;exports.useGetFolderListQuery=G;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");const S=require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const F=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const T=require("../../../util/pubsub.cjs.js"),E=F.api.enhanceEndpoints({endpoints:{getFolderHierarchy:{providesTags:["hierarchy"]},getFolderList:{providesTags:(a,g,{projectName:l})=>["hierarchy",{type:"folder",id:"LIST"},...a?.folders.map(({id:d})=>({type:"folder",id:d}))||[],{type:"folder",id:l}],async onCacheEntryAdded(a,{cacheDataLoaded:g,cacheEntryRemoved:l,updateCachedData:d,dispatch:m}){const{projectName:L}=a||{},M=["entity.folder","entity.folder.created","entity.folder.deleted"],w=[],_=1e3,u=new Set;let c=!1,s=null,f=!1;const A=()=>{s&&(clearTimeout(s),s=null)},I=()=>{s||(s=setTimeout(Q,_))},Q=async()=>{if(A(),!(f||!L)){f=!0;try{if(c){c=!1;try{const e=await m(F.api.endpoints.getFolderList.initiate({...a,realtime:!0},{forceRefetch:!0})).unwrap();d(()=>e)}catch{console.warn("Failed to refetch folder list on resync")}finally{u.clear()}return}if(u.size===0)return;const o=Array.from(u);u.clear();const t=[],y={"entity.folder.label_changed":"label","entity.folder.renamed":"name","entity.folder.type_changed":"folderType","entity.folder.status_changed":"status","entity.folder.tags_changed":"tags","entity.folder.attrib_changed":"attrib"};if(await Promise.all(o.map(async e=>{try{const r=await m(S.api.endpoints.getEvent.initiate({eventId:e},{forceRefetch:!0})).unwrap(),i=r?.topic||"",n=r?.payload||{},q=r?.summary||{},p=q.entityId;if(!p)return;const h=y[i];if(!h)return;if(h==="attrib"&&n?.newValue&&typeof n.newValue=="object")t.push({folderId:p,attribMerge:n.newValue,updatedAt:r.updatedAt});else{const v=n?.newValue;if(v===void 0)return;const b={updatedAt:r.updatedAt};b[h]=v,q.parentId!==void 0&&(b.parentId=q.parentId),t.push({folderId:p,partial:b})}}catch{}})),!t.length)return;d(e=>{!e||!Array.isArray(e.folders)||t.forEach(r=>{const i=e.folders.findIndex(n=>n.id===r.folderId);i!==-1&&(r.attribMerge&&(e.folders[i].attrib={...e.folders[i].attrib||{},...r.attribMerge},r.updatedAt&&(e.folders[i].updatedAt=r.updatedAt)),r.partial&&(e.folders[i]={...e.folders[i],...r.partial}))})})}finally{f=!1}}};try{await g;const o=(t,y)=>{if(t.endsWith(".created")||t.endsWith(".deleted")){c=!0,I();return}const e=y?.id;e&&(u.add(e),I())};M.forEach(t=>w.push(T.subscribe(t,o)))}catch{}await l,w.forEach(o=>T.unsubscribe(o)),A()}}}}),{useGetFolderHierarchyQuery:V,useGetFolderListQuery:G}=E;exports.foldersQueries=E;exports.useGetFolderHierarchyQuery=V;exports.useGetFolderListQuery=G;
2
2
  //# sourceMappingURL=getFolders.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","PubSub","t","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getFolders.cjs.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","PubSub","t","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
23
23
  import "../../generated/products.es.js";
24
24
  import "../../generated/projectDashboard.es.js";
25
25
  import "../../generated/projects.es.js";
26
+ import "../../generated/projectFolders.es.js";
26
27
  import "../../generated/reviewables.es.js";
27
28
  import "../../generated/services.es.js";
28
29
  import "../../generated/system.es.js";
@@ -148,10 +149,10 @@ const j = F.enhanceEndpoints({
148
149
  }
149
150
  }
150
151
  }
151
- }), { useGetFolderHierarchyQuery: we, useGetFolderListQuery: Ie } = j;
152
+ }), { useGetFolderHierarchyQuery: Ie, useGetFolderListQuery: ve } = j;
152
153
  export {
153
154
  j as foldersQueries,
154
- we as useGetFolderHierarchyQuery,
155
- Ie as useGetFolderListQuery
155
+ Ie as useGetFolderHierarchyQuery,
156
+ ve as useGetFolderListQuery
156
157
  };
157
158
  //# sourceMappingURL=getFolders.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getFolders.es.js","sources":["../../../../../../src/api/queries/folders/getFolders.ts"],"sourcesContent":["import { foldersApi } from '@shared/api/generated'\nimport { api as eventsApi } from '@shared/api/generated/events'\nimport { PubSub } from '@shared/util'\n\nconst enhancedApi = foldersApi.enhanceEndpoints({\n endpoints: {\n getFolderHierarchy: {\n providesTags: ['hierarchy'],\n },\n getFolderList: {\n providesTags: (result, _e, { projectName }) => [\n 'hierarchy',\n { type: 'folder', id: 'LIST' },\n ...(result?.folders.map(({ id }) => ({ type: 'folder', id })) || []),\n { type: 'folder', id: projectName },\n ],\n async onCacheEntryAdded(\n args,\n { cacheDataLoaded, cacheEntryRemoved, updateCachedData, dispatch },\n ) {\n const { projectName } = args || {}\n const topics = ['entity.folder', 'entity.folder.created', 'entity.folder.deleted']\n const tokens: (string | undefined)[] = []\n\n // Simplified trailing throttle approach:\n // - Collect updated folder IDs for 1000ms window\n // - If a creation topic appears, perform one full list refetch (within throttle window)\n // - Otherwise, fetch each pending event and patch existing cache entries only\n const MIN_INTERVAL = 1000\n const pendingEventIds = new Set<string>()\n let resyncFlag = false // full list refetch needed (created or deleted)\n let timer: ReturnType<typeof setTimeout> | null = null\n let processing = false\n\n const clearTimer = () => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n const schedule = () => {\n if (!timer) {\n timer = setTimeout(run, MIN_INTERVAL)\n }\n }\n\n // All non-created/deleted events are treated as incremental updates.\n const run = async () => {\n clearTimer()\n if (processing || !projectName) return\n processing = true\n try {\n if (resyncFlag) {\n resyncFlag = false\n try {\n // get full folder list and update cache - done for created events\n const result = await dispatch(\n foldersApi.endpoints.getFolderList.initiate(\n // @ts-expect-error realtime flag to avoid toggling global isFetching for watchers\n { ...args, realtime: true },\n { forceRefetch: true },\n ),\n ).unwrap()\n updateCachedData(() => result)\n } catch {\n /* ignore */\n console.warn('Failed to refetch folder list on resync')\n } finally {\n pendingEventIds.clear()\n }\n return\n }\n\n if (pendingEventIds.size === 0) return\n const eventIds = Array.from(pendingEventIds)\n pendingEventIds.clear()\n type Patch = {\n folderId: string\n partial?: Record<string, any>\n attribMerge?: Record<string, any>\n updatedAt?: string\n }\n const patches: Patch[] = []\n const topicFieldMap: Record<string, string> = {\n 'entity.folder.label_changed': 'label',\n 'entity.folder.renamed': 'name',\n 'entity.folder.type_changed': 'folderType',\n 'entity.folder.status_changed': 'status',\n 'entity.folder.tags_changed': 'tags',\n 'entity.folder.attrib_changed': 'attrib',\n }\n await Promise.all(\n eventIds.map(async (eventId) => {\n try {\n // Fetch each event and apply incremental updates\n const event = await dispatch(\n eventsApi.endpoints.getEvent.initiate({ eventId }, { forceRefetch: true }),\n ).unwrap()\n const topic: string = event?.topic || ''\n const payload: any = event?.payload || {}\n const summary: any = event?.summary || {}\n const folderId: string | undefined = summary.entityId\n if (!folderId) return\n const fieldName = topicFieldMap[topic]\n if (!fieldName) return\n if (\n fieldName === 'attrib' &&\n payload?.newValue &&\n typeof payload.newValue === 'object'\n ) {\n patches.push({\n folderId,\n attribMerge: payload.newValue,\n updatedAt: event.updatedAt,\n })\n } else {\n const value = payload?.newValue\n if (value === undefined) return\n const partial: Record<string, any> = { updatedAt: event.updatedAt }\n partial[fieldName] = value\n // parentId might accompany some changes in summary\n if (summary.parentId !== undefined) partial.parentId = summary.parentId\n patches.push({ folderId, partial })\n }\n } catch {\n /* ignore single event errors */\n }\n }),\n )\n if (!patches.length) return\n updateCachedData((draft: any) => {\n if (!draft || !Array.isArray(draft.folders)) return\n patches.forEach((patch) => {\n const idx = draft.folders.findIndex((f: any) => f.id === patch.folderId)\n // if folder not found, skip\n if (idx === -1) return\n // apply patch to existing folder\n if (patch.attribMerge) {\n // merge attribs if attribMerge is provided\n draft.folders[idx].attrib = {\n ...(draft.folders[idx].attrib || {}),\n ...patch.attribMerge,\n }\n // update updatedAt if provided\n if (patch.updatedAt) draft.folders[idx].updatedAt = patch.updatedAt\n }\n if (patch.partial) {\n // apply partial update\n draft.folders[idx] = { ...draft.folders[idx], ...patch.partial }\n }\n })\n })\n } finally {\n processing = false\n }\n }\n\n try {\n await cacheDataLoaded\n\n const handlePubSub = (_topic: string, _message: any) => {\n if (_topic.endsWith('.created') || _topic.endsWith('.deleted')) {\n resyncFlag = true\n schedule()\n return\n }\n const eventId = _message?.id\n if (eventId) {\n pendingEventIds.add(eventId)\n schedule()\n }\n }\n\n topics.forEach((t) => tokens.push(PubSub.subscribe(t, handlePubSub)))\n } catch {\n // silent\n }\n\n await cacheEntryRemoved\n tokens.forEach((t) => PubSub.unsubscribe(t))\n clearTimer()\n },\n },\n },\n})\n\nexport const { useGetFolderHierarchyQuery, useGetFolderListQuery } = enhancedApi\nexport { enhancedApi as foldersQueries }\n"],"names":["enhancedApi","foldersApi","result","_e","projectName","id","args","cacheDataLoaded","cacheEntryRemoved","updateCachedData","dispatch","topics","tokens","MIN_INTERVAL","pendingEventIds","resyncFlag","timer","processing","clearTimer","schedule","run","eventIds","patches","topicFieldMap","eventId","event","eventsApi","topic","payload","summary","folderId","fieldName","value","partial","draft","patch","idx","f","handlePubSub","_topic","_message","t","PubSub","useGetFolderHierarchyQuery","useGetFolderListQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");const r=require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const e=r.api.enhanceEndpoints({endpoints:{getEntityGroups:{}}}),{useGetEntityGroupsQuery:i}=e;exports.groupingQueries=e;exports.useGetEntityGroupsQuery=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");const o=require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const i=require("../../../util/pubsub.cjs.js"),e=o.api.enhanceEndpoints({endpoints:{getEntityGroups:{onCacheEntryAdded:async(r,{cacheDataLoaded:u,cacheEntryRemoved:t,dispatch:q})=>{await u;const n=`entity.${r.entityType.replace(/s$/,"")}`,s=i.subscribe(n,()=>{q(e.endpoints.getEntityGroups.initiate(r,{forceRefetch:!0}))});await t,i.unsubscribe(s)}}}}),{useGetEntityGroupsQuery:c}=e;exports.groupingQueries=e;exports.useGetEntityGroupsQuery=c;
2
2
  //# sourceMappingURL=getGrouping.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGrouping.cjs.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["enhancedGroupingApi","groupingApi","useGetEntityGroupsQuery"],"mappings":"srDAEA,MAAMA,EAAsBC,EAAAA,IAAY,iBAAiB,CACvD,UAAW,CACT,gBAAiB,CAAA,CAAC,CAEtB,CAAC,EAEY,CAAE,wBAAAC,GAA4BF"}
1
+ {"version":3,"file":"getGrouping.cjs.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {\n // Subscribe to entity changes to refresh group counts\n onCacheEntryAdded: async (arg, { cacheDataLoaded, cacheEntryRemoved, dispatch }) => {\n await cacheDataLoaded\n\n // Map entityType to PubSub topic (handle plural forms)\n const entityType = arg.entityType.replace(/s$/, '') // 'versions' -> 'version'\n const topic = `entity.${entityType}`\n\n const token = PubSub.subscribe(topic, () => {\n // Refetch groups when any entity of this type changes\n dispatch(\n enhancedGroupingApi.endpoints.getEntityGroups.initiate(arg, { forceRefetch: true }),\n )\n })\n\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }"],"names":["enhancedGroupingApi","groupingApi","arg","cacheDataLoaded","cacheEntryRemoved","dispatch","topic","token","PubSub","useGetEntityGroupsQuery"],"mappings":"k1DAGMA,EAAsBC,EAAAA,IAAY,iBAAiB,CACvD,UAAW,CACT,gBAAiB,CAEf,kBAAmB,MAAOC,EAAK,CAAE,gBAAAC,EAAiB,kBAAAC,EAAmB,SAAAC,KAAe,CAClF,MAAMF,EAIN,MAAMG,EAAQ,UADKJ,EAAI,WAAW,QAAQ,KAAM,EAAE,CAChB,GAE5BK,EAAQC,EAAO,UAAUF,EAAO,IAAM,CAE1CD,EACEL,EAAoB,UAAU,gBAAgB,SAASE,EAAK,CAAE,aAAc,GAAM,CAAA,CAEtF,CAAC,EAED,MAAME,EACNI,EAAO,YAAYD,CAAK,CAC1B,CAAA,CACF,CAEJ,CAAC,EAEY,CAAE,wBAAAE,GAA4BT"}
@@ -23,6 +23,7 @@ import "../../generated/operations.es.js";
23
23
  import "../../generated/products.es.js";
24
24
  import "../../generated/projectDashboard.es.js";
25
25
  import "../../generated/projects.es.js";
26
+ import "../../generated/projectFolders.es.js";
26
27
  import "../../generated/reviewables.es.js";
27
28
  import "../../generated/services.es.js";
28
29
  import "../../generated/system.es.js";
@@ -34,15 +35,30 @@ import "../../generated/users.es.js";
34
35
  import "../../generated/versions.es.js";
35
36
  import "../../generated/workfiles.es.js";
36
37
  import "../../generated/ynputCloud.es.js";
37
- import { api as t } from "../../generated/grouping.es.js";
38
+ import { api as s } from "../../generated/grouping.es.js";
38
39
  import "../../generated/views.es.js";
39
- const i = t.enhanceEndpoints({
40
+ import "lodash";
41
+ import "react-toastify";
42
+ import "uuid";
43
+ import i from "../../../util/pubsub.es.js";
44
+ const o = s.enhanceEndpoints({
40
45
  endpoints: {
41
- getEntityGroups: {}
46
+ getEntityGroups: {
47
+ // Subscribe to entity changes to refresh group counts
48
+ onCacheEntryAdded: async (t, { cacheDataLoaded: p, cacheEntryRemoved: r, dispatch: m }) => {
49
+ await p;
50
+ const e = `entity.${t.entityType.replace(/s$/, "")}`, n = i.subscribe(e, () => {
51
+ m(
52
+ o.endpoints.getEntityGroups.initiate(t, { forceRefetch: !0 })
53
+ );
54
+ });
55
+ await r, i.unsubscribe(n);
56
+ }
57
+ }
42
58
  }
43
- }), { useGetEntityGroupsQuery: M } = i;
59
+ }), { useGetEntityGroupsQuery: _ } = o;
44
60
  export {
45
- i as groupingQueries,
46
- M as useGetEntityGroupsQuery
61
+ o as groupingQueries,
62
+ _ as useGetEntityGroupsQuery
47
63
  };
48
64
  //# sourceMappingURL=getGrouping.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGrouping.es.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {},\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }\n"],"names":["enhancedGroupingApi","groupingApi","useGetEntityGroupsQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAAsBC,EAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,iBAAiB,CAAA;AAAA,EAAC;AAEtB,CAAC,GAEY,EAAE,yBAAAC,MAA4BF;"}
1
+ {"version":3,"file":"getGrouping.es.js","sources":["../../../../../../src/api/queries/grouping/getGrouping.ts"],"sourcesContent":["import { groupingApi } from '@shared/api/generated'\nimport { PubSub } from '@shared/util'\n\nconst enhancedGroupingApi = groupingApi.enhanceEndpoints({\n endpoints: {\n getEntityGroups: {\n // Subscribe to entity changes to refresh group counts\n onCacheEntryAdded: async (arg, { cacheDataLoaded, cacheEntryRemoved, dispatch }) => {\n await cacheDataLoaded\n\n // Map entityType to PubSub topic (handle plural forms)\n const entityType = arg.entityType.replace(/s$/, '') // 'versions' -> 'version'\n const topic = `entity.${entityType}`\n\n const token = PubSub.subscribe(topic, () => {\n // Refetch groups when any entity of this type changes\n dispatch(\n enhancedGroupingApi.endpoints.getEntityGroups.initiate(arg, { forceRefetch: true }),\n )\n })\n\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nexport const { useGetEntityGroupsQuery } = enhancedGroupingApi\nexport { enhancedGroupingApi as groupingQueries }"],"names":["enhancedGroupingApi","groupingApi","arg","cacheDataLoaded","cacheEntryRemoved","dispatch","topic","token","PubSub","useGetEntityGroupsQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAMA,IAAsBC,EAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,iBAAiB;AAAA;AAAA,MAEf,mBAAmB,OAAOC,GAAK,EAAE,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAC,QAAe;AAClF,cAAMF;AAIN,cAAMG,IAAQ,UADKJ,EAAI,WAAW,QAAQ,MAAM,EAAE,CAChB,IAE5BK,IAAQC,EAAO,UAAUF,GAAO,MAAM;AAE1C,UAAAD;AAAA,YACEL,EAAoB,UAAU,gBAAgB,SAASE,GAAK,EAAE,cAAc,IAAM;AAAA,UAAA;AAAA,QAEtF,CAAC;AAED,cAAME,GACNI,EAAO,YAAYD,CAAK;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,yBAAAE,MAA4BT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const L=require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const G=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const w=require("./utils/formatEntityLinks.cjs.js"),N=require("react-toastify");require("lodash");require("uuid");const R=require("../../../util/pubsub.cjs.js"),E={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},S={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},$=G.api.injectEndpoints({endpoints:j=>({getEntityLinks:j.query({queryFn:async({projectName:t,entityIds:o,entityType:r},{getState:i,dispatch:u,queryCacheKey:m,forced:b})=>{try{const c=i(),p=JSON.stringify({projectName:t,entityType:r}),h=c.restApi?.queries?.[m||`getEntityLinks(${p})`]?.data||[],y=new Set(h.map(n=>n.id)),q=o.filter(n=>!y?.has(n)||b);if(q.length===0)return{data:h};const k=E[r],l=S[r];return{data:(await u(L.api.endpoints[k].initiate({projectName:t,entityIds:q},{forceRefetch:!0})).unwrap()).project?.[l]?.edges?.map(({node:n})=>{const d=n.links.edges?.filter(e=>!e?.node)||[];return d.length>0&&console.log(`[RESTRICTED LINKS] Entity ${n.id} (${n.name}) has ${d.length} restricted link(s):`,d.map(e=>({linkId:e?.id,linkType:e?.linkType,direction:e?.direction,entityType:e?.entityType,nodeIsNull:!e?.node}))),{id:n.id,links:n.links.edges?.map(e=>e?.node?{...e,node:{id:e.node.id,name:e.node.name,label:w.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0},isRestricted:!1}:{...e,node:null,isRestricted:!0})||[]}})||[]}}catch(c){return console.error(`Error in getEntityLinks queryFn for ${r}:`,c),N.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:c.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:o})=>{if(!t||!o)return!0;const r=new Set(t.entityIds),i=new Set(o.entityIds);if(r.size!==i.size)return!0;for(const u of r)if(!i.has(u))return!0;return!1},merge:(t,o)=>{if(!t)return o;const r=new Map(t.map(i=>[i.id,i]));for(const i of o)r.set(i.id,i);t.length=0,t.push(...r.values())},providesTags:(t,o,r)=>t?[...t.flatMap(i=>i.links.filter(u=>u.node!==null).map(u=>({type:"link",id:u.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:o,entityType:r},{cacheDataLoaded:i,cacheEntryRemoved:u,updateCachedData:m,dispatch:b}){let c;const p=new Set,I=100,h=500;let y=!1;const q=()=>{y||(y=!0,setTimeout(k,h))},k=async()=>{if(y=!1,!p.size)return;const l=Array.from(p).slice(0,I);l.forEach(a=>p.delete(a));try{const a=E[r],f=S[r],d=(await b(L.api.endpoints[a].initiate({projectName:t,entityIds:l},{forceRefetch:!0})).unwrap()).project?.[f]?.edges?.map(({node:e})=>({id:e.id,links:e.links.edges?.map(s=>s?.node?{...s,node:{id:s.node.id,name:s.node.name,label:w.formatEntityLabel(s.node),parents:s.node.parents||[],subType:"subType"in s.node?s.node.subType:void 0},isRestricted:!1}:{...s,node:null,isRestricted:!0})||[]}))||[];m(e=>{for(const s of d){const T=e.findIndex(v=>v.id===s.id);T>-1?e[T]=s:e.push(s)}})}catch(a){console.error("Realtime link batch update failed",a)}finally{p.size&&q()}};try{await i;const l=async(a,f)=>{if(!a.startsWith("link.created")&&!a.startsWith("link.deleted")||f?.project!==t)return;const n=f?.summary?.inputId,d=f?.summary?.outputId;!n&&!d||(n&&p.add(n),d&&p.add(d),q())};c=R.subscribe("link",l)}catch{}await u,c&&R.unsubscribe(c)}})})}),{useGetEntityLinksQuery:P}=$;exports.entityLinksApi=$;exports.useGetEntityLinksQuery=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");const L=require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");const G=require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const w=require("./utils/formatEntityLinks.cjs.js"),N=require("react-toastify");require("lodash");require("uuid");const R=require("../../../util/pubsub.cjs.js"),E={folder:"GetFoldersLinks",task:"GetTasksLinks",product:"GetProductsLinks",version:"GetVersionsLinks",representation:"GetRepresentationsLinks",workfile:"GetWorkfilesLinks"},S={folder:"folders",task:"tasks",product:"products",version:"versions",representation:"representations",workfile:"workfiles"},$=G.api.injectEndpoints({endpoints:j=>({getEntityLinks:j.query({queryFn:async({projectName:t,entityIds:o,entityType:r},{getState:i,dispatch:u,queryCacheKey:m,forced:b})=>{try{const c=i(),p=JSON.stringify({projectName:t,entityType:r}),h=c.restApi?.queries?.[m||`getEntityLinks(${p})`]?.data||[],y=new Set(h.map(n=>n.id)),q=o.filter(n=>!y?.has(n)||b);if(q.length===0)return{data:h};const k=E[r],l=S[r];return{data:(await u(L.api.endpoints[k].initiate({projectName:t,entityIds:q},{forceRefetch:!0})).unwrap()).project?.[l]?.edges?.map(({node:n})=>{const d=n.links.edges?.filter(e=>!e?.node)||[];return d.length>0&&console.log(`[RESTRICTED LINKS] Entity ${n.id} (${n.name}) has ${d.length} restricted link(s):`,d.map(e=>({linkId:e?.id,linkType:e?.linkType,direction:e?.direction,entityType:e?.entityType,nodeIsNull:!e?.node}))),{id:n.id,links:n.links.edges?.map(e=>e?.node?{...e,node:{id:e.node.id,name:e.node.name,label:w.formatEntityLabel(e.node),parents:e.node.parents||[],subType:"subType"in e.node?e.node.subType:void 0},isRestricted:!1}:{...e,node:null,isRestricted:!0})||[]}})||[]}}catch(c){return console.error(`Error in getEntityLinks queryFn for ${r}:`,c),N.toast.error(`Error fetching ${r} links`),{error:{status:"FETCH_ERROR",error:c.message}}}},serializeQueryArgs:({queryArgs:t})=>({projectName:t.projectName,entityType:t.entityType}),forceRefetch:({currentArg:t,previousArg:o})=>{if(!t||!o)return!0;const r=new Set(t.entityIds),i=new Set(o.entityIds);if(r.size!==i.size)return!0;for(const u of r)if(!i.has(u))return!0;return!1},merge:(t,o)=>{if(!t)return o;const r=new Map(t.map(i=>[i.id,i]));for(const i of o)r.set(i.id,i);t.length=0,t.push(...r.values())},providesTags:(t,o,r)=>t?[...t.flatMap(i=>i.links.filter(u=>u.node!==null).map(u=>({type:"link",id:u.node.id}))),{type:"link",id:`${r.projectName}-${r.entityType}`}]:[{type:"link",id:`${r.projectName}-${r.entityType}`}],async onCacheEntryAdded({projectName:t,entityIds:o,entityType:r},{cacheDataLoaded:i,cacheEntryRemoved:u,updateCachedData:m,dispatch:b}){let c;const p=new Set,I=100,h=500;let y=!1;const q=()=>{y||(y=!0,setTimeout(k,h))},k=async()=>{if(y=!1,!p.size)return;const l=Array.from(p).slice(0,I);l.forEach(a=>p.delete(a));try{const a=E[r],f=S[r],d=(await b(L.api.endpoints[a].initiate({projectName:t,entityIds:l},{forceRefetch:!0})).unwrap()).project?.[f]?.edges?.map(({node:e})=>({id:e.id,links:e.links.edges?.map(s=>s?.node?{...s,node:{id:s.node.id,name:s.node.name,label:w.formatEntityLabel(s.node),parents:s.node.parents||[],subType:"subType"in s.node?s.node.subType:void 0},isRestricted:!1}:{...s,node:null,isRestricted:!0})||[]}))||[];m(e=>{for(const s of d){const T=e.findIndex(v=>v.id===s.id);T>-1?e[T]=s:e.push(s)}})}catch(a){console.error("Realtime link batch update failed",a)}finally{p.size&&q()}};try{await i;const l=async(a,f)=>{if(!a.startsWith("link.created")&&!a.startsWith("link.deleted")||f?.project!==t)return;const n=f?.summary?.inputId,d=f?.summary?.outputId;!n&&!d||(n&&p.add(n),d&&p.add(d),q())};c=R.subscribe("link",l)}catch{}await u,c&&R.unsubscribe(c)}})})}),{useGetEntityLinksQuery:P}=$;exports.entityLinksApi=$;exports.useGetEntityLinksQuery=P;
2
2
  //# sourceMappingURL=getEntityLinks.cjs.js.map