@ynput/ayon-frontend-shared 0.3.9 → 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 (815) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +182 -171
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +13 -11
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs10.js +1 -1
  11. package/dist/_virtual/index.cjs11.js +1 -1
  12. package/dist/_virtual/index.cjs12.js +1 -1
  13. package/dist/_virtual/index.es10.js +3 -3
  14. package/dist/_virtual/index.es11.js +5 -5
  15. package/dist/_virtual/index.es12.js +5 -5
  16. package/dist/api.cjs.js +1 -1
  17. package/dist/api.es.js +340 -331
  18. package/dist/api.es.js.map +1 -1
  19. package/dist/context.cjs.js +1 -1
  20. package/dist/context.es.js +39 -36
  21. package/dist/context.es.js.map +1 -1
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +11 -9
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  26. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  27. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  28. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  29. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  30. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  31. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  32. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  33. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  34. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  35. package/dist/shared/src/api/generated/projectFolders.cjs.js +2 -0
  36. package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -0
  37. package/dist/shared/src/api/generated/projectFolders.es.js +44 -0
  38. package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -0
  39. package/dist/shared/src/api/generated/projects.cjs.js +1 -1
  40. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  41. package/dist/shared/src/api/generated/projects.es.js +20 -0
  42. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  43. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  44. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -1
  46. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/actions/getActions.es.js +11 -10
  48. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/activities/getActivities.es.js +11 -10
  52. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/activities/getCategories.es.js +3 -2
  56. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/activities/getMentions.es.js +3 -2
  60. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
  62. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/updateReaction.es.js +4 -3
  64. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -1
  66. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/addons/getAddons.es.js +7 -6
  68. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -1
  70. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +4 -3
  72. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +4 -3
  76. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +1 -1
  78. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/cloud/cloud.es.js +9 -8
  80. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/config/getConfig.cjs.js +1 -1
  82. package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/config/getConfig.es.js +9 -8
  84. package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -1
  86. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/entities/getEntity.es.js +13 -12
  88. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  90. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -3
  92. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  93. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  94. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  95. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +4 -2
  96. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  97. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  98. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
  100. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  102. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/entityLists/getLists.es.js +15 -14
  104. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  105. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -1
  106. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +3 -2
  108. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  110. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +22 -20
  112. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  114. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +17 -16
  116. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  118. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/folders/getFolders.es.js +4 -3
  120. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  121. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +22 -6
  124. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +3 -2
  128. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  130. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/links/getLinks.es.js +14 -13
  132. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/links/updateLinks.cjs.js +1 -1
  134. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/links/updateLinks.es.js +17 -16
  136. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.es.js +37 -36
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  142. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/overview/patchVersions.es.js +88 -53
  144. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  145. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  146. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/overview/updateOverview.es.js +8 -6
  148. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  149. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -1
  150. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +4 -3
  152. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  153. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  154. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  155. package/dist/shared/src/api/queries/products/createProduct.es.js +3 -2
  156. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  157. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  158. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  159. package/dist/shared/src/api/queries/project/getProject.es.js +9 -8
  160. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  161. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +2 -0
  162. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -0
  163. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +178 -0
  164. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -0
  165. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  166. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  167. package/dist/shared/src/api/queries/review/getReview.es.js +15 -14
  168. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  169. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
  170. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  171. package/dist/shared/src/api/queries/review/updateReview.es.js +7 -6
  172. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  173. package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
  174. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  175. package/dist/shared/src/api/queries/share/share.es.js +3 -2
  176. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  177. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
  178. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  179. package/dist/shared/src/api/queries/system/getSystem.es.js +5 -4
  180. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  181. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js +1 -1
  182. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
  183. package/dist/shared/src/api/queries/tasks/updateTasks.es.js +6 -6
  184. package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
  185. package/dist/shared/src/api/queries/uris/getUris.cjs.js +1 -1
  186. package/dist/shared/src/api/queries/uris/getUris.cjs.js.map +1 -1
  187. package/dist/shared/src/api/queries/uris/getUris.es.js +3 -2
  188. package/dist/shared/src/api/queries/uris/getUris.es.js.map +1 -1
  189. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  190. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  191. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +6 -5
  192. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  193. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  194. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  195. package/dist/shared/src/api/queries/users/getUsers.es.js +20 -18
  196. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  197. package/dist/shared/src/api/queries/users/guests.cjs.js +1 -1
  198. package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -1
  199. package/dist/shared/src/api/queries/users/guests.es.js +5 -4
  200. package/dist/shared/src/api/queries/users/guests.es.js.map +1 -1
  201. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
  202. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  203. package/dist/shared/src/api/queries/users/updateUsers.es.js +21 -20
  204. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  205. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  206. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  207. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +348 -136
  208. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  209. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js +1 -1
  210. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  211. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js +57 -59
  212. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  213. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -1
  214. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  215. package/dist/shared/src/api/queries/versions/updateVersions.es.js +6 -5
  216. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  217. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
  218. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  219. package/dist/shared/src/api/queries/views/getViews.es.js +11 -10
  220. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  221. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -1
  222. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  223. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +4 -3
  224. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  225. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  226. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  227. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
  228. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  229. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +3 -3
  230. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  231. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +13 -13
  232. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  233. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  234. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  235. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +24 -22
  236. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  237. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  238. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  239. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
  240. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  241. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  242. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  243. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
  244. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  245. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  246. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  247. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
  248. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  249. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  250. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  251. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -2
  252. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  253. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  254. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  255. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +16 -14
  256. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  257. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  258. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  259. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
  260. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  261. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  262. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  263. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
  264. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  265. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  266. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  267. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  268. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  269. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  270. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +4 -2
  272. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  273. package/dist/shared/src/components/Menu/Menu.styled.cjs.js +0 -1
  274. package/dist/shared/src/components/Menu/Menu.styled.cjs.js.map +1 -1
  275. package/dist/shared/src/components/Menu/Menu.styled.es.js +0 -1
  276. package/dist/shared/src/components/Menu/Menu.styled.es.js.map +1 -1
  277. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  278. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  279. package/dist/shared/src/components/Menu/MenuList.es.js +21 -21
  280. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  281. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  282. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  283. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +58 -38
  284. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  285. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  286. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  287. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +113 -107
  288. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  289. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  290. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  291. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  292. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  293. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  294. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  295. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
  296. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  297. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  298. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  299. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
  300. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  301. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  302. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  303. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  304. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
  308. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +32 -30
  312. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  313. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  314. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  315. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  316. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  317. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  318. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  319. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  320. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  321. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  322. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  323. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
  324. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  325. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  326. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +8 -6
  328. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  329. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +31 -0
  330. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -0
  331. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +107 -0
  332. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -0
  333. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  334. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +33 -28
  336. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  337. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  338. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +17 -7
  340. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  341. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  342. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  343. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  344. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  345. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  346. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  347. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
  348. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  349. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  350. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  351. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
  352. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  353. package/dist/shared/src/config/plannerFeatures.cjs.js +2 -0
  354. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -0
  355. package/dist/shared/src/config/plannerFeatures.es.js +50 -0
  356. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -0
  357. package/dist/shared/src/config/powerpackFeatures.cjs.js +2 -0
  358. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -0
  359. package/dist/shared/src/config/powerpackFeatures.es.js +74 -0
  360. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -0
  361. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  362. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  364. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  365. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  366. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Actions/Actions.es.js +18 -15
  368. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  369. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  370. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +33 -32
  372. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  373. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  374. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  376. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  378. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -11
  380. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
  396. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
  400. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
  404. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  406. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
  408. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  410. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +4 -2
  412. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
  416. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  417. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  418. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  420. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  421. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  422. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  424. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  425. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  426. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  428. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  429. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  430. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  432. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  434. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
  436. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  437. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js +1 -1
  438. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js +8 -8
  440. package/dist/shared/src/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.es.js.map +1 -1
  441. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  442. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
  444. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  445. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  446. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  448. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  449. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  450. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  452. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  455. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  456. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +18 -18
  458. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  459. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  460. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  462. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  466. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  468. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
  470. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  472. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
  474. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +686 -616
  478. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +26 -11
  480. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +40 -25
  482. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -2
  486. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +2 -0
  488. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -0
  489. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +381 -0
  490. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -0
  491. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  494. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  498. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -2
  500. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +13 -9
  502. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +147 -119
  506. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -3
  508. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +487 -262
  510. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +149 -145
  514. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -4
  518. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +30 -30
  522. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +94 -91
  526. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js +5 -0
  528. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -0
  529. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js +67 -0
  530. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -0
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +33 -31
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +30 -28
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js +2 -0
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.cjs.js.map +1 -0
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js +56 -0
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnDragRestriction.es.js.map +1 -0
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js +57 -40
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnVirtualization.es.js.map +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +30 -28
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +2 -0
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -0
  589. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +303 -0
  590. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -0
  591. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +175 -156
  594. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  598. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +21 -19
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -7
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -29
  622. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  623. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  624. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +7 -5
  626. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  627. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  628. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +90 -85
  630. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  631. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +9 -5
  632. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +11 -7
  634. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  635. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  636. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  637. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
  638. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  639. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  640. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +6 -4
  642. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +14 -12
  646. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
  650. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  651. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  652. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
  654. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  655. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  656. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
  658. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  659. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  660. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +40 -38
  662. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  663. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  664. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +10 -8
  666. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  667. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  668. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +5 -3
  670. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  671. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  672. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
  674. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  675. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  676. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  677. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
  678. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  679. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  680. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  681. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +12 -10
  682. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  683. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  684. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  685. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
  686. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  687. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  688. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  689. package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
  690. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  691. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  692. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  693. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
  694. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  695. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  696. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  697. package/dist/shared/src/context/GlobalContext.es.js +6 -4
  698. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  699. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  700. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  701. package/dist/shared/src/context/PowerpackContext.es.js +46 -94
  702. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  703. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  704. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  705. package/dist/shared/src/context/ProjectContext.es.js +6 -4
  706. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  707. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  708. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  709. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
  710. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  711. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  712. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  713. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
  714. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  715. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  716. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  717. package/dist/shared/src/context/SubtasksModulesContext.es.js +21 -14
  718. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  719. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  720. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  721. package/dist/shared/src/context/UriContext.es.js +7 -5
  722. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  723. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  724. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  725. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  726. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  727. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  728. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  729. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
  730. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  731. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  732. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  733. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
  734. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  735. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  736. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  737. package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
  738. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  739. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  740. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  741. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
  742. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  743. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  744. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  745. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
  746. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  747. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  748. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  749. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
  750. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  751. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +2 -0
  752. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -0
  753. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +69 -0
  754. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -0
  755. package/dist/shared/src/util/errorHandling.cjs.js +2 -0
  756. package/dist/shared/src/util/errorHandling.cjs.js.map +1 -0
  757. package/dist/shared/src/util/errorHandling.es.js +9 -0
  758. package/dist/shared/src/util/errorHandling.es.js.map +1 -0
  759. package/dist/shared/src/util/folderHierarchy.cjs.js +2 -0
  760. package/dist/shared/src/util/folderHierarchy.cjs.js.map +1 -0
  761. package/dist/shared/src/util/folderHierarchy.es.js +14 -0
  762. package/dist/shared/src/util/folderHierarchy.es.js.map +1 -0
  763. package/dist/shared/src/util/folderOperations.cjs.js +2 -0
  764. package/dist/shared/src/util/folderOperations.cjs.js.map +1 -0
  765. package/dist/shared/src/util/folderOperations.es.js +27 -0
  766. package/dist/shared/src/util/folderOperations.es.js.map +1 -0
  767. package/dist/shared/src/util/keyboardShortcuts.cjs.js +2 -0
  768. package/dist/shared/src/util/keyboardShortcuts.cjs.js.map +1 -0
  769. package/dist/shared/src/util/keyboardShortcuts.es.js +8 -0
  770. package/dist/shared/src/util/keyboardShortcuts.es.js.map +1 -0
  771. package/dist/types/api/generated/actions.d.ts +2 -1
  772. package/dist/types/api/generated/folders.d.ts +3 -3
  773. package/dist/types/api/generated/index.d.ts +2 -0
  774. package/dist/types/api/generated/projectFolders.d.ts +79 -0
  775. package/dist/types/api/generated/projects.d.ts +55 -1
  776. package/dist/types/api/generated/system.d.ts +2 -1
  777. package/dist/types/api/queries/index.d.ts +1 -0
  778. package/dist/types/api/queries/project/getProject.d.ts +4 -0
  779. package/dist/types/api/queries/projectFolders/index.d.ts +1 -0
  780. package/dist/types/api/queries/projectFolders/projectFolders.d.ts +985 -0
  781. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1 -1
  782. package/dist/types/components/FolderForm/FolderForm.d.ts +24 -0
  783. package/dist/types/components/FolderForm/index.d.ts +3 -0
  784. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -1
  785. package/dist/types/components/SimpleFormDialog/FormFile.d.ts +16 -0
  786. package/dist/types/components/SimpleFormDialog/SimpleFormDialog.d.ts +2 -1
  787. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +1 -0
  788. package/dist/types/config/index.d.ts +2 -0
  789. package/dist/types/config/plannerFeatures.d.ts +13 -0
  790. package/dist/types/config/powerpackFeatures.d.ts +6 -0
  791. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +2 -1
  792. package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.d.ts +1 -0
  793. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -0
  794. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.d.ts +1 -0
  795. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -0
  796. package/dist/types/containers/ProjectTreeTable/components/ColumnDndProvider.d.ts +6 -0
  797. package/dist/types/containers/ProjectTreeTable/components/index.d.ts +1 -0
  798. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.d.ts +26 -0
  799. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  800. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  801. package/dist/types/containers/ProjectTreeTable/hooks/useColumnDragRestriction.d.ts +19 -0
  802. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +4 -0
  803. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +2 -1
  804. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +2 -2
  805. package/dist/types/context/PowerpackContext.d.ts +17 -6
  806. package/dist/types/util/buildHierarchicalTableRows.d.ts +43 -0
  807. package/dist/types/util/errorHandling.d.ts +7 -0
  808. package/dist/types/util/folderHierarchy.d.ts +37 -0
  809. package/dist/types/util/folderOperations.d.ts +34 -0
  810. package/dist/types/util/index.d.ts +5 -0
  811. package/dist/types/util/keyboardShortcuts.d.ts +6 -0
  812. package/dist/util.cjs.js +1 -1
  813. package/dist/util.es.js +51 -41
  814. package/dist/util.es.js.map +1 -1
  815. package/package.json +1 -1
