@ynput/ayon-frontend-shared 0.4.1 → 0.4.3

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 (1190) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -201
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +252 -512
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -233
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs22.js +1 -1
  11. package/dist/_virtual/index.cjs23.js +1 -1
  12. package/dist/_virtual/index.cjs24.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs8.js +1 -1
  17. package/dist/_virtual/index.es22.js +3 -3
  18. package/dist/_virtual/index.es23.js +5 -5
  19. package/dist/_virtual/index.es24.js +5 -5
  20. package/dist/_virtual/index.es4.js +2 -5
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +5 -2
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +2 -2
  25. package/dist/_virtual/index.es8.js +2 -2
  26. package/dist/api.cjs.js +1 -1
  27. package/dist/api.es.js +446 -445
  28. package/dist/components.cjs.js +1 -1
  29. package/dist/components.es.js +83 -82
  30. package/dist/components.es.js.map +1 -1
  31. package/dist/index.cjs.js +1 -1
  32. package/dist/index.es.js +43 -130
  33. package/dist/index.es.js.map +1 -1
  34. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  35. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  36. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  37. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  38. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  40. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  41. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  52. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  54. package/dist/shared/src/api/generated/graphql.cjs.js +85 -27
  55. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  56. package/dist/shared/src/api/generated/graphql.es.js +126 -64
  57. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  59. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +55 -151
  73. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  76. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  81. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  82. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +36 -36
  83. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  84. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/entityLists/getLists.es.js +67 -118
  95. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  99. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  105. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/folders/getFolders.es.js +68 -119
  107. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
  111. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  115. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  116. package/dist/shared/src/api/queries/overview/getOverview.es.js +229 -282
  117. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  118. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  121. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  122. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  123. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  124. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  125. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  126. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  127. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  128. package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
  129. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  130. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +88 -141
  137. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  140. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  141. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  142. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +30 -80
  143. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  144. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  145. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  146. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  148. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  149. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  150. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  152. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  153. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  154. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  155. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  156. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  157. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  158. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  159. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  160. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  161. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  162. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  163. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  164. package/dist/shared/src/components/Chips/Chips.cjs.js +12 -6
  165. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  166. package/dist/shared/src/components/Chips/Chips.es.js +69 -62
  167. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  168. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  169. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  170. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
  171. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  172. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  173. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  174. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  175. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  176. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  177. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  178. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  179. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  180. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  181. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  182. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +30 -166
  183. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  184. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  185. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  186. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -195
  187. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  188. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  189. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  190. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
  191. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  192. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  193. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  194. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  195. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  196. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  197. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  198. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  199. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  200. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  201. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  202. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
  203. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  204. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  205. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  206. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  207. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  208. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  209. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  210. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  211. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  212. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  213. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  214. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  215. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  216. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  217. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  218. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +12 -314
  219. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  220. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  221. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  222. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -273
  223. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  224. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  225. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  226. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -335
  227. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  228. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  229. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  230. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  231. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  232. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -310
  233. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  234. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  235. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  236. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  237. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  238. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  239. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  240. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -293
  241. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  242. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  243. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  244. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  245. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  246. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  247. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  248. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  249. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  250. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  251. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  252. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  253. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -346
  254. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  255. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  256. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  257. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -212
  258. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  259. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  260. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
  262. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  263. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  264. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  265. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -185
  266. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  267. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  268. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  269. package/dist/shared/src/components/Menu/Menu.es.js +48 -343
  270. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  271. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  272. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  273. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -316
  274. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  275. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  276. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  277. package/dist/shared/src/components/Menu/MenuList.es.js +74 -373
  278. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  279. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  280. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  281. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
  282. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  283. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  284. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  285. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -346
  286. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  287. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  288. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  289. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
  290. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  291. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  292. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  293. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +78 -371
  294. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  295. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  296. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  297. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
  298. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  299. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  300. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  301. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -334
  302. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  303. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  304. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  305. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -331
  306. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  307. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  308. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  309. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
  310. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  312. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  313. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
  314. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  315. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  316. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  317. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -365
  318. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  319. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  320. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  321. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -316
  322. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  323. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  324. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  325. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  326. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  327. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  328. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  329. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -326
  330. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  331. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  332. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  333. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  334. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
  336. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  337. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  338. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
  340. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  341. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  342. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  343. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
  344. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  345. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  346. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  347. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
  348. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  349. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  350. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  351. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +39 -8
  352. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  353. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  354. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  355. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  356. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  357. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  358. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  359. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
  360. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  361. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  362. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  363. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  364. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  365. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  366. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  367. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  368. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  369. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  370. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  371. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
  372. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  373. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  374. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  375. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -262
  376. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  377. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  378. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  379. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  380. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  381. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  382. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -210
  384. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  385. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  387. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  388. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Actions/Actions.es.js +51 -250
  390. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  391. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  393. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  394. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -323
  396. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  397. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  399. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +151 -334
  404. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  406. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -329
  408. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  410. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -236
  412. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -255
  416. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
  420. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
  424. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  426. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  428. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
  432. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  433. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  434. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  436. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  437. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  438. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
  440. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  441. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  443. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  445. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  447. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  448. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
  450. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  451. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  452. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -217
  454. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  455. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  456. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -323
  458. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  459. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  460. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -307
  462. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  463. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  465. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  467. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  469. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  471. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  472. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  474. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  475. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  477. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  478. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
  480. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  481. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  482. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
  484. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  485. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  486. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -324
  488. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  489. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  490. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
  492. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  493. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  494. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
  496. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  497. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  498. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  500. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  501. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  502. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
  504. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  505. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  506. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  508. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  509. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  512. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/Feed.es.js +65 -245
  514. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  518. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -309
  520. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -421
  524. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  526. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -317
  528. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  532. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  534. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
  536. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  540. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -372
  542. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  546. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  547. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
  548. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  549. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  550. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  551. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -324
  552. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  554. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  555. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  556. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  557. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  558. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
  560. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  561. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  562. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  564. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  565. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  566. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  567. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  568. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  569. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  570. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  572. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  573. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  574. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
  576. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  577. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  578. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
  580. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  581. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  582. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -310
  584. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  585. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  586. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  587. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
  588. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  589. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
  590. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
  591. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +24 -18
  592. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
  593. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +1 -1
  594. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -1
  595. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +26 -25
  596. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -1
  597. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  598. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  599. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  600. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  601. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  603. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  604. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  605. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  607. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  608. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  610. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  611. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  613. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  614. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  615. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
  617. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  618. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  619. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +56 -177
  621. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  622. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  623. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -343
  625. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  626. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  627. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  628. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  630. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  631. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
  633. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  634. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  635. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  636. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  637. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
  639. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  642. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +613 -883
  643. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +6 -0
  645. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  646. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +14 -8
  647. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  650. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +289 -413
  651. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  654. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -375
  655. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  658. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -204
  659. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  662. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +38 -124
  663. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  665. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  666. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  667. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -3
  671. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  674. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
  675. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  677. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +243 -441
  679. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  680. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
  683. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  684. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
  687. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  688. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
  691. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  692. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +71 -245
  695. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  696. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  698. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  700. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  704. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  706. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  708. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
  710. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +59 -233
  714. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +74 -248
  718. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +147 -439
  722. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  724. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +23 -197
  726. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  728. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -206
  730. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  732. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -332
  734. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  736. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +135 -335
  738. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  740. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -203
  744. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  746. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -204
  748. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -282
  752. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  753. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  754. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  755. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -232
  756. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  758. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -198
  760. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  762. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +43 -217
  764. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  766. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -467
  768. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  770. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
  772. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  774. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  776. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  778. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  779. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  780. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  781. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  782. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  783. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  784. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  785. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  786. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  787. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  788. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  789. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  790. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  791. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  792. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  793. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  794. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  795. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
  796. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  797. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +5 -3
  798. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  799. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +159 -441
  800. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  801. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  802. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  803. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
  804. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  805. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +9 -1
  806. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  807. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +47 -31
  808. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  809. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +28 -9
  810. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  811. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +58 -39
  812. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  813. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
  814. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
  815. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
  816. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
  817. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +53 -25
  818. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  819. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +150 -103
  820. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  821. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +9 -2
  822. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  823. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +66 -57
  824. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  825. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  826. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  827. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
  828. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  829. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  830. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  831. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
  832. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  833. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  834. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  835. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -202
  836. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  837. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  838. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  839. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +37 -333
  840. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  841. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  842. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  843. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
  844. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  845. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +19 -3
  846. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  847. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +119 -196
  848. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  849. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  850. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  851. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  852. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  853. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js +6 -0
  854. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js.map +1 -0
  855. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js +11 -0
  856. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js.map +1 -0
  857. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  858. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  859. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -217
  860. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  861. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  862. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  863. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -527
  864. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  865. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  866. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  867. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -367
  868. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  869. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  870. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  871. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
  872. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  873. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  874. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  875. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
  876. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  877. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  878. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  879. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -370
  880. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  881. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  882. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  883. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -228
  884. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  885. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  886. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  887. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
  888. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  889. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  890. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  891. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -309
  892. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  893. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  894. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  895. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -311
  896. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  897. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  898. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  899. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
  900. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  901. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  902. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  903. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
  904. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  905. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  906. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  907. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
  908. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  909. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  910. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  911. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
  912. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  913. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  914. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  915. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
  916. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  917. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  918. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  919. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  920. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  921. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  922. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  923. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  924. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  925. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  926. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  927. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  928. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  929. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -336
  930. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  931. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  932. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  933. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -354
  934. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  935. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  936. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  937. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
  938. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  939. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  940. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  941. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +89 -287
  942. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  943. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  944. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  945. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  946. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  947. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  948. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  949. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  950. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  951. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  952. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  953. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  954. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  955. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -216
  956. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  957. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  958. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  959. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  960. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  961. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  962. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  963. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  964. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  965. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +47 -46
  966. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  967. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  968. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  969. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  970. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  971. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  972. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  973. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  974. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  975. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  976. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  977. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  978. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  979. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -362
  980. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  981. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  982. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  983. package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
  984. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  985. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  986. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  987. package/dist/shared/src/context/PowerpackContext.es.js +42 -344
  988. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  989. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  990. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  991. package/dist/shared/src/context/ProjectContext.es.js +1 -1
  992. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  993. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  994. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  995. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -231
  996. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  997. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  998. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  999. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  1000. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  1001. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -324
  1002. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  1003. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  1004. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  1005. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  1006. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  1007. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  1008. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  1009. package/dist/shared/src/context/UriContext.es.js +2 -2
  1010. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  1011. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  1012. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  1013. package/dist/shared/src/context/WebsocketContext.es.js +28 -229
  1014. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  1015. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  1016. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  1017. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
  1018. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  1019. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  1020. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  1021. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -314
  1022. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  1023. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  1024. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  1025. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -333
  1026. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  1027. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  1028. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  1029. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  1030. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  1031. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  1032. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  1033. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  1034. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  1035. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -212
  1036. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  1037. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
  1038. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  1039. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +36 -33
  1040. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  1041. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  1042. package/dist/shared/src/util/checkName.es.js.map +1 -1
  1043. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  1044. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  1045. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  1046. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  1047. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  1048. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  1049. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  1050. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  1051. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  1052. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  1053. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  1054. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  1055. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  1056. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  1057. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  1058. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  1059. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  1060. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  1061. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  1062. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  1063. package/dist/shared/src/util/parseFilename.es.js +8 -0
  1064. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  1065. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  1066. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  1067. package/dist/types/api/base/index.d.ts +1 -1
  1068. package/dist/types/api/generated/graphql.d.ts +76 -2
  1069. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  1070. package/dist/types/api/queries/activities/getActivities.d.ts +32 -2
  1071. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  1072. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
  1073. package/dist/types/api/queries/entities/getEntity.d.ts +16 -1
  1074. package/dist/types/api/queries/entities/getEntityPanel.d.ts +16 -1
  1075. package/dist/types/api/queries/entities/updateEntity.d.ts +16 -1
  1076. package/dist/types/api/queries/entityLists/getLists.d.ts +319 -305
  1077. package/dist/types/api/queries/overview/getOverview.d.ts +49 -18
  1078. package/dist/types/api/queries/project/getProject.d.ts +76 -61
  1079. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  1080. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +16 -1
  1081. package/dist/types/api/queries/users/getUsers.d.ts +16 -1
  1082. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +32 -2
  1083. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  1084. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  1085. package/dist/types/components/Menu/Menu.d.ts +1 -1
  1086. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  1087. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1088. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
  1089. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1090. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1091. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1092. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
  1093. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1094. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1095. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1096. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1097. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1098. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  1099. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1100. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +4 -1
  1101. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1102. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1103. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1104. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1105. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1106. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1107. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1108. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1109. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1110. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1111. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1112. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1113. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1114. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1115. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1116. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1117. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1118. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1119. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1120. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1121. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1122. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1123. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1124. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1125. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1126. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1127. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1128. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1129. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1130. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1131. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +1 -0
  1132. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1133. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1134. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1135. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1136. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
  1137. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +2 -1
  1138. package/dist/types/containers/ProjectTreeTable/constants.d.ts +3 -0
  1139. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1140. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1141. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1142. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1143. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1144. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1145. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1146. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1147. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1148. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1149. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1150. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1151. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1152. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1153. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1154. package/dist/types/containers/ProjectTreeTable/widgets/SubtasksWidget.d.ts +1 -0
  1155. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1156. package/dist/types/containers/ProjectTreeTable/widgets/wrapMode.d.ts +2 -0
  1157. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1158. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1159. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1160. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1161. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1162. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1163. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1164. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1165. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1166. package/dist/types/containers/Views/context/ViewsContext.d.ts +1 -0
  1167. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1168. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1169. package/dist/types/containers/Views/types.d.ts +1 -1
  1170. package/dist/types/context/AddonContext.d.ts +1 -1
  1171. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1172. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1173. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1174. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1175. package/dist/types/util/buildHierarchicalTableRows.d.ts +3 -1
  1176. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1177. package/dist/types/util/getBundleMode.d.ts +1 -1
  1178. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1179. package/dist/types/util/index.d.ts +2 -0
  1180. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1181. package/dist/types/util/parseFilename.d.ts +1 -0
  1182. package/dist/types/util/uriUtils.d.ts +1 -1
  1183. package/dist/util.cjs.js +1 -1
  1184. package/dist/util.es.js +24 -20
  1185. package/dist/util.es.js.map +1 -1
  1186. package/package.json +1 -1
  1187. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1188. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1189. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1190. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getVersionsProducts.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProducts.ts"],"sourcesContent":["// QUERIES FOR THE VERSIONS PAGE, FETCHING AND UPDATING DATA\n// Uses a separate graphqlVersionsApi for increased IDE speed\n\n// There are 4 main fetch requests:\n\n// Versions Only:\n// 1. GetVersions - fetches all versions in the project for given filtering and with pagination\n\n// Products and Versions (stacked):\n// 2. GetProducts - fetches all products in the project based on product and version filtering\n// 3. GetVersionsByProducts - when a product is expanded, fetches all versions for the products that are expanded. Uses getVersionsByProductId for each parent id. (uses queryFn)\n// 4. GetVersionsByProductId - get all versions for a specific product. Used by getVersionsByProducts only.\n\n// VersionFragment is used in all version queries to ensure consistent data structure\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n InfiniteData,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport {\n GetProductsQuery,\n GetProductsQueryVariables,\n GetProductsColumnStatsQuery,\n GetVersionsByProductIdQueryVariables,\n GetVersionsColumnStatsQuery,\n GetVersionsQuery,\n GetVersionsQueryVariables,\n gqlApi,\n PageInfo,\n VpFolderFragment,\n} from '@shared/api/generated'\nimport {\n parseGQLErrorMessage,\n provideTagsForProductsInfinite,\n provideTagsForProductsResult,\n provideTagsForVersionsInfinite,\n provideTagsForVersionsResult,\n transformProductsResponse,\n transformVersionsResponse,\n} from './getVersionsProductsUtils'\nimport { parseJSONField } from '../overview'\nimport {\n getSupportedEntityPatch,\n createRealtimeBatcher,\n REALTIME_REST_CALL_LIMIT,\n RealtimeBatchProcessor,\n waitForRealtimeJitter,\n} from '@shared/util'\nimport PubSub from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport type { FieldStats } from '../columnStats'\nimport {\n normalizeFieldStats,\n mergeFieldStats,\n hasNewTargetFields,\n transformStatsError,\n} from '../columnStats'\n\nconst CACHE_TIME = 10 // seconds\n\n// SHARED CACHE UPDATE HELPERS\n// These helpers are used by PubSub handlers to update cached data in real-time\n\n/**\n * Finds the correct insertion index for a new item in a sorted array\n * Used when adding new items to maintain sort order\n */\nfunction findSortedInsertIndex<T>(items: T[], newItem: T, sortBy: keyof T, desc: boolean): number {\n for (let i = 0; i < items.length; i++) {\n const newValue = newItem[sortBy]\n const currentValue = items[i][sortBy]\n const shouldInsert = desc ? newValue > currentValue : newValue < currentValue\n\n if (shouldInsert) {\n return i\n }\n }\n return items.length\n}\n\n/**\n * Updates a paginated cache (draft.pages[].items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add at sorted position\n *\n * @param pages - Array of page objects containing items arrays\n * @param entityId - ID of the entity to update/delete/add\n * @param updatedItem - The updated item, or undefined if deleted\n * @param itemsKey - Key to access items array in each page ('versions' or 'products')\n * @param sortBy - Property to sort by when inserting new items\n * @param desc - Sort direction (true = descending)\n */\nfunction updatePagedCache<T extends { id: string }>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pages: any[],\n entityId: string,\n updatedItem: T | undefined,\n itemsKey: string,\n sortBy: keyof T,\n desc: boolean,\n): void {\n // Search for existing item in all pages\n for (const page of pages) {\n const items = page[itemsKey] as T[]\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n // Update existing item\n items[index] = updatedItem\n } else {\n // Item no longer exists or doesn't match filters - remove it\n items.splice(index, 1)\n }\n return\n }\n }\n\n // Item not found in cache - add at correct sorted position in first page\n if (updatedItem && pages.length > 0) {\n const items = pages[0][itemsKey] as T[]\n const insertIndex = findSortedInsertIndex(items, updatedItem, sortBy, desc)\n items.splice(insertIndex, 0, updatedItem)\n }\n}\n\n/**\n * Updates a flat cache (draft.items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add new\n */\nfunction updateFlatCache<T extends { id: string }>(\n items: T[],\n entityId: string,\n updatedItem: T | undefined,\n): { index: number; action: 'updated' | 'deleted' | 'added' | 'none' } {\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n items[index] = updatedItem\n return { index, action: 'updated' }\n } else {\n items.splice(index, 1)\n return { index, action: 'deleted' }\n }\n } else if (updatedItem) {\n items.push(updatedItem)\n return { index: items.length - 1, action: 'added' }\n }\n\n return { index: -1, action: 'none' }\n}\n\n// Query result types\nexport type FolderAttribNode = VpFolderFragment & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n}\nexport type VersionNodeRAW = GetVersionsQuery['project']['versions']['edges'][0]['node']\nexport type VersionNode = VersionNodeRAW & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n product: VersionNodeRAW['product'] & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n folder: FolderAttribNode // folder with parsed attribs\n }\n groups?: { value?: string; hasNextPage?: string }[] // grouping metadata\n}\nexport type ProductNodeRAW = GetProductsQuery['project']['products']['edges'][0]['node']\nexport type ProductNode = Omit<ProductNodeRAW, 'versions'> & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n featuredVersion?: VersionNode | null // added separately\n folder: FolderAttribNode // folder with parsed attribs\n versions: {\n id: string\n name: string\n version: number\n heroVersionId?: string | null\n }[] // versions with isHero flag\n}\n\nexport type GetVersionsResult = {\n pageInfo?: PageInfo\n versions: VersionNode[]\n errors?: Array<{ productId: string; error: string }>\n}\n\n// for infinite query args\nexport type GetVersionsArgs = Omit<GetVersionsQueryVariables, 'cursor'> & {\n desc?: boolean // sort direction\n}\n\n// for paginated queries in infinite query\ntype VersionsPageParam = {\n cursor: string\n desc?: boolean\n}\n\nexport type GetProductsArgs = Omit<GetProductsQueryVariables, 'cursor' | 'versionIds'> & {\n desc?: boolean // sort direction\n}\n\ntype ProductsPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype GetVersionsByProductsArgs = GetVersionsByProductIdQueryVariables & {\n productIds: string[]\n desc?: boolean\n}\n\nexport type GetGroupedVersionsListArgs = {\n projectName: string\n groups: { filter: string; count?: number | null; value: string }[]\n groupFilterKey?: string\n versionFilter?: string\n productFilter?: string\n taskFilter?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n featuredOnly?: string[]\n featuredOnlyEntityType?: string\n latestPerFolder?: boolean\n hasReviewables?: boolean\n}\n\nexport type GetGroupedVersionsListResult = {\n versions: VersionNode[]\n}\n\nexport type VersionInfiniteResult = InfiniteData<GetVersionsResult, VersionsPageParam> | undefined\n\nexport type ProductInfiniteResult = InfiniteData<GetProductsResult, ProductsPageParam> | undefined\n\nexport type GetProductsResult = {\n pageInfo: PageInfo\n products: ProductNode[]\n}\n\nfunction updateVersionList(\n versions: VersionNode[],\n updatedNode: VersionNode,\n replaceVersionInSameFolder: boolean,\n sortBy: keyof VersionNode,\n desc: boolean,\n insertIfMissing = true,\n): boolean {\n if (replaceVersionInSameFolder) {\n // A new version can have a different ID from the cached version. Since\n // latestPerFolder allows only one visible version per folder, replace by\n // folder instead of patching by version ID. Existing versions still use\n // the normal ID-based patching path.\n const folderId = updatedNode.product?.folder?.id\n let removed = false\n\n for (let i = versions.length - 1; i >= 0; i--) {\n const version = versions[i]\n if (version.id === updatedNode.id || (folderId && version.product?.folder?.id === folderId)) {\n versions.splice(i, 1)\n removed = true\n }\n }\n if (!insertIfMissing) return removed\n } else {\n // Without latestPerFolder, an update only affects the version with the\n // matching ID; an unseen version can be inserted as a new list item.\n const index = versions.findIndex((version) => version.id === updatedNode.id)\n if (index !== -1) {\n versions[index] = updatedNode\n return true\n }\n if (!insertIfMissing) return false\n }\n\n const insertIndex = findSortedInsertIndex(versions, updatedNode, sortBy, desc)\n versions.splice(insertIndex, 0, updatedNode)\n return true\n}\n\nfunction updateVersionPages(\n pages: { versions: VersionNode[] }[],\n updatedNode: VersionNode,\n replaceVersionInSameFolder: boolean,\n sortBy: keyof VersionNode,\n desc: boolean,\n): void {\n if (!replaceVersionInSameFolder) {\n for (const page of pages) {\n if (updateVersionList(page.versions, updatedNode, false, sortBy, desc, false)) {\n return\n }\n }\n } else {\n // With latestPerFolder, inspect every loaded page so the previous\n // version for this folder is removed wherever pagination placed it.\n for (const page of pages) {\n updateVersionList(page.versions, updatedNode, true, sortBy, desc, false)\n }\n }\n\n if (pages.length > 0) {\n updateVersionList(pages[0].versions, updatedNode, replaceVersionInSameFolder, sortBy, desc)\n }\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetVersions'> & {\n GetVersions: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetVersionsByProductId: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetProducts: OverrideResultType<Definitions['GetProducts'], GetProductsResult>\n GetProductsColumnStats: OverrideResultType<Definitions['GetProductsColumnStats'], FieldStats[]>\n GetVersionsColumnStats: OverrideResultType<Definitions['GetVersionsColumnStats'], FieldStats[]>\n}\n\nconst enhancedVersionsPageApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // used by both stacked and non-stacked views\n GetVersions: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // used by getVersionsByProducts only\n GetVersionsByProductId: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // used by getProductsInfinite only\n GetProducts: {\n transformResponse: transformProductsResponse,\n providesTags: provideTagsForProductsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetProductsColumnStats: {\n transformResponse: (res: GetProductsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.products?.fieldStats ?? []),\n transformErrorResponse: (error: any) => transformStatsError(error, 'product'),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'productColumnStats', id: projectName }],\n keepUnusedDataFor: CACHE_TIME,\n },\n GetVersionsColumnStats: {\n transformResponse: (res: GetVersionsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.versions?.fieldStats ?? []),\n transformErrorResponse: (error: any) => transformStatsError(error, 'version'),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'versionColumnStats', id: projectName }],\n keepUnusedDataFor: CACHE_TIME,\n },\n },\n})\n\nexport const VP_INFINITE_QUERY_COUNT = 250 // Number of items to fetch per page\nconst VERSIONS_BY_PRODUCT_ID_QUERY_COUNT = 1000 // max number of versions to fetch per product id\nconst MAX_PAGES_PER_PRODUCT = 10 // Hard cutoff to prevent infinite loops\n\nconst supportedVersionFields = ['status', 'tags']\n\n/**\n * Reusable handler for websocket version updates to perform efficient batched cache updates\n */\nfunction createVersionUpdateBatcher(\n projectName: string,\n dispatch: any,\n handlers: {\n checkVersionInCache: (entityId: string, parentId?: string) => boolean\n onBatchUpdate: (changes: {\n deleted?: { entityId: string; parentId?: string }[]\n patched?: { entityId: string; field: string; value: any; parentId?: string }[]\n attribPatched?: { entityId: string; allAttrib: string; parsedAttrib: any }[]\n fullUpdated?: VersionNode[]\n createdVersionIds?: Set<string>\n }) => void\n getBaseFilters?: () => any\n },\n) {\n const batchProcessMessages: RealtimeBatchProcessor<{\n topic: string\n message: any\n }> = async (updates, isActive) => {\n const deleted: { entityId: string; parentId?: string }[] = []\n const patched: { entityId: string; field: string; value: any; parentId?: string }[] = []\n const attribsToFetch = new Set<string>()\n const fullFetchIds = new Set<string>()\n const createdVersionIds = new Set<string>()\n\n for (const { topic, message: msg } of updates) {\n const entityId = msg.summary?.entityId\n const parentId = msg.summary?.parentId\n if (!entityId) continue\n\n if (topic === 'entity.version.deleted') {\n deleted.push({ entityId, parentId })\n } else if (topic === 'entity.version.created') {\n fullFetchIds.add(entityId)\n createdVersionIds.add(entityId)\n } else if (topic.startsWith('entity.version.') && topic.endsWith('_changed')) {\n const versionFound = handlers.checkVersionInCache(entityId, parentId)\n if (!versionFound) continue\n\n const field = topic.split('.')[2].split('_changed')[0]\n\n if (field === 'attrib') {\n attribsToFetch.add(entityId)\n continue\n }\n\n const patch = getSupportedEntityPatch(field, msg.summary, supportedVersionFields)\n if (!patch) {\n fullFetchIds.add(entityId)\n continue\n }\n\n patched.push({ entityId, field: patch.field, value: patch.value, parentId })\n }\n }\n\n if (fullFetchIds.size > 0 && fullFetchIds.size <= REALTIME_REST_CALL_LIMIT && dispatch) {\n try {\n await waitForRealtimeJitter()\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate({\n ...(handlers.getBaseFilters?.() || {}),\n projectName,\n versionIds: Array.from(fullFetchIds),\n }),\n )\n\n if (!isActive()) return\n if (result.data?.versions) {\n handlers.onBatchUpdate({ fullUpdated: result.data.versions, createdVersionIds })\n }\n } catch (e) {\n console.error('Failed to fetch full version data batch', e)\n }\n }\n\n const attribPatched: { entityId: string; allAttrib: string; parsedAttrib: any }[] = []\n if (attribsToFetch.size > 0 && attribsToFetch.size <= REALTIME_REST_CALL_LIMIT && dispatch) {\n try {\n await waitForRealtimeJitter()\n\n const versionIds = Array.from(attribsToFetch)\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsAttribs.initiate(\n { projectName, versionIds },\n { forceRefetch: true },\n ),\n )\n\n if (!isActive()) return\n if (result.data?.project?.versions?.edges) {\n for (const edge of result.data.project.versions.edges) {\n const node = edge.node\n if (node) {\n attribPatched.push({\n entityId: node.id,\n allAttrib: node.allAttrib,\n parsedAttrib: parseJSONField(node.allAttrib),\n })\n }\n }\n }\n } catch (e) {\n console.error('Failed to fetch patched version attribs', e)\n }\n }\n\n if (deleted.length > 0 || patched.length > 0 || attribPatched.length > 0) {\n handlers.onBatchUpdate({ deleted, patched, attribPatched })\n }\n }\n\n const batcher = createRealtimeBatcher(\n batchProcessMessages,\n ({ topic, message }) =>\n `${message.summary?.entityId}:${message.summary?.parentId ?? ''}:${topic}`,\n )\n\n const handleRealtimeUpdate = (topic: string, message: any) => {\n const project = message.project\n if (project !== projectName) return\n\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n batcher.add({ topic, message })\n }\n\n return {\n handle: handleRealtimeUpdate,\n clear() {\n batcher.clear()\n },\n }\n}\n\nconst injectedVersionsPageApi = enhancedVersionsPageApi.injectEndpoints({\n endpoints: (build) => ({\n // enhance GetVersions with an infinite query\n getVersionsInfinite: build.infiniteQuery<GetVersionsResult, GetVersionsArgs, VersionsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetVersions query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetVersions gql query\n const result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n versions: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the versions directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getVersionsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsInfinite,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n onCacheEntryAdded: async (\n arg,\n { getCacheEntry, updateCachedData, cacheEntryRemoved, dispatch },\n ) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n const vIndex = page.versions.findIndex(\n (v) => v.id === message.summary.entityId,\n )\n if (vIndex !== -1) {\n page.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n featuredOnly: arg.featuredOnly,\n featuredOnlyEntityType: arg.featuredOnlyEntityType,\n latestPerFolder: arg.latestPerFolder,\n hasReviewables: arg.hasReviewables,\n sortBy: arg.sortBy,\n }),\n checkVersionInCache: (entityId) => {\n const cacheVersions = getCacheEntry().data\n if (!cacheVersions) return false\n for (const page of cacheVersions.pages || []) {\n if (page.versions.some((v) => v.id === entityId)) return true\n }\n return false\n },\n onBatchUpdate: ({\n deleted,\n patched,\n attribPatched,\n fullUpdated,\n createdVersionIds,\n }) => {\n updateCachedData((draft) => {\n for (const page of draft?.pages || []) {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = page.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) page.versions.splice(vIndex, 1)\n }\n }\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = page.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patched\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = page.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n updateVersionPages(\n draft.pages,\n updatedNode,\n arg.latestPerFolder === true &&\n createdVersionIds?.has(updatedNode.id) === true,\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n }\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n },\n ),\n\n // custom query function that fetches versions by multiple parent ids -not infinite and gets 1000 versions max\n getVersionsByProducts: build.query<GetVersionsResult, GetVersionsByProductsArgs>({\n queryFn: async (args, { dispatch, forced }) => {\n const { productIds = [], desc, ...rest } = args\n\n // Helper function to fetch a page of versions\n const fetchVersionsPage = async (productId: string, cursor?: string) => {\n const queryParams: GetVersionsByProductIdQueryVariables = {\n ...rest,\n productIds: [productId],\n }\n\n if (desc) {\n if (cursor) queryParams.before = cursor\n queryParams.last = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n } else {\n if (cursor) queryParams.after = cursor\n queryParams.first = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n }\n\n return dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsByProductId.initiate(queryParams, {\n forceRefetch: forced,\n }),\n )\n }\n\n // for each product id, call getVersionsByProductId\n const promises = productIds.map((productId) => fetchVersionsPage(productId))\n\n // wait for all requests to settle (either fulfilled or rejected)\n const settledResults = await Promise.allSettled(promises)\n\n // Collect all versions from initial queries\n const allVersions: VersionNode[] = []\n const errors: Array<{ productId: string; error: any }> = []\n\n // Check each result for additional pages and fetch them if needed\n for (let i = 0; i < settledResults.length; i++) {\n const settledResult = settledResults[i]\n const productId = productIds[i]\n\n // Handle rejected promises\n if (settledResult.status === 'rejected') {\n console.error(`Error fetching versions for product ${productId}:`, settledResult.reason)\n errors.push({ productId, error: parseGQLErrorMessage(settledResult.reason) })\n continue\n }\n\n // Handle errors in fulfilled promises\n const result = settledResult.value\n if (result.error) {\n console.error(`Error fetching versions for product ${productId}:`, result.error)\n errors.push({\n productId,\n // @ts-expect-error - message\n error: parseGQLErrorMessage(result.error?.message || 'Unknown error'),\n })\n continue\n }\n\n if (!result.data) continue\n\n // Add initial page versions\n allVersions.push(...result.data.versions)\n\n // Check if there are more pages to fetch\n let pageInfo = result.data.pageInfo\n let pageCount = 1\n\n while (pageInfo && pageCount < MAX_PAGES_PER_PRODUCT) {\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n const cursor = pageInfo.endCursor\n\n if (!hasNextPage || !cursor) break\n\n // Fetch next page\n const nextPageResult = await fetchVersionsPage(productId, cursor)\n\n if (nextPageResult.error) {\n console.error(\n `Error fetching versions page ${pageCount + 1} for product ${productId}:`,\n nextPageResult.error,\n )\n errors.push({ productId, error: nextPageResult.error })\n break\n }\n\n if (!nextPageResult.data) break\n\n allVersions.push(...nextPageResult.data.versions)\n pageInfo = nextPageResult.data.pageInfo\n pageCount++\n }\n }\n\n // If some requests failed but we have data, log warning but return successful data\n if (errors.length > 0) {\n console.warn(\n `Partial success: ${errors.length} of ${productIds.length} products failed to fetch versions`,\n errors,\n )\n }\n\n return {\n data: {\n versions: allVersions,\n pageInfo: undefined, // pageInfo is undefined as we've flattened multiple queries\n errors: errors.length > 0 ? errors : undefined,\n },\n }\n },\n // Subscribes to version entity changes for expanded products\n // Only updates versions that belong to currently expanded products\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n productIds: arg.productIds,\n latestPerFolder: arg.latestPerFolder,\n }),\n checkVersionInCache: (entityId, parentId) => {\n if (!parentId || !arg.productIds.includes(parentId)) return false\n let found = false\n updateCachedData((draft) => {\n found = draft.versions.some((v) => v.id === entityId)\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated, createdVersionIds }) => {\n updateCachedData((draft) => {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = draft.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) draft.versions.splice(vIndex, 1)\n }\n }\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n updateVersionList(\n draft.versions,\n updatedNode,\n arg.latestPerFolder === true && createdVersionIds?.has(updatedNode.id) === true,\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n }),\n\n // enhance GetProducts with an infinite query\n getProductsInfinite: build.infiniteQuery<GetProductsResult, GetProductsArgs, ProductsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n let result\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetProducts query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetProducts gql query\n result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n products: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the products directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getProductsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForProductsInfinite,\n // Subscribes to product entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n // Often triggered together with version changes (new product + version)\n\n onCacheEntryAdded: async (\n arg,\n { updateCachedData, cacheEntryRemoved, dispatch, getCacheEntry },\n ) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n page.products.forEach((p) => {\n if (p.featuredVersion?.id === message.summary.entityId) {\n p.featuredVersion.thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n })\n }\n })\n })\n },\n ['version'],\n )\n\n // Refetch and update products in one request per realtime batch.\n const refetchProducts = async (productIds: string[], isActive: () => boolean) => {\n const queryParams: any = {\n projectName: arg.projectName,\n productIds,\n productFilter: arg.productFilter,\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n first: productIds.length,\n }\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error || !isActive()) return\n\n updateCachedData((draft) => {\n const productsById = new Map(\n (result.data?.products || []).map((product: ProductNode) => [product.id, product]),\n )\n productIds.forEach((productId) => {\n updatePagedCache(\n draft.pages,\n productId,\n productsById.get(productId),\n 'products',\n (arg.sortBy || 'createdAt') as keyof ProductNode,\n arg.desc || false,\n )\n })\n })\n }\n\n const productBatcher = createRealtimeBatcher(\n async (messages: { topic: string; message: any }[], isActive) => {\n const cachedProductIds = new Set(\n getCacheEntry().data?.pages.flatMap((page) =>\n page.products.map((product) => product.id),\n ) || [],\n )\n const productIds = messages\n .map(({ topic, message }) => ({\n topic,\n id: message.summary?.entityId,\n }))\n .filter(\n ({ topic, id }) =>\n id && (cachedProductIds.has(id) || topic === 'entity.product.created'),\n )\n .map(({ id }) => id as string)\n\n if (productIds.length) {\n await refetchProducts([...new Set(productIds)], isActive)\n }\n },\n ({ message }) => message.summary?.entityId || message.id,\n )\n\n // Subscribe to version entity changes - refetch parent product when version changes\n // This ensures product's versions list and featuredVersion stay up-to-date\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n }),\n checkVersionInCache: (entityId, parentId) => {\n let found = false\n updateCachedData((draft) => {\n found = draft.pages.some((page) =>\n page.products.some(\n (p) => p.id === parentId && p.featuredVersion?.id === entityId,\n ),\n )\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated }) => {\n updateCachedData((draft) => {\n for (const page of draft?.pages || []) {\n for (const p of page.products) {\n const featuredId = p.featuredVersion?.id\n if (!featuredId) continue\n\n // Handle deletes\n if (deleted) {\n if (deleted.some((d) => d.entityId === featuredId && d.parentId === p.id)) {\n // Version deleted, need to refetch product to update featuredVersion\n // Using a set to track which products need refetch to avoid multiple calls\n productsToRefetch.add(p.id)\n }\n }\n\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value, parentId } of patched) {\n if (p.id === parentId && featuredId === entityId && p.featuredVersion) {\n // @ts-expect-error valid field\n p.featuredVersion[field] = value\n }\n }\n }\n\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n if (featuredId === entityId && p.featuredVersion) {\n p.featuredVersion.allAttrib = allAttrib\n p.featuredVersion.attrib = parsedAttrib\n }\n }\n }\n\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n if (featuredId === updatedNode.id && p.featuredVersion) {\n p.featuredVersion = updatedNode\n }\n }\n }\n }\n }\n })\n\n // If any products need full refetch (due to deletes or new version becoming featured)\n // we trigger that now\n for (const productId of productsToRefetch) {\n refetchProducts([productId], () => true)\n }\n productsToRefetch.clear()\n },\n })\n const versionToken = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n const productToken = PubSub.subscribe('entity.product', (topic: string, message: any) => {\n if (message?.summary?.entityId) productBatcher.add({ topic, message })\n })\n\n const productsToRefetch = new Set<string>()\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n productBatcher.clear()\n realtimeBatcher.clear()\n PubSub.unsubscribe(productToken)\n PubSub.unsubscribe(versionToken)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n },\n ),\n\n // Grouped versions query - fetches versions for multiple group filters\n getGroupedVersionsList: build.query<GetGroupedVersionsListResult, GetGroupedVersionsListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n groupFilterKey = 'versionFilter',\n versionFilter, // most of the time overridden by group filters\n productFilter,\n taskFilter,\n folderFilter,\n folderIds,\n desc,\n sortBy,\n featuredOnly,\n featuredOnlyEntityType,\n latestPerFolder,\n hasReviewables,\n },\n api,\n ) => {\n try {\n const promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams = {\n projectName,\n // base filters\n productFilter,\n taskFilter,\n folderFilter,\n versionFilter,\n // specific group filter\n [groupFilterKey]: group.filter,\n folderIds: folderIds?.length ? folderIds : undefined,\n sortBy: sortBy,\n featuredOnly,\n featuredOnlyEntityType,\n latestPerFolder,\n hasReviewables,\n group: group.value,\n } as GetVersionsQueryVariables & { group: string }\n\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n queryParams as GetVersionsQueryVariables,\n {\n forceRefetch: true,\n },\n ),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const versions: VersionNode[] = []\n\n for (const res of result) {\n if (res.error) throw res.error\n\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n\n const groupVersions =\n res.data?.versions.map((version, i, a) => ({\n ...version,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined,\n },\n ],\n })) || []\n\n versions.push(...groupVersions)\n }\n\n return {\n data: {\n versions,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedVersionsList queryFn:', error)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(error.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsResult,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations for grouped versions view\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n sortBy: arg.sortBy,\n featuredOnly: arg.featuredOnly,\n featuredOnlyEntityType: arg.featuredOnlyEntityType,\n latestPerFolder: arg.latestPerFolder,\n hasReviewables: arg.hasReviewables,\n }),\n checkVersionInCache: (entityId) => {\n let found = false\n updateCachedData((draft) => {\n found = draft.versions.some((v) => v.id === entityId)\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated }) => {\n updateCachedData((draft) => {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = draft.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) draft.versions.splice(vIndex, 1)\n }\n }\n // Handle patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n const index = draft.versions.findIndex((v) => v.id === updatedNode.id)\n if (index !== -1) {\n // Preserve groups when updating\n const originalGroups = draft.versions[index].groups\n draft.versions[index] = { ...updatedNode, groups: originalGroups }\n }\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n }),\n }),\n})\n\n// export gql endpoints\nexport const {\n useGetVersionsQuery,\n useGetProductsColumnStatsQuery,\n useGetVersionsColumnStatsQuery,\n} = enhancedVersionsPageApi\n// export custom queries\nexport const {\n useGetVersionsInfiniteInfiniteQuery: useGetVersionsInfiniteQuery,\n useGetVersionsByProductsQuery,\n useGetProductsInfiniteInfiniteQuery: useGetProductsInfiniteQuery,\n useGetGroupedVersionsListQuery,\n} = injectedVersionsPageApi\n\n// export API instances for cache manipulation\nexport { enhancedVersionsPageApi, injectedVersionsPageApi }\n"],"names":["CACHE_TIME","findSortedInsertIndex","items","newItem","sortBy","desc","i","newValue","currentValue","updatePagedCache","pages","entityId","updatedItem","itemsKey","page","index","item","insertIndex","updateVersionList","versions","updatedNode","replaceVersionInSameFolder","insertIfMissing","folderId","removed","version","updateVersionPages","enhancedVersionsPageApi","gqlApi","transformVersionsResponse","provideTagsForVersionsResult","transformProductsResponse","provideTagsForProductsResult","res","normalizeFieldStats","error","transformStatsError","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","_e","projectName","VP_INFINITE_QUERY_COUNT","VERSIONS_BY_PRODUCT_ID_QUERY_COUNT","MAX_PAGES_PER_PRODUCT","supportedVersionFields","createVersionUpdateBatcher","dispatch","handlers","batcher","createRealtimeBatcher","updates","isActive","deleted","patched","attribsToFetch","fullFetchIds","createdVersionIds","topic","msg","parentId","field","patch","getSupportedEntityPatch","REALTIME_REST_CALL_LIMIT","waitForRealtimeJitter","result","e","attribPatched","versionIds","edge","node","parseJSONField","message","injectedVersionsPageApi","build","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","cursor","queryParams","fallback","parseGQLErrorMessage","provideTagsForVersionsInfinite","arg","getCacheEntry","updateCachedData","cacheEntryRemoved","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","relevantMessages","m","draft","vIndex","v","realtimeBatcher","cacheVersions","fullUpdated","value","allAttrib","parsedAttrib","token","PubSub","args","forced","productIds","fetchVersionsPage","productId","promises","settledResults","allVersions","errors","settledResult","pageCount","hasNextPage","nextPageResult","found","provideTagsForProductsInfinite","p","refetchProducts","productsById","product","productBatcher","cachedProductIds","id","featuredId","d","productsToRefetch","versionToken","productToken","groups","groupFilterKey","versionFilter","productFilter","taskFilter","folderFilter","featuredOnly","featuredOnlyEntityType","latestPerFolder","hasReviewables","group","count","promise","groupValue","groupVersions","a","originalGroups","useGetVersionsQuery","useGetProductsColumnStatsQuery","useGetVersionsColumnStatsQuery","useGetVersionsInfiniteQuery","useGetVersionsByProductsQuery","useGetProductsInfiniteQuery","useGetGroupedVersionsListQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getVersionsProducts.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProducts.ts"],"sourcesContent":["// QUERIES FOR THE VERSIONS PAGE, FETCHING AND UPDATING DATA\n// Uses a separate graphqlVersionsApi for increased IDE speed\n\n// There are 4 main fetch requests:\n\n// Versions Only:\n// 1. GetVersions - fetches all versions in the project for given filtering and with pagination\n\n// Products and Versions (stacked):\n// 2. GetProducts - fetches all products in the project based on product and version filtering\n// 3. GetVersionsByProducts - when a product is expanded, fetches all versions for the products that are expanded. Uses getVersionsByProductId for each parent id. (uses queryFn)\n// 4. GetVersionsByProductId - get all versions for a specific product. Used by getVersionsByProducts only.\n\n// VersionFragment is used in all version queries to ensure consistent data structure\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n InfiniteData,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport {\n GetProductsQuery,\n GetProductsQueryVariables,\n GetProductsColumnStatsQuery,\n GetVersionsByProductIdQueryVariables,\n GetVersionsColumnStatsQuery,\n GetVersionsQuery,\n GetVersionsQueryVariables,\n gqlApi,\n PageInfo,\n VpFolderFragment,\n} from '@shared/api/generated'\nimport {\n parseGQLErrorMessage,\n provideTagsForProductsInfinite,\n provideTagsForProductsResult,\n provideTagsForVersionsInfinite,\n provideTagsForVersionsResult,\n transformProductsResponse,\n transformVersionsResponse,\n} from './getVersionsProductsUtils'\nimport { parseJSONField } from '../overview'\nimport {\n getSupportedEntityPatch,\n createRealtimeBatcher,\n REALTIME_REST_CALL_LIMIT,\n RealtimeBatchProcessor,\n waitForRealtimeJitter,\n} from '@shared/util'\nimport PubSub from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport type { FieldStats } from '../columnStats'\nimport {\n normalizeFieldStats,\n mergeFieldStats,\n hasNewTargetFields,\n transformStatsError,\n} from '../columnStats'\n\nconst CACHE_TIME = 10 // seconds\n\n// SHARED CACHE UPDATE HELPERS\n// These helpers are used by PubSub handlers to update cached data in real-time\n\n/**\n * Finds the correct insertion index for a new item in a sorted array\n * Used when adding new items to maintain sort order\n */\nfunction findSortedInsertIndex<T>(items: T[], newItem: T, sortBy: keyof T, desc: boolean): number {\n for (let i = 0; i < items.length; i++) {\n const newValue = newItem[sortBy]\n const currentValue = items[i][sortBy]\n const shouldInsert = desc ? newValue > currentValue : newValue < currentValue\n\n if (shouldInsert) {\n return i\n }\n }\n return items.length\n}\n\n/**\n * Updates a paginated cache (draft.pages[].items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add at sorted position\n *\n * @param pages - Array of page objects containing items arrays\n * @param entityId - ID of the entity to update/delete/add\n * @param updatedItem - The updated item, or undefined if deleted\n * @param itemsKey - Key to access items array in each page ('versions' or 'products')\n * @param sortBy - Property to sort by when inserting new items\n * @param desc - Sort direction (true = descending)\n */\nfunction updatePagedCache<T extends { id: string }>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pages: any[],\n entityId: string,\n updatedItem: T | undefined,\n itemsKey: string,\n sortBy: keyof T,\n desc: boolean,\n): void {\n // Search for existing item in all pages\n for (const page of pages) {\n const items = page[itemsKey] as T[]\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n // Update existing item\n items[index] = updatedItem\n } else {\n // Item no longer exists or doesn't match filters - remove it\n items.splice(index, 1)\n }\n return\n }\n }\n\n // Item not found in cache - add at correct sorted position in first page\n if (updatedItem && pages.length > 0) {\n const items = pages[0][itemsKey] as T[]\n const insertIndex = findSortedInsertIndex(items, updatedItem, sortBy, desc)\n items.splice(insertIndex, 0, updatedItem)\n }\n}\n\n/**\n * Updates a flat cache (draft.items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add new\n */\nfunction updateFlatCache<T extends { id: string }>(\n items: T[],\n entityId: string,\n updatedItem: T | undefined,\n): { index: number; action: 'updated' | 'deleted' | 'added' | 'none' } {\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n items[index] = updatedItem\n return { index, action: 'updated' }\n } else {\n items.splice(index, 1)\n return { index, action: 'deleted' }\n }\n } else if (updatedItem) {\n items.push(updatedItem)\n return { index: items.length - 1, action: 'added' }\n }\n\n return { index: -1, action: 'none' }\n}\n\n// Query result types\nexport type FolderAttribNode = VpFolderFragment & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n}\nexport type VersionNodeRAW = GetVersionsQuery['project']['versions']['edges'][0]['node']\nexport type VersionNode = VersionNodeRAW & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n product: VersionNodeRAW['product'] & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n folder: FolderAttribNode // folder with parsed attribs\n }\n groups?: { value?: string; hasNextPage?: string }[] // grouping metadata\n}\nexport type ProductNodeRAW = GetProductsQuery['project']['products']['edges'][0]['node']\nexport type ProductNode = Omit<ProductNodeRAW, 'versions'> & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n featuredVersion?: VersionNode | null // added separately\n folder: FolderAttribNode // folder with parsed attribs\n versions: {\n id: string\n name: string\n version: number\n heroVersionId?: string | null\n }[] // versions with isHero flag\n}\n\nexport type GetVersionsResult = {\n pageInfo?: PageInfo\n versions: VersionNode[]\n errors?: Array<{ productId: string; error: string }>\n}\n\n// for infinite query args\nexport type GetVersionsArgs = Omit<GetVersionsQueryVariables, 'cursor'> & {\n desc?: boolean // sort direction\n}\n\n// for paginated queries in infinite query\ntype VersionsPageParam = {\n cursor: string\n desc?: boolean\n}\n\nexport type GetProductsArgs = Omit<GetProductsQueryVariables, 'cursor' | 'versionIds'> & {\n desc?: boolean // sort direction\n}\n\ntype ProductsPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype GetVersionsByProductsArgs = GetVersionsByProductIdQueryVariables & {\n productIds: string[]\n desc?: boolean\n}\n\nexport type GetGroupedVersionsListArgs = {\n projectName: string\n groups: { filter: string; count?: number | null; value: string }[]\n groupFilterKey?: string\n versionFilter?: string\n productFilter?: string\n taskFilter?: string\n folderFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n featuredOnly?: string[]\n featuredOnlyEntityType?: string\n latestPerFolder?: boolean\n hasReviewables?: boolean\n}\n\nexport type GetGroupedVersionsListResult = {\n versions: VersionNode[]\n}\n\nexport type VersionInfiniteResult = InfiniteData<GetVersionsResult, VersionsPageParam> | undefined\n\nexport type ProductInfiniteResult = InfiniteData<GetProductsResult, ProductsPageParam> | undefined\n\nexport type GetProductsResult = {\n pageInfo: PageInfo\n products: ProductNode[]\n}\n\nfunction updateVersionList(\n versions: VersionNode[],\n updatedNode: VersionNode,\n replaceVersionInSameFolder: boolean,\n sortBy: keyof VersionNode,\n desc: boolean,\n insertIfMissing = true,\n): boolean {\n if (replaceVersionInSameFolder) {\n // A new version can have a different ID from the cached version. Since\n // latestPerFolder allows only one visible version per folder, replace by\n // folder instead of patching by version ID. Existing versions still use\n // the normal ID-based patching path.\n const folderId = updatedNode.product?.folder?.id\n let removed = false\n\n for (let i = versions.length - 1; i >= 0; i--) {\n const version = versions[i]\n if (version.id === updatedNode.id || (folderId && version.product?.folder?.id === folderId)) {\n versions.splice(i, 1)\n removed = true\n }\n }\n if (!insertIfMissing) return removed\n } else {\n // Without latestPerFolder, an update only affects the version with the\n // matching ID; an unseen version can be inserted as a new list item.\n const index = versions.findIndex((version) => version.id === updatedNode.id)\n if (index !== -1) {\n versions[index] = updatedNode\n return true\n }\n if (!insertIfMissing) return false\n }\n\n const insertIndex = findSortedInsertIndex(versions, updatedNode, sortBy, desc)\n versions.splice(insertIndex, 0, updatedNode)\n return true\n}\n\nfunction updateVersionPages(\n pages: { versions: VersionNode[] }[],\n updatedNode: VersionNode,\n replaceVersionInSameFolder: boolean,\n sortBy: keyof VersionNode,\n desc: boolean,\n): void {\n if (!replaceVersionInSameFolder) {\n for (const page of pages) {\n if (updateVersionList(page.versions, updatedNode, false, sortBy, desc, false)) {\n return\n }\n }\n } else {\n // With latestPerFolder, inspect every loaded page so the previous\n // version for this folder is removed wherever pagination placed it.\n for (const page of pages) {\n updateVersionList(page.versions, updatedNode, true, sortBy, desc, false)\n }\n }\n\n if (pages.length > 0) {\n updateVersionList(pages[0].versions, updatedNode, replaceVersionInSameFolder, sortBy, desc)\n }\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetVersions'> & {\n GetVersions: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetVersionsByProductId: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetProducts: OverrideResultType<Definitions['GetProducts'], GetProductsResult>\n GetProductsColumnStats: OverrideResultType<Definitions['GetProductsColumnStats'], FieldStats[]>\n GetVersionsColumnStats: OverrideResultType<Definitions['GetVersionsColumnStats'], FieldStats[]>\n}\n\nconst enhancedVersionsPageApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // used by both stacked and non-stacked views\n GetVersions: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // used by getVersionsByProducts only\n GetVersionsByProductId: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // used by getProductsInfinite only\n GetProducts: {\n transformResponse: transformProductsResponse,\n providesTags: provideTagsForProductsResult,\n keepUnusedDataFor: CACHE_TIME,\n },\n // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetProductsColumnStats: {\n transformResponse: (res: GetProductsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.products?.fieldStats ?? []),\n transformErrorResponse: (error: any) => transformStatsError(error, 'product'),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'productColumnStats', id: projectName }],\n keepUnusedDataFor: CACHE_TIME,\n },\n GetVersionsColumnStats: {\n transformResponse: (res: GetVersionsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.versions?.fieldStats ?? []),\n transformErrorResponse: (error: any) => transformStatsError(error, 'version'),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'versionColumnStats', id: projectName }],\n keepUnusedDataFor: CACHE_TIME,\n },\n },\n})\n\nexport const VP_INFINITE_QUERY_COUNT = 250 // Number of items to fetch per page\nconst VERSIONS_BY_PRODUCT_ID_QUERY_COUNT = 1000 // max number of versions to fetch per product id\nconst MAX_PAGES_PER_PRODUCT = 10 // Hard cutoff to prevent infinite loops\n\nconst supportedVersionFields = ['status', 'tags']\n\n/**\n * Reusable handler for websocket version updates to perform efficient batched cache updates\n */\nfunction createVersionUpdateBatcher(\n projectName: string,\n dispatch: any,\n handlers: {\n checkVersionInCache: (entityId: string, parentId?: string) => boolean\n onBatchUpdate: (changes: {\n deleted?: { entityId: string; parentId?: string }[]\n patched?: { entityId: string; field: string; value: any; parentId?: string }[]\n attribPatched?: { entityId: string; allAttrib: string; parsedAttrib: any }[]\n fullUpdated?: VersionNode[]\n createdVersionIds?: Set<string>\n }) => void\n getBaseFilters?: () => any\n },\n) {\n const batchProcessMessages: RealtimeBatchProcessor<{\n topic: string\n message: any\n }> = async (updates, isActive) => {\n const deleted: { entityId: string; parentId?: string }[] = []\n const patched: { entityId: string; field: string; value: any; parentId?: string }[] = []\n const attribsToFetch = new Set<string>()\n const fullFetchIds = new Set<string>()\n const createdVersionIds = new Set<string>()\n\n for (const { topic, message: msg } of updates) {\n const entityId = msg.summary?.entityId\n const parentId = msg.summary?.parentId\n if (!entityId) continue\n\n if (topic === 'entity.version.deleted') {\n deleted.push({ entityId, parentId })\n } else if (topic === 'entity.version.created') {\n fullFetchIds.add(entityId)\n createdVersionIds.add(entityId)\n } else if (topic.startsWith('entity.version.') && topic.endsWith('_changed')) {\n const versionFound = handlers.checkVersionInCache(entityId, parentId)\n if (!versionFound) continue\n\n const field = topic.split('.')[2].split('_changed')[0]\n\n if (field === 'attrib') {\n attribsToFetch.add(entityId)\n continue\n }\n\n const patch = getSupportedEntityPatch(field, msg.summary, supportedVersionFields)\n if (!patch) {\n fullFetchIds.add(entityId)\n continue\n }\n\n patched.push({ entityId, field: patch.field, value: patch.value, parentId })\n }\n }\n\n if (fullFetchIds.size > 0 && fullFetchIds.size <= REALTIME_REST_CALL_LIMIT && dispatch) {\n try {\n await waitForRealtimeJitter()\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate({\n ...(handlers.getBaseFilters?.() || {}),\n projectName,\n versionIds: Array.from(fullFetchIds),\n }),\n )\n\n if (!isActive()) return\n if (result.data?.versions) {\n handlers.onBatchUpdate({ fullUpdated: result.data.versions, createdVersionIds })\n }\n } catch (e) {\n console.error('Failed to fetch full version data batch', e)\n }\n }\n\n const attribPatched: { entityId: string; allAttrib: string; parsedAttrib: any }[] = []\n if (attribsToFetch.size > 0 && attribsToFetch.size <= REALTIME_REST_CALL_LIMIT && dispatch) {\n try {\n await waitForRealtimeJitter()\n\n const versionIds = Array.from(attribsToFetch)\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsAttribs.initiate(\n { projectName, versionIds },\n { forceRefetch: true },\n ),\n )\n\n if (!isActive()) return\n if (result.data?.project?.versions?.edges) {\n for (const edge of result.data.project.versions.edges) {\n const node = edge.node\n if (node) {\n attribPatched.push({\n entityId: node.id,\n allAttrib: node.allAttrib,\n parsedAttrib: parseJSONField(node.allAttrib),\n })\n }\n }\n }\n } catch (e) {\n console.error('Failed to fetch patched version attribs', e)\n }\n }\n\n if (deleted.length > 0 || patched.length > 0 || attribPatched.length > 0) {\n handlers.onBatchUpdate({ deleted, patched, attribPatched })\n }\n }\n\n const batcher = createRealtimeBatcher(\n batchProcessMessages,\n ({ topic, message }) =>\n `${message.summary?.entityId}:${message.summary?.parentId ?? ''}:${topic}`,\n )\n\n const handleRealtimeUpdate = (topic: string, message: any) => {\n const project = message.project\n if (project !== projectName) return\n\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n batcher.add({ topic, message })\n }\n\n return {\n handle: handleRealtimeUpdate,\n clear() {\n batcher.clear()\n },\n }\n}\n\nconst injectedVersionsPageApi = enhancedVersionsPageApi.injectEndpoints({\n endpoints: (build) => ({\n // enhance GetVersions with an infinite query\n getVersionsInfinite: build.infiniteQuery<GetVersionsResult, GetVersionsArgs, VersionsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetVersions query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetVersions gql query\n const result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n versions: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the versions directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getVersionsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsInfinite,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n onCacheEntryAdded: async (\n arg,\n { getCacheEntry, updateCachedData, cacheEntryRemoved, dispatch },\n ) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n const vIndex = page.versions.findIndex(\n (v) => v.id === message.summary.entityId,\n )\n if (vIndex !== -1) {\n page.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n featuredOnly: arg.featuredOnly,\n featuredOnlyEntityType: arg.featuredOnlyEntityType,\n latestPerFolder: arg.latestPerFolder,\n hasReviewables: arg.hasReviewables,\n sortBy: arg.sortBy,\n }),\n checkVersionInCache: (entityId) => {\n const cacheVersions = getCacheEntry().data\n if (!cacheVersions) return false\n for (const page of cacheVersions.pages || []) {\n if (page.versions.some((v) => v.id === entityId)) return true\n }\n return false\n },\n onBatchUpdate: ({\n deleted,\n patched,\n attribPatched,\n fullUpdated,\n createdVersionIds,\n }) => {\n updateCachedData((draft) => {\n for (const page of draft?.pages || []) {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = page.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) page.versions.splice(vIndex, 1)\n }\n }\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = page.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patched\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = page.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n updateVersionPages(\n draft.pages,\n updatedNode,\n arg.latestPerFolder === true &&\n createdVersionIds?.has(updatedNode.id) === true,\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n }\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n },\n ),\n\n // custom query function that fetches versions by multiple parent ids -not infinite and gets 1000 versions max\n getVersionsByProducts: build.query<GetVersionsResult, GetVersionsByProductsArgs>({\n queryFn: async (args, { dispatch, forced }) => {\n const { productIds = [], desc, ...rest } = args\n\n // Helper function to fetch a page of versions\n const fetchVersionsPage = async (productId: string, cursor?: string) => {\n const queryParams: GetVersionsByProductIdQueryVariables = {\n ...rest,\n productIds: [productId],\n }\n\n if (desc) {\n if (cursor) queryParams.before = cursor\n queryParams.last = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n } else {\n if (cursor) queryParams.after = cursor\n queryParams.first = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n }\n\n return dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsByProductId.initiate(queryParams, {\n forceRefetch: forced,\n }),\n )\n }\n\n // for each product id, call getVersionsByProductId\n const promises = productIds.map((productId) => fetchVersionsPage(productId))\n\n // wait for all requests to settle (either fulfilled or rejected)\n const settledResults = await Promise.allSettled(promises)\n\n // Collect all versions from initial queries\n const allVersions: VersionNode[] = []\n const errors: Array<{ productId: string; error: any }> = []\n\n // Check each result for additional pages and fetch them if needed\n for (let i = 0; i < settledResults.length; i++) {\n const settledResult = settledResults[i]\n const productId = productIds[i]\n\n // Handle rejected promises\n if (settledResult.status === 'rejected') {\n console.error(`Error fetching versions for product ${productId}:`, settledResult.reason)\n errors.push({ productId, error: parseGQLErrorMessage(settledResult.reason) })\n continue\n }\n\n // Handle errors in fulfilled promises\n const result = settledResult.value\n if (result.error) {\n console.error(`Error fetching versions for product ${productId}:`, result.error)\n errors.push({\n productId,\n // @ts-expect-error - message\n error: parseGQLErrorMessage(result.error?.message || 'Unknown error'),\n })\n continue\n }\n\n if (!result.data) continue\n\n // Add initial page versions\n allVersions.push(...result.data.versions)\n\n // Check if there are more pages to fetch\n let pageInfo = result.data.pageInfo\n let pageCount = 1\n\n while (pageInfo && pageCount < MAX_PAGES_PER_PRODUCT) {\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n const cursor = pageInfo.endCursor\n\n if (!hasNextPage || !cursor) break\n\n // Fetch next page\n const nextPageResult = await fetchVersionsPage(productId, cursor)\n\n if (nextPageResult.error) {\n console.error(\n `Error fetching versions page ${pageCount + 1} for product ${productId}:`,\n nextPageResult.error,\n )\n errors.push({ productId, error: nextPageResult.error })\n break\n }\n\n if (!nextPageResult.data) break\n\n allVersions.push(...nextPageResult.data.versions)\n pageInfo = nextPageResult.data.pageInfo\n pageCount++\n }\n }\n\n // If some requests failed but we have data, log warning but return successful data\n if (errors.length > 0) {\n console.warn(\n `Partial success: ${errors.length} of ${productIds.length} products failed to fetch versions`,\n errors,\n )\n }\n\n return {\n data: {\n versions: allVersions,\n pageInfo: undefined, // pageInfo is undefined as we've flattened multiple queries\n errors: errors.length > 0 ? errors : undefined,\n },\n }\n },\n // Subscribes to version entity changes for expanded products\n // Only updates versions that belong to currently expanded products\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n productIds: arg.productIds,\n latestPerFolder: arg.latestPerFolder,\n }),\n checkVersionInCache: (entityId, parentId) => {\n if (!parentId || !arg.productIds.includes(parentId)) return false\n let found = false\n updateCachedData((draft) => {\n found = draft.versions.some((v) => v.id === entityId)\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated, createdVersionIds }) => {\n updateCachedData((draft) => {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = draft.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) draft.versions.splice(vIndex, 1)\n }\n }\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n updateVersionList(\n draft.versions,\n updatedNode,\n arg.latestPerFolder === true && createdVersionIds?.has(updatedNode.id) === true,\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n providesTags: provideTagsForVersionsResult,\n keepUnusedDataFor: CACHE_TIME,\n }),\n\n // enhance GetProducts with an infinite query\n getProductsInfinite: build.infiniteQuery<GetProductsResult, GetProductsArgs, ProductsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n let result\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetProducts query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetProducts gql query\n result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n products: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the products directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getProductsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForProductsInfinite,\n // Subscribes to product entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n // Often triggered together with version changes (new product + version)\n\n onCacheEntryAdded: async (\n arg,\n { updateCachedData, cacheEntryRemoved, dispatch, getCacheEntry },\n ) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n page.products.forEach((p) => {\n if (p.featuredVersion?.id === message.summary.entityId) {\n p.featuredVersion.thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n })\n }\n })\n })\n },\n ['version'],\n )\n\n // Refetch and update products in one request per realtime batch.\n const refetchProducts = async (productIds: string[], isActive: () => boolean) => {\n const queryParams: any = {\n projectName: arg.projectName,\n productIds,\n productFilter: arg.productFilter,\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n first: productIds.length,\n }\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error || !isActive()) return\n\n updateCachedData((draft) => {\n const productsById = new Map(\n (result.data?.products || []).map((product: ProductNode) => [product.id, product]),\n )\n productIds.forEach((productId) => {\n updatePagedCache(\n draft.pages,\n productId,\n productsById.get(productId),\n 'products',\n (arg.sortBy || 'createdAt') as keyof ProductNode,\n arg.desc || false,\n )\n })\n })\n }\n\n const productBatcher = createRealtimeBatcher(\n async (messages: { topic: string; message: any }[], isActive) => {\n const cachedProductIds = new Set(\n getCacheEntry().data?.pages.flatMap((page) =>\n page.products.map((product) => product.id),\n ) || [],\n )\n const productIds = messages\n .map(({ topic, message }) => ({\n topic,\n id: message.summary?.entityId,\n }))\n .filter(\n ({ topic, id }) =>\n id && (cachedProductIds.has(id) || topic === 'entity.product.created'),\n )\n .map(({ id }) => id as string)\n\n if (productIds.length) {\n await refetchProducts([...new Set(productIds)], isActive)\n }\n },\n ({ message }) => message.summary?.entityId || message.id,\n )\n\n // Subscribe to version entity changes - refetch parent product when version changes\n // This ensures product's versions list and featuredVersion stay up-to-date\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n }),\n checkVersionInCache: (entityId, parentId) => {\n let found = false\n updateCachedData((draft) => {\n found = draft.pages.some((page) =>\n page.products.some(\n (p) => p.id === parentId && p.featuredVersion?.id === entityId,\n ),\n )\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated }) => {\n updateCachedData((draft) => {\n for (const page of draft?.pages || []) {\n for (const p of page.products) {\n const featuredId = p.featuredVersion?.id\n if (!featuredId) continue\n\n // Handle deletes\n if (deleted) {\n if (deleted.some((d) => d.entityId === featuredId && d.parentId === p.id)) {\n // Version deleted, need to refetch product to update featuredVersion\n // Using a set to track which products need refetch to avoid multiple calls\n productsToRefetch.add(p.id)\n }\n }\n\n // Handle simple patches\n if (patched) {\n for (const { entityId, field, value, parentId } of patched) {\n if (p.id === parentId && featuredId === entityId && p.featuredVersion) {\n // @ts-expect-error valid field\n p.featuredVersion[field] = value\n }\n }\n }\n\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n if (featuredId === entityId && p.featuredVersion) {\n p.featuredVersion.allAttrib = allAttrib\n p.featuredVersion.attrib = parsedAttrib\n }\n }\n }\n\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n if (featuredId === updatedNode.id && p.featuredVersion) {\n p.featuredVersion = updatedNode\n }\n }\n }\n }\n }\n })\n\n // If any products need full refetch (due to deletes or new version becoming featured)\n // we trigger that now\n for (const productId of productsToRefetch) {\n refetchProducts([productId], () => true)\n }\n productsToRefetch.clear()\n },\n })\n const versionToken = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n const productToken = PubSub.subscribe('entity.product', (topic: string, message: any) => {\n if (message?.summary?.entityId) productBatcher.add({ topic, message })\n })\n\n const productsToRefetch = new Set<string>()\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n productBatcher.clear()\n realtimeBatcher.clear()\n PubSub.unsubscribe(productToken)\n PubSub.unsubscribe(versionToken)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n },\n ),\n\n // Grouped versions query - fetches versions for multiple group filters\n getGroupedVersionsList: build.query<GetGroupedVersionsListResult, GetGroupedVersionsListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n groupFilterKey = 'versionFilter',\n versionFilter, // most of the time overridden by group filters\n productFilter,\n taskFilter,\n folderFilter,\n folderIds,\n desc,\n sortBy,\n featuredOnly,\n featuredOnlyEntityType,\n latestPerFolder,\n hasReviewables,\n },\n api,\n ) => {\n try {\n const promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams = {\n projectName,\n // base filters\n productFilter,\n taskFilter,\n folderFilter,\n versionFilter,\n // specific group filter\n [groupFilterKey]: group.filter,\n folderIds: folderIds?.length ? folderIds : undefined,\n sortBy: sortBy,\n featuredOnly,\n featuredOnlyEntityType,\n latestPerFolder,\n hasReviewables,\n group: group.value,\n } as GetVersionsQueryVariables & { group: string }\n\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n queryParams as GetVersionsQueryVariables,\n {\n forceRefetch: true,\n },\n ),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const versions: VersionNode[] = []\n\n for (const res of result) {\n if (res.error) throw res.error\n\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n\n const groupVersions =\n res.data?.versions.map((version, i, a) => ({\n ...version,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined,\n },\n ],\n })) || []\n\n versions.push(...groupVersions)\n }\n\n return {\n data: {\n versions,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedVersionsList queryFn:', error)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(error.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsResult,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations for grouped versions view\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const realtimeBatcher = createVersionUpdateBatcher(arg.projectName, dispatch, {\n getBaseFilters: () => ({\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderFilter: arg.folderFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n sortBy: arg.sortBy,\n featuredOnly: arg.featuredOnly,\n featuredOnlyEntityType: arg.featuredOnlyEntityType,\n latestPerFolder: arg.latestPerFolder,\n hasReviewables: arg.hasReviewables,\n }),\n checkVersionInCache: (entityId) => {\n let found = false\n updateCachedData((draft) => {\n found = draft.versions.some((v) => v.id === entityId)\n })\n return found\n },\n onBatchUpdate: ({ deleted, patched, attribPatched, fullUpdated }) => {\n updateCachedData((draft) => {\n // Handle deletes\n if (deleted) {\n for (const { entityId } of deleted) {\n const vIndex = draft.versions.findIndex((v) => v.id === entityId)\n if (vIndex !== -1) draft.versions.splice(vIndex, 1)\n }\n }\n // Handle patches\n if (patched) {\n for (const { entityId, field, value } of patched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n // @ts-expect-error valid field\n version[field] = value\n }\n }\n }\n // Handle attrib patches\n if (attribPatched) {\n for (const { entityId, allAttrib, parsedAttrib } of attribPatched) {\n const version = draft.versions.find((v) => v.id === entityId)\n if (version) {\n version.allAttrib = allAttrib\n version.attrib = parsedAttrib\n }\n }\n }\n // Handle full updates\n if (fullUpdated) {\n for (const updatedNode of fullUpdated) {\n const index = draft.versions.findIndex((v) => v.id === updatedNode.id)\n if (index !== -1) {\n // Preserve groups when updating\n const originalGroups = draft.versions[index].groups\n draft.versions[index] = { ...updatedNode, groups: originalGroups }\n }\n }\n }\n })\n },\n })\n const token = PubSub.subscribe('entity.version', realtimeBatcher.handle)\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n realtimeBatcher.clear()\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n keepUnusedDataFor: CACHE_TIME,\n }),\n }),\n})\n\n// export gql endpoints\nexport const {\n useGetVersionsQuery,\n useGetProductsColumnStatsQuery,\n useGetVersionsColumnStatsQuery,\n} = enhancedVersionsPageApi\n// export custom queries\nexport const {\n useGetVersionsInfiniteInfiniteQuery: useGetVersionsInfiniteQuery,\n useGetVersionsByProductsQuery,\n useGetProductsInfiniteInfiniteQuery: useGetProductsInfiniteQuery,\n useGetGroupedVersionsListQuery,\n} = injectedVersionsPageApi\n\n// export API instances for cache manipulation\nexport { enhancedVersionsPageApi, injectedVersionsPageApi }\n"],"names":["CACHE_TIME","findSortedInsertIndex","items","newItem","sortBy","desc","i","newValue","currentValue","updatePagedCache","pages","entityId","updatedItem","itemsKey","page","index","item","insertIndex","updateVersionList","versions","updatedNode","replaceVersionInSameFolder","insertIfMissing","folderId","removed","version","updateVersionPages","enhancedVersionsPageApi","gqlApi","transformVersionsResponse","provideTagsForVersionsResult","transformProductsResponse","provideTagsForProductsResult","res","normalizeFieldStats","error","transformStatsError","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","_e","projectName","VP_INFINITE_QUERY_COUNT","VERSIONS_BY_PRODUCT_ID_QUERY_COUNT","MAX_PAGES_PER_PRODUCT","supportedVersionFields","createVersionUpdateBatcher","dispatch","handlers","batcher","createRealtimeBatcher","updates","isActive","deleted","patched","attribsToFetch","fullFetchIds","createdVersionIds","topic","msg","parentId","field","patch","getSupportedEntityPatch","REALTIME_REST_CALL_LIMIT","waitForRealtimeJitter","result","e","attribPatched","versionIds","edge","node","parseJSONField","message","injectedVersionsPageApi","build","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","cursor","queryParams","fallback","parseGQLErrorMessage","provideTagsForVersionsInfinite","arg","getCacheEntry","updateCachedData","cacheEntryRemoved","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","relevantMessages","m","draft","vIndex","v","realtimeBatcher","cacheVersions","fullUpdated","value","allAttrib","parsedAttrib","token","PubSub","args","forced","productIds","fetchVersionsPage","productId","promises","settledResults","allVersions","errors","settledResult","pageCount","hasNextPage","nextPageResult","found","provideTagsForProductsInfinite","p","refetchProducts","productsById","product","productBatcher","cachedProductIds","id","featuredId","d","productsToRefetch","versionToken","productToken","groups","groupFilterKey","versionFilter","productFilter","taskFilter","folderFilter","featuredOnly","featuredOnlyEntityType","latestPerFolder","hasReviewables","group","count","promise","groupValue","groupVersions","a","originalGroups","useGetVersionsQuery","useGetProductsColumnStatsQuery","useGetVersionsColumnStatsQuery","useGetVersionsInfiniteQuery","useGetVersionsByProductsQuery","useGetProductsInfiniteQuery","useGetGroupedVersionsListQuery"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getVersionsProductsUtils.cjs.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseJSONField } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseJSONField(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseJSONField(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseJSONField(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseJSONField(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseJSONField(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseJSONField","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
1
+ {"version":3,"file":"getVersionsProductsUtils.cjs.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import type { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseJSONField } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseJSONField(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseJSONField(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseJSONField(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseJSONField(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseJSONField(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseJSONField","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getVersionsProductsUtils.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseJSONField } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseJSONField(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseJSONField(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseJSONField(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseJSONField(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseJSONField(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseJSONField","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
1
+ {"version":3,"file":"getVersionsProductsUtils.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import type { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseJSONField } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseJSONField(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseJSONField(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseJSONField(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseJSONField(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseJSONField(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseJSONField","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateVersions.cjs.js","sources":["../../../../../../src/api/queries/versions/updateVersions.ts"],"sourcesContent":["import { GetLatestProductVersionQuery, gqlApi, versionsApi } from '@shared/api/generated'\n\nexport type GetLatestVersionResult =\n GetLatestProductVersionQuery['project']['versions']['edges'][0]['node']\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLatestProductVersion'> & {\n GetLatestProductVersion: OverrideResultType<\n Definitions['GetLatestProductVersion'],\n GetLatestVersionResult\n >\n}\n\n// get versions for a specific product\nconst enhancedGqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLatestProductVersion: {\n transformResponse: (response: GetLatestProductVersionQuery) =>\n response.project.versions.edges[0]?.node,\n providesTags: (result, _e, { productId }) =>\n result\n ? [\n { type: 'version', id: result.id },\n { type: 'product', id: result.productId },\n ]\n : [{ type: 'product', id: productId }],\n },\n },\n})\n\nexport const { useGetLatestProductVersionQuery } = enhancedGqlApi\n\n// create a new version for a specific product\nconst uploadVersions = versionsApi.enhanceEndpoints({\n endpoints: {\n getVersion: {},\n createVersion: {\n invalidatesTags: (_r, _e, { versionPostModel }) => [\n { type: 'product', id: versionPostModel.productId },\n { type: 'entities', id: 'VERSION' }, // invalidate all version entity panels\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n deleteVersion: {\n invalidatesTags: (_r, _e, { versionId }) => [\n { type: 'version', id: versionId },\n { type: 'product', id: versionId },\n { type: 'entities', id: 'LIST' }, // invalidate all entity panels\n ],\n },\n },\n})\n\nexport const { useGetVersionQuery, useCreateVersionMutation, useDeleteVersionMutation } = uploadVersions\nexport { uploadVersions as versionsQueries }\n"],"names":["enhancedGqlApi","gqlApi","response","result","_e","productId","useGetLatestProductVersionQuery","uploadVersions","versionsApi","_r","versionPostModel","error","versionId","useGetVersionQuery","useCreateVersionMutation","useDeleteVersionMutation"],"mappings":"4xDAiBA,MAAMA,EAAiBC,EAAAA,IAAO,iBAA+C,CAC3E,UAAW,CACT,wBAAyB,CACvB,kBAAoBC,GAClBA,EAAS,QAAQ,SAAS,MAAM,CAAC,GAAG,KACtC,aAAc,CAACC,EAAQC,EAAI,CAAE,UAAAC,CAAA,IAC3BF,EACI,CACE,CAAE,KAAM,UAAW,GAAIA,EAAO,EAAA,EAC9B,CAAE,KAAM,UAAW,GAAIA,EAAO,SAAA,CAAU,EAE1C,CAAC,CAAE,KAAM,UAAW,GAAIE,EAAW,CAAA,CAC3C,CAEJ,CAAC,EAEY,CAAE,gCAAAC,GAAoCN,EAG7CO,EAAiBC,EAAAA,IAAY,iBAAiB,CAClD,UAAW,CACT,WAAY,CAAA,EACZ,cAAe,CACb,gBAAiB,CAACC,EAAIL,EAAI,CAAE,iBAAAM,KAAuB,CACjD,CAAE,KAAM,UAAW,GAAIA,EAAiB,SAAA,EACxC,CAAE,KAAM,WAAY,GAAI,SAAA,CAAU,EAEpC,uBAAyBC,IAAgB,CAAE,QAASA,EAAM,MAAM,MAAA,EAAO,EAEzE,cAAe,CACb,gBAAiB,CAACF,EAAIL,EAAI,CAAE,UAAAQ,KAAgB,CAC1C,CAAE,KAAM,UAAW,GAAIA,CAAA,EACvB,CAAE,KAAM,UAAW,GAAIA,CAAA,EACvB,CAAE,KAAM,WAAY,GAAI,MAAA,CAAO,CACjC,CACF,CAEJ,CAAC,EAEY,CAAE,mBAAAC,EAAoB,yBAAAC,EAA0B,yBAAAC,GAA6BR"}
1
+ {"version":3,"file":"updateVersions.cjs.js","sources":["../../../../../../src/api/queries/versions/updateVersions.ts"],"sourcesContent":["import { gqlApi, versionsApi } from '@shared/api/generated'\nimport type { GetLatestProductVersionQuery } from '@shared/api/generated'\n\nexport type GetLatestVersionResult =\n GetLatestProductVersionQuery['project']['versions']['edges'][0]['node']\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLatestProductVersion'> & {\n GetLatestProductVersion: OverrideResultType<\n Definitions['GetLatestProductVersion'],\n GetLatestVersionResult\n >\n}\n\n// get versions for a specific product\nconst enhancedGqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLatestProductVersion: {\n transformResponse: (response: GetLatestProductVersionQuery) =>\n response.project.versions.edges[0]?.node,\n providesTags: (result, _e, { productId }) =>\n result\n ? [\n { type: 'version', id: result.id },\n { type: 'product', id: result.productId },\n ]\n : [{ type: 'product', id: productId }],\n },\n },\n})\n\nexport const { useGetLatestProductVersionQuery } = enhancedGqlApi\n\n// create a new version for a specific product\nconst uploadVersions = versionsApi.enhanceEndpoints({\n endpoints: {\n getVersion: {},\n createVersion: {\n invalidatesTags: (_r, _e, { versionPostModel }) => [\n { type: 'product', id: versionPostModel.productId },\n { type: 'entities', id: 'VERSION' }, // invalidate all version entity panels\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n deleteVersion: {\n invalidatesTags: (_r, _e, { versionId }) => [\n { type: 'version', id: versionId },\n { type: 'product', id: versionId },\n { type: 'entities', id: 'LIST' }, // invalidate all entity panels\n ],\n },\n },\n})\n\nexport const { useGetVersionQuery, useCreateVersionMutation, useDeleteVersionMutation } =\n uploadVersions\nexport { uploadVersions as versionsQueries }\n"],"names":["enhancedGqlApi","gqlApi","response","result","_e","productId","useGetLatestProductVersionQuery","uploadVersions","versionsApi","_r","versionPostModel","error","versionId","useGetVersionQuery","useCreateVersionMutation","useDeleteVersionMutation"],"mappings":"4xDAkBA,MAAMA,EAAiBC,EAAAA,IAAO,iBAA+C,CAC3E,UAAW,CACT,wBAAyB,CACvB,kBAAoBC,GAClBA,EAAS,QAAQ,SAAS,MAAM,CAAC,GAAG,KACtC,aAAc,CAACC,EAAQC,EAAI,CAAE,UAAAC,CAAA,IAC3BF,EACI,CACE,CAAE,KAAM,UAAW,GAAIA,EAAO,EAAA,EAC9B,CAAE,KAAM,UAAW,GAAIA,EAAO,SAAA,CAAU,EAE1C,CAAC,CAAE,KAAM,UAAW,GAAIE,EAAW,CAAA,CAC3C,CAEJ,CAAC,EAEY,CAAE,gCAAAC,GAAoCN,EAG7CO,EAAiBC,EAAAA,IAAY,iBAAiB,CAClD,UAAW,CACT,WAAY,CAAA,EACZ,cAAe,CACb,gBAAiB,CAACC,EAAIL,EAAI,CAAE,iBAAAM,KAAuB,CACjD,CAAE,KAAM,UAAW,GAAIA,EAAiB,SAAA,EACxC,CAAE,KAAM,WAAY,GAAI,SAAA,CAAU,EAEpC,uBAAyBC,IAAgB,CAAE,QAASA,EAAM,MAAM,MAAA,EAAO,EAEzE,cAAe,CACb,gBAAiB,CAACF,EAAIL,EAAI,CAAE,UAAAQ,KAAgB,CAC1C,CAAE,KAAM,UAAW,GAAIA,CAAA,EACvB,CAAE,KAAM,UAAW,GAAIA,CAAA,EACvB,CAAE,KAAM,WAAY,GAAI,MAAA,CAAO,CACjC,CACF,CAEJ,CAAC,EAEY,CAAE,mBAAAC,EAAoB,yBAAAC,EAA0B,yBAAAC,GAC3DR"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateVersions.es.js","sources":["../../../../../../src/api/queries/versions/updateVersions.ts"],"sourcesContent":["import { GetLatestProductVersionQuery, gqlApi, versionsApi } from '@shared/api/generated'\n\nexport type GetLatestVersionResult =\n GetLatestProductVersionQuery['project']['versions']['edges'][0]['node']\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLatestProductVersion'> & {\n GetLatestProductVersion: OverrideResultType<\n Definitions['GetLatestProductVersion'],\n GetLatestVersionResult\n >\n}\n\n// get versions for a specific product\nconst enhancedGqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLatestProductVersion: {\n transformResponse: (response: GetLatestProductVersionQuery) =>\n response.project.versions.edges[0]?.node,\n providesTags: (result, _e, { productId }) =>\n result\n ? [\n { type: 'version', id: result.id },\n { type: 'product', id: result.productId },\n ]\n : [{ type: 'product', id: productId }],\n },\n },\n})\n\nexport const { useGetLatestProductVersionQuery } = enhancedGqlApi\n\n// create a new version for a specific product\nconst uploadVersions = versionsApi.enhanceEndpoints({\n endpoints: {\n getVersion: {},\n createVersion: {\n invalidatesTags: (_r, _e, { versionPostModel }) => [\n { type: 'product', id: versionPostModel.productId },\n { type: 'entities', id: 'VERSION' }, // invalidate all version entity panels\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n deleteVersion: {\n invalidatesTags: (_r, _e, { versionId }) => [\n { type: 'version', id: versionId },\n { type: 'product', id: versionId },\n { type: 'entities', id: 'LIST' }, // invalidate all entity panels\n ],\n },\n },\n})\n\nexport const { useGetVersionQuery, useCreateVersionMutation, useDeleteVersionMutation } = uploadVersions\nexport { uploadVersions as versionsQueries }\n"],"names":["enhancedGqlApi","gqlApi","response","result","_e","productId","useGetLatestProductVersionQuery","uploadVersions","versionsApi","_r","versionPostModel","error","versionId","useGetVersionQuery","useCreateVersionMutation","useDeleteVersionMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAMA,IAAiBC,EAAO,iBAA+C;AAAA,EAC3E,WAAW;AAAA,IACT,yBAAyB;AAAA,MACvB,mBAAmB,CAACC,MAClBA,EAAS,QAAQ,SAAS,MAAM,CAAC,GAAG;AAAA,MACtC,cAAc,CAACC,GAAQC,GAAI,EAAE,WAAAC,EAAA,MAC3BF,IACI;AAAA,QACE,EAAE,MAAM,WAAW,IAAIA,EAAO,GAAA;AAAA,QAC9B,EAAE,MAAM,WAAW,IAAIA,EAAO,UAAA;AAAA,MAAU,IAE1C,CAAC,EAAE,MAAM,WAAW,IAAIE,GAAW;AAAA,IAAA;AAAA,EAC3C;AAEJ,CAAC,GAEY,EAAE,iCAAAC,MAAoCN,GAG7CO,IAAiBC,EAAY,iBAAiB;AAAA,EAClD,WAAW;AAAA,IACT,YAAY,CAAA;AAAA,IACZ,eAAe;AAAA,MACb,iBAAiB,CAACC,GAAIL,GAAI,EAAE,kBAAAM,QAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAIA,EAAiB,UAAA;AAAA,QACxC,EAAE,MAAM,YAAY,IAAI,UAAA;AAAA;AAAA,MAAU;AAAA,MAEpC,wBAAwB,CAACC,OAAgB,EAAE,SAASA,EAAM,MAAM,OAAA;AAAA,IAAO;AAAA,IAEzE,eAAe;AAAA,MACb,iBAAiB,CAACF,GAAIL,GAAI,EAAE,WAAAQ,QAAgB;AAAA,QAC1C,EAAE,MAAM,WAAW,IAAIA,EAAA;AAAA,QACvB,EAAE,MAAM,WAAW,IAAIA,EAAA;AAAA,QACvB,EAAE,MAAM,YAAY,IAAI,OAAA;AAAA;AAAA,MAAO;AAAA,IACjC;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,oBAAAC,GAAoB,0BAAAC,GAA0B,0BAAAC,MAA6BR;"}
1
+ {"version":3,"file":"updateVersions.es.js","sources":["../../../../../../src/api/queries/versions/updateVersions.ts"],"sourcesContent":["import { gqlApi, versionsApi } from '@shared/api/generated'\nimport type { GetLatestProductVersionQuery } from '@shared/api/generated'\n\nexport type GetLatestVersionResult =\n GetLatestProductVersionQuery['project']['versions']['edges'][0]['node']\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLatestProductVersion'> & {\n GetLatestProductVersion: OverrideResultType<\n Definitions['GetLatestProductVersion'],\n GetLatestVersionResult\n >\n}\n\n// get versions for a specific product\nconst enhancedGqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLatestProductVersion: {\n transformResponse: (response: GetLatestProductVersionQuery) =>\n response.project.versions.edges[0]?.node,\n providesTags: (result, _e, { productId }) =>\n result\n ? [\n { type: 'version', id: result.id },\n { type: 'product', id: result.productId },\n ]\n : [{ type: 'product', id: productId }],\n },\n },\n})\n\nexport const { useGetLatestProductVersionQuery } = enhancedGqlApi\n\n// create a new version for a specific product\nconst uploadVersions = versionsApi.enhanceEndpoints({\n endpoints: {\n getVersion: {},\n createVersion: {\n invalidatesTags: (_r, _e, { versionPostModel }) => [\n { type: 'product', id: versionPostModel.productId },\n { type: 'entities', id: 'VERSION' }, // invalidate all version entity panels\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n deleteVersion: {\n invalidatesTags: (_r, _e, { versionId }) => [\n { type: 'version', id: versionId },\n { type: 'product', id: versionId },\n { type: 'entities', id: 'LIST' }, // invalidate all entity panels\n ],\n },\n },\n})\n\nexport const { useGetVersionQuery, useCreateVersionMutation, useDeleteVersionMutation } =\n uploadVersions\nexport { uploadVersions as versionsQueries }\n"],"names":["enhancedGqlApi","gqlApi","response","result","_e","productId","useGetLatestProductVersionQuery","uploadVersions","versionsApi","_r","versionPostModel","error","versionId","useGetVersionQuery","useCreateVersionMutation","useDeleteVersionMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAMA,IAAiBC,EAAO,iBAA+C;AAAA,EAC3E,WAAW;AAAA,IACT,yBAAyB;AAAA,MACvB,mBAAmB,CAACC,MAClBA,EAAS,QAAQ,SAAS,MAAM,CAAC,GAAG;AAAA,MACtC,cAAc,CAACC,GAAQC,GAAI,EAAE,WAAAC,EAAA,MAC3BF,IACI;AAAA,QACE,EAAE,MAAM,WAAW,IAAIA,EAAO,GAAA;AAAA,QAC9B,EAAE,MAAM,WAAW,IAAIA,EAAO,UAAA;AAAA,MAAU,IAE1C,CAAC,EAAE,MAAM,WAAW,IAAIE,GAAW;AAAA,IAAA;AAAA,EAC3C;AAEJ,CAAC,GAEY,EAAE,iCAAAC,MAAoCN,GAG7CO,IAAiBC,EAAY,iBAAiB;AAAA,EAClD,WAAW;AAAA,IACT,YAAY,CAAA;AAAA,IACZ,eAAe;AAAA,MACb,iBAAiB,CAACC,GAAIL,GAAI,EAAE,kBAAAM,QAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAIA,EAAiB,UAAA;AAAA,QACxC,EAAE,MAAM,YAAY,IAAI,UAAA;AAAA;AAAA,MAAU;AAAA,MAEpC,wBAAwB,CAACC,OAAgB,EAAE,SAASA,EAAM,MAAM,OAAA;AAAA,IAAO;AAAA,IAEzE,eAAe;AAAA,MACb,iBAAiB,CAACF,GAAIL,GAAI,EAAE,WAAAQ,QAAgB;AAAA,QAC1C,EAAE,MAAM,WAAW,IAAIA,EAAA;AAAA,QACvB,EAAE,MAAM,WAAW,IAAIA,EAAA;AAAA,QACvB,EAAE,MAAM,YAAY,IAAI,OAAA;AAAA;AAAA,MAAO;AAAA,IACjC;AAAA,EACF;AAEJ,CAAC,GAEY,EAAE,oBAAAC,GAAoB,0BAAAC,GAA0B,0BAAAC,MAC3DR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getViews.cjs.js","sources":["../../../../../../src/api/queries/views/getViews.ts"],"sourcesContent":["import { ListViewsApiResponse, viewsApi } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\n\nexport const getScopeTag = (viewType: string, projectName?: string) => {\n return {\n type: 'view',\n id: `${viewType.toUpperCase()}${projectName ? `:${projectName.toUpperCase()}` : ''}`,\n }\n}\n\nconst VIEW_LIST_TAG = { type: 'view', id: 'LIST' }\n\ntype GetViewListResult = ListViewsApiResponse['views']\n\ntype Definitions = DefinitionsFromApi<typeof viewsApi>\ntype TagTypes = TagTypesFromApi<typeof viewsApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'listViews'> & {\n listViews: OverrideResultType<Definitions['listViews'], GetViewListResult>\n}\n\nexport const getViewsApi = viewsApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n listViews: {\n transformResponse: (response: ListViewsApiResponse) => response?.views || [],\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [\n VIEW_LIST_TAG,\n getScopeTag(viewType, projectName),\n ...result\n .filter((v) => v.id != null)\n .map((v) => ({ type: 'view' as const, id: v.id })),\n ]\n : [VIEW_LIST_TAG],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getWorkingView: {\n providesTags: (result, _e, { viewType, projectName }) => [\n { type: 'view', id: result?.id },\n getScopeTag(viewType, projectName),\n VIEW_LIST_TAG,\n ],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getView: {\n providesTags: (result, error, arg) => [{ type: 'view', id: arg.viewId }, VIEW_LIST_TAG],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getDefaultView: {\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [{ type: 'view', id: result.id }, getScopeTag(viewType, projectName)]\n : [getScopeTag(viewType, projectName)],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getBaseView: {\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [{ type: 'view', id: result.id }, getScopeTag(viewType, projectName)]\n : [getScopeTag(viewType, projectName)],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n },\n})\n\nexport const {\n useListViewsQuery,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useGetDefaultViewQuery,\n useGetBaseViewQuery,\n} = getViewsApi\n"],"names":["getScopeTag","viewType","projectName","VIEW_LIST_TAG","getViewsApi","viewsApi","response","result","_e","v","error","arg","useListViewsQuery","useGetWorkingViewQuery","useGetViewQuery","useGetDefaultViewQuery","useGetBaseViewQuery"],"mappings":"oxDAGaA,EAAc,CAACC,EAAkBC,KACrC,CACL,KAAM,OACN,GAAI,GAAGD,EAAS,YAAA,CAAa,GAAGC,EAAc,IAAIA,EAAY,aAAa,GAAK,EAAE,EAAA,GAIhFC,EAAgB,CAAE,KAAM,OAAQ,GAAI,MAAA,EAW7BC,EAAcC,EAAAA,IAAS,iBAA+C,CACjF,UAAW,CACT,UAAW,CACT,kBAAoBC,GAAmCA,GAAU,OAAS,CAAA,EAC1E,aAAc,CAACC,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CACEJ,EACAH,EAAYC,EAAUC,CAAW,EACjC,GAAGK,EACA,OAAQE,GAAMA,EAAE,IAAM,IAAI,EAC1B,IAAKA,IAAO,CAAE,KAAM,OAAiB,GAAIA,EAAE,IAAK,CAAA,EAErD,CAACN,CAAa,EACpB,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,eAAgB,CACd,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,KAAkB,CACvD,CAAE,KAAM,OAAQ,GAAIK,GAAQ,EAAA,EAC5BP,EAAYC,EAAUC,CAAW,EACjCC,CAAA,EAEF,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,QAAS,CACP,aAAc,CAACH,EAAQG,EAAOC,IAAQ,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAI,MAAA,EAAUR,CAAa,EACtF,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,eAAgB,CACd,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAO,EAAA,EAAMP,EAAYC,EAAUC,CAAW,CAAC,EACpE,CAACF,EAAYC,EAAUC,CAAW,CAAC,EACzC,uBAAyBQ,GAAeA,EAAM,MAAM,MAAA,EAEtD,YAAa,CACX,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAO,EAAA,EAAMP,EAAYC,EAAUC,CAAW,CAAC,EACpE,CAACF,EAAYC,EAAUC,CAAW,CAAC,EACzC,uBAAyBQ,GAAeA,EAAM,MAAM,MAAA,CACtD,CAEJ,CAAC,EAEY,CACX,kBAAAE,EACA,uBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,oBAAAC,CACF,EAAIZ"}
1
+ {"version":3,"file":"getViews.cjs.js","sources":["../../../../../../src/api/queries/views/getViews.ts"],"sourcesContent":["import { viewsApi } from '@shared/api/generated'\nimport type { ListViewsApiResponse } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\n\nexport const getScopeTag = (viewType: string, projectName?: string) => {\n return {\n type: 'view',\n id: `${viewType.toUpperCase()}${projectName ? `:${projectName.toUpperCase()}` : ''}`,\n }\n}\n\nconst VIEW_LIST_TAG = { type: 'view', id: 'LIST' }\n\ntype GetViewListResult = ListViewsApiResponse['views']\n\ntype Definitions = DefinitionsFromApi<typeof viewsApi>\ntype TagTypes = TagTypesFromApi<typeof viewsApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'listViews'> & {\n listViews: OverrideResultType<Definitions['listViews'], GetViewListResult>\n}\n\nexport const getViewsApi = viewsApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n listViews: {\n transformResponse: (response: ListViewsApiResponse) => response?.views || [],\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [\n VIEW_LIST_TAG,\n getScopeTag(viewType, projectName),\n ...result\n .filter((v) => v.id != null)\n .map((v) => ({ type: 'view' as const, id: v.id })),\n ]\n : [VIEW_LIST_TAG],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getWorkingView: {\n providesTags: (result, _e, { viewType, projectName }) => [\n { type: 'view', id: result?.id },\n getScopeTag(viewType, projectName),\n VIEW_LIST_TAG,\n ],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getView: {\n providesTags: (result, error, arg) => [{ type: 'view', id: arg.viewId }, VIEW_LIST_TAG],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getDefaultView: {\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [{ type: 'view', id: result.id }, getScopeTag(viewType, projectName)]\n : [getScopeTag(viewType, projectName)],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n getBaseView: {\n providesTags: (result, _e, { viewType, projectName }) =>\n result\n ? [{ type: 'view', id: result.id }, getScopeTag(viewType, projectName)]\n : [getScopeTag(viewType, projectName)],\n transformErrorResponse: (error: any) => error.data?.detail,\n },\n },\n})\n\nexport const {\n useListViewsQuery,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useGetDefaultViewQuery,\n useGetBaseViewQuery,\n} = getViewsApi\n"],"names":["getScopeTag","viewType","projectName","VIEW_LIST_TAG","getViewsApi","viewsApi","response","result","_e","v","error","arg","useListViewsQuery","useGetWorkingViewQuery","useGetViewQuery","useGetDefaultViewQuery","useGetBaseViewQuery"],"mappings":"oxDAIaA,EAAc,CAACC,EAAkBC,KACrC,CACL,KAAM,OACN,GAAI,GAAGD,EAAS,YAAA,CAAa,GAAGC,EAAc,IAAIA,EAAY,aAAa,GAAK,EAAE,EAAA,GAIhFC,EAAgB,CAAE,KAAM,OAAQ,GAAI,MAAA,EAW7BC,EAAcC,EAAAA,IAAS,iBAA+C,CACjF,UAAW,CACT,UAAW,CACT,kBAAoBC,GAAmCA,GAAU,OAAS,CAAA,EAC1E,aAAc,CAACC,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CACEJ,EACAH,EAAYC,EAAUC,CAAW,EACjC,GAAGK,EACA,OAAQE,GAAMA,EAAE,IAAM,IAAI,EAC1B,IAAKA,IAAO,CAAE,KAAM,OAAiB,GAAIA,EAAE,IAAK,CAAA,EAErD,CAACN,CAAa,EACpB,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,eAAgB,CACd,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,KAAkB,CACvD,CAAE,KAAM,OAAQ,GAAIK,GAAQ,EAAA,EAC5BP,EAAYC,EAAUC,CAAW,EACjCC,CAAA,EAEF,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,QAAS,CACP,aAAc,CAACH,EAAQG,EAAOC,IAAQ,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAI,MAAA,EAAUR,CAAa,EACtF,uBAAyBO,GAAeA,EAAM,MAAM,MAAA,EAEtD,eAAgB,CACd,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAO,EAAA,EAAMP,EAAYC,EAAUC,CAAW,CAAC,EACpE,CAACF,EAAYC,EAAUC,CAAW,CAAC,EACzC,uBAAyBQ,GAAeA,EAAM,MAAM,MAAA,EAEtD,YAAa,CACX,aAAc,CAACH,EAAQC,EAAI,CAAE,SAAAP,EAAU,YAAAC,CAAA,IACrCK,EACI,CAAC,CAAE,KAAM,OAAQ,GAAIA,EAAO,EAAA,EAAMP,EAAYC,EAAUC,CAAW,CAAC,EACpE,CAACF,EAAYC,EAAUC,CAAW,CAAC,EACzC,uBAAyBQ,GAAeA,EAAM,MAAM,MAAA,CACtD,CAEJ,CAAC,EAEY,CACX,kBAAAE,EACA,uBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,oBAAAC,CACF,EAAIZ"}