@@ -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";
@@ -40,20 +41,20 @@ import "lodash";
40
41
  import "react-toastify";
41
42
  import { getEntityId as c } from "../../../util/getEntityId.es.js";
42
43
  import "../../../util/pubsub.es.js";
43
- const l = { type: "entityListFolder", id: "LIST" }, a = (t) => t.data?.detail || "Unknown lists folder error", m = y.enhanceEndpoints({
44
+ const a = { type: "entityListFolder", id: "LIST" }, m = (t) => t.data?.detail || "Unknown lists folder error", l = y.enhanceEndpoints({
44
45
  endpoints: {
45
46
  getEntityListFolders: {
46
47
  transformResponse: (t) => t.folders || [],
47
- transformErrorResponse: a,
48
+ transformErrorResponse: m,
48
49
  providesTags: (t) => t ? [
49
- l,
50
+ a,
50
51
  ...t.map((o) => ({ type: "entityListFolder", id: o.id }))
51
- ] : [l]
52
+ ] : [a]
52
53
  },
53
54
  createEntityListFolder: {
54
55
  async onQueryStarted({ projectName: t, entityListFolderPostModel: o }, { dispatch: i, queryFulfilled: p }) {
55
56
  const n = i(
56
- m.util.updateQueryData(
57
+ l.util.updateQueryData(
57
58
  "getEntityListFolders",
58
59
  { projectName: t },
59
60
  (r) => {
@@ -71,13 +72,13 @@ const l = { type: "entityListFolder", id: "LIST" }, a = (t) => t.data?.detail ||
71
72
  n.undo();
72
73
  }
73
74
  },
74
- transformErrorResponse: a,
75
- invalidatesTags: [l]
75
+ transformErrorResponse: m,
76
+ invalidatesTags: [a]
76
77
  },
77
78
  deleteEntityListFolder: {
78
79
  async onQueryStarted({ projectName: t, folderId: o }, { dispatch: i, queryFulfilled: p }) {
79
80
  const n = i(
80
- m.util.updateQueryData(
81
+ l.util.updateQueryData(
81
82
  "getEntityListFolders",
82
83
  { projectName: t },
83
84
  (r) => {
@@ -92,8 +93,9 @@ const l = { type: "entityListFolder", id: "LIST" }, a = (t) => t.data?.detail ||
92
93
  n.undo();
93
94
  }
94
95
  },
95
- transformErrorResponse: a,
96
+ transformErrorResponse: m,
96
97
  invalidatesTags: (t, o, i) => [
98
+ a,
97
99
  { type: "entityListFolder", id: i.folderId },
98
100
  { type: "entityList", id: i.folderId }
99
101
  ]
@@ -101,7 +103,7 @@ const l = { type: "entityListFolder", id: "LIST" }, a = (t) => t.data?.detail ||
101
103
  updateEntityListFolder: {
102
104
  async onQueryStarted({ projectName: t, folderId: o, entityListFolderPatchModel: i }, { dispatch: p, queryFulfilled: n }) {
103
105
  const r = p(
104
- m.util.updateQueryData(
106
+ l.util.updateQueryData(
105
107
  "getEntityListFolders",
106
108
  { projectName: t },
107
109
  (e) => {
@@ -126,20 +128,20 @@ const l = { type: "entityListFolder", id: "LIST" }, a = (t) => t.data?.detail ||
126
128
  r.undo();
127
129
  }
128
130
  },
129
- transformErrorResponse: a,
131
+ transformErrorResponse: m,
130
132
  invalidatesTags: (t, o, i) => [{ type: "entityListFolder", id: i.folderId }]
131
133
  }
132
134
  }
133
135
  }), {
134
- useGetEntityListFoldersQuery: ot,
135
- useCreateEntityListFolderMutation: et,
136
- useDeleteEntityListFolderMutation: rt,
137
- useUpdateEntityListFolderMutation: pt
138
- } = m;
136
+ useGetEntityListFoldersQuery: et,
137
+ useCreateEntityListFolderMutation: rt,
138
+ useDeleteEntityListFolderMutation: pt,
139
+ useUpdateEntityListFolderMutation: nt
140
+ } = l;
139
141
  export {
140
- et as useCreateEntityListFolderMutation,
141
- rt as useDeleteEntityListFolderMutation,
142
- ot as useGetEntityListFoldersQuery,
143
- pt as useUpdateEntityListFolderMutation
142
+ rt as useCreateEntityListFolderMutation,
143
+ pt as useDeleteEntityListFolderMutation,
144
+ et as useGetEntityListFoldersQuery,
145
+ nt as useUpdateEntityListFolderMutation
144
146
  };
145
147
  //# sourceMappingURL=listFolders.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listFolders.es.js","sources":["../../../../../../src/api/queries/entityLists/listFolders.ts"],"sourcesContent":["import { entityListsApi, EntityListFoldersResponseModel } from '@shared/api/generated'\n\nconst LIST_FOLDER_LIST_TAG = { type: 'entityListFolder' as const, id: 'LIST' }\n\n// QUERY TYPE RESULTS\n\ntype GetEntityListFoldersResult = NonNullable<EntityListFoldersResponseModel['folders']>\n\n// REDEFINE TYPES\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { getEntityId } from '@shared/util'\ntype Definitions = DefinitionsFromApi<typeof entityListsApi>\ntype TagTypes = TagTypesFromApi<typeof entityListsApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getEntityListFolders'> & {\n getEntityListFolders: OverrideResultType<\n Definitions['getEntityListFolders'],\n GetEntityListFoldersResult\n >\n}\n\nconst transformErrorResponse = (error: any) => error.data?.detail || 'Unknown lists folder error'\n\nconst enhancedListsFoldersApi = entityListsApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getEntityListFolders: {\n transformResponse: (response: EntityListFoldersResponseModel) => response.folders || [],\n transformErrorResponse,\n providesTags: (result) =>\n result\n ? [\n LIST_FOLDER_LIST_TAG,\n ...result.map((folder) => ({ type: 'entityListFolder', id: folder.id })),\n ]\n : [LIST_FOLDER_LIST_TAG],\n },\n createEntityListFolder: {\n async onQueryStarted(\n { projectName, entityListFolderPostModel },\n { dispatch, queryFulfilled },\n ) {\n // Optimistically add the new folder to the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n // Create the optimistic folder with a temporary ID if none provided\n const newFolder = {\n ...entityListFolderPostModel,\n id: entityListFolderPostModel.id || getEntityId(),\n }\n draft.push(newFolder)\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: [LIST_FOLDER_LIST_TAG],\n },\n deleteEntityListFolder: {\n async onQueryStarted({ projectName, folderId }, { dispatch, queryFulfilled }) {\n // Optimistically remove the folder from the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n const folderIndex = draft.findIndex((folder) => folder.id === folderId)\n if (folderIndex !== -1) {\n draft.splice(folderIndex, 1)\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: (_r, _e, arg) => [\n { type: 'entityListFolder', id: arg.folderId },\n { type: 'entityList', id: arg.folderId },\n ],\n },\n updateEntityListFolder: {\n async onQueryStarted(\n { projectName, folderId, entityListFolderPatchModel },\n { dispatch, queryFulfilled },\n ) {\n // Optimistically update the folder in the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n const folderIndex = draft.findIndex((folder) => folder.id === folderId)\n if (folderIndex !== -1) {\n const folder = draft[folderIndex]\n // Update the folder with the patch data\n Object.assign(folder, {\n ...folder,\n ...entityListFolderPatchModel,\n data: {\n ...folder.data,\n ...entityListFolderPatchModel.data,\n },\n })\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: (_r, _e, arg) => [{ type: 'entityListFolder', id: arg.folderId }],\n },\n },\n})\n\nexport const {\n useGetEntityListFoldersQuery,\n useCreateEntityListFolderMutation,\n useDeleteEntityListFolderMutation,\n useUpdateEntityListFolderMutation,\n} = enhancedListsFoldersApi\n"],"names":["LIST_FOLDER_LIST_TAG","transformErrorResponse","error","enhancedListsFoldersApi","entityListsApi","response","result","folder","projectName","entityListFolderPostModel","dispatch","queryFulfilled","patchResult","draft","newFolder","getEntityId","folderId","folderIndex","_r","_e","arg","entityListFolderPatchModel","useGetEntityListFoldersQuery","useCreateEntityListFolderMutation","useDeleteEntityListFolderMutation","useUpdateEntityListFolderMutation"],"mappings":"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"}
1
+ {"version":3,"file":"listFolders.es.js","sources":["../../../../../../src/api/queries/entityLists/listFolders.ts"],"sourcesContent":["import { entityListsApi, EntityListFoldersResponseModel } from '@shared/api/generated'\n\nconst LIST_FOLDER_LIST_TAG = { type: 'entityListFolder' as const, id: 'LIST' }\n\n// QUERY TYPE RESULTS\n\ntype GetEntityListFoldersResult = NonNullable<EntityListFoldersResponseModel['folders']>\n\n// REDEFINE TYPES\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { getEntityId } from '@shared/util'\ntype Definitions = DefinitionsFromApi<typeof entityListsApi>\ntype TagTypes = TagTypesFromApi<typeof entityListsApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getEntityListFolders'> & {\n getEntityListFolders: OverrideResultType<\n Definitions['getEntityListFolders'],\n GetEntityListFoldersResult\n >\n}\n\nconst transformErrorResponse = (error: any) => error.data?.detail || 'Unknown lists folder error'\n\nconst enhancedListsFoldersApi = entityListsApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getEntityListFolders: {\n transformResponse: (response: EntityListFoldersResponseModel) => response.folders || [],\n transformErrorResponse,\n providesTags: (result) =>\n result\n ? [\n LIST_FOLDER_LIST_TAG,\n ...result.map((folder) => ({ type: 'entityListFolder', id: folder.id })),\n ]\n : [LIST_FOLDER_LIST_TAG],\n },\n createEntityListFolder: {\n async onQueryStarted(\n { projectName, entityListFolderPostModel },\n { dispatch, queryFulfilled },\n ) {\n // Optimistically add the new folder to the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n // Create the optimistic folder with a temporary ID if none provided\n const newFolder = {\n ...entityListFolderPostModel,\n id: entityListFolderPostModel.id || getEntityId(),\n }\n draft.push(newFolder)\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: [LIST_FOLDER_LIST_TAG],\n },\n deleteEntityListFolder: {\n async onQueryStarted({ projectName, folderId }, { dispatch, queryFulfilled }) {\n // Optimistically remove the folder from the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n const folderIndex = draft.findIndex((folder) => folder.id === folderId)\n if (folderIndex !== -1) {\n draft.splice(folderIndex, 1)\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: (_r, _e, arg) => [\n LIST_FOLDER_LIST_TAG,\n { type: 'entityListFolder', id: arg.folderId },\n { type: 'entityList', id: arg.folderId },\n ],\n },\n updateEntityListFolder: {\n async onQueryStarted(\n { projectName, folderId, entityListFolderPatchModel },\n { dispatch, queryFulfilled },\n ) {\n // Optimistically update the folder in the cache\n const patchResult = dispatch(\n enhancedListsFoldersApi.util.updateQueryData(\n 'getEntityListFolders',\n { projectName },\n (draft) => {\n const folderIndex = draft.findIndex((folder) => folder.id === folderId)\n if (folderIndex !== -1) {\n const folder = draft[folderIndex]\n // Update the folder with the patch data\n Object.assign(folder, {\n ...folder,\n ...entityListFolderPatchModel,\n data: {\n ...folder.data,\n ...entityListFolderPatchModel.data,\n },\n })\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n }\n },\n transformErrorResponse,\n invalidatesTags: (_r, _e, arg) => [{ type: 'entityListFolder', id: arg.folderId }],\n },\n },\n})\n\nexport const {\n useGetEntityListFoldersQuery,\n useCreateEntityListFolderMutation,\n useDeleteEntityListFolderMutation,\n useUpdateEntityListFolderMutation,\n} = enhancedListsFoldersApi\n"],"names":["LIST_FOLDER_LIST_TAG","transformErrorResponse","error","enhancedListsFoldersApi","entityListsApi","response","result","folder","projectName","entityListFolderPostModel","dispatch","queryFulfilled","patchResult","draft","newFolder","getEntityId","folderId","folderIndex","_r","_e","arg","entityListFolderPatchModel","useGetEntityListFoldersQuery","useCreateEntityListFolderMutation","useDeleteEntityListFolderMutation","useUpdateEntityListFolderMutation"],"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");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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"}