@ynput/ayon-frontend-shared 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1096) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -201
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +248 -512
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -233
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +83 -82
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.es.js +32 -130
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/shared/src/api/generated/graphql.cjs.js +8 -7
  17. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  18. package/dist/shared/src/api/generated/graphql.es.js +18 -17
  19. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  20. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  22. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  23. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  24. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  25. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  27. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  28. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  29. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +55 -151
  35. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  44. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  45. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
  49. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  53. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  54. package/dist/shared/src/api/queries/entityLists/getLists.es.js +67 -118
  55. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  59. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  65. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  66. package/dist/shared/src/api/queries/folders/getFolders.es.js +68 -119
  67. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  69. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
  71. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/overview/getOverview.es.js +229 -282
  77. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  85. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
  89. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  94. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  95. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  96. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +88 -141
  97. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  98. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  101. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  102. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +30 -80
  103. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  105. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  114. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  115. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  116. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  117. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  118. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  119. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  120. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  121. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  122. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  123. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  124. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  125. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
  127. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  128. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  129. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  130. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  131. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  132. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  133. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  134. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  135. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  136. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  137. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +26 -182
  139. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -195
  143. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  145. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  146. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
  147. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  149. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  153. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  155. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  167. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  169. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  171. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  172. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  173. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  174. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +12 -314
  175. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  178. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -273
  179. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  180. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  181. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  182. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -335
  183. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  184. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  185. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  186. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  187. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  188. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -310
  189. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  190. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  191. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  192. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  193. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  194. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  195. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  196. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -293
  197. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  198. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  199. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  200. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  201. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  202. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  203. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  204. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  205. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  206. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  207. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  208. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  209. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -346
  210. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  211. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  212. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  213. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -212
  214. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  215. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  216. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
  218. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  219. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  220. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -185
  222. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  223. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  224. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  225. package/dist/shared/src/components/Menu/Menu.es.js +48 -343
  226. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  227. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  228. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  229. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -316
  230. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  231. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  232. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  233. package/dist/shared/src/components/Menu/MenuList.es.js +74 -373
  234. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  235. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  236. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  237. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
  238. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  239. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  240. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  241. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -346
  242. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  243. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  244. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  245. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
  246. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  247. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  248. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  249. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +74 -367
  250. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  251. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  252. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  253. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
  254. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  255. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  256. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  257. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -334
  258. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  259. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  260. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  261. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -331
  262. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  263. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  264. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  265. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
  266. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  267. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  268. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  269. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
  270. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  271. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  272. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  273. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -365
  274. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  275. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  276. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  277. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -316
  278. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  280. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  281. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  282. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  283. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  284. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  285. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -326
  286. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  287. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  288. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  289. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  290. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  291. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
  292. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  293. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  294. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  295. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
  296. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  297. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  298. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  299. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
  300. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  301. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  302. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  303. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
  304. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  305. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  306. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  307. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  308. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  309. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  310. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  311. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
  312. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  313. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  314. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  315. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  316. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  317. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  318. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  319. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  320. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  321. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  322. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  323. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
  324. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  325. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  326. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  327. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -262
  328. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  329. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  330. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  331. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  332. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  333. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  334. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -210
  336. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  337. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  339. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  340. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/Actions/Actions.es.js +51 -250
  342. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  343. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  345. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  346. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -323
  348. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  349. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  351. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +143 -327
  356. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  358. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -329
  360. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -236
  364. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -255
  368. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  370. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
  372. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  374. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
  376. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  378. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  380. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  400. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
  402. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  404. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -217
  406. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  408. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -323
  410. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  412. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -307
  414. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  424. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  426. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
  432. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  434. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
  436. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  437. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  438. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -324
  440. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  441. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  442. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
  444. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  445. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  446. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
  448. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  449. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  450. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  452. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  453. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  454. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
  456. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  457. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  458. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  460. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  461. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/Feed.es.js +65 -245
  466. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  470. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -309
  472. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  474. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -421
  476. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  477. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  478. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -317
  480. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  481. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  482. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  484. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  485. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  486. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
  488. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  489. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  491. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  492. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -372
  494. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  495. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  498. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
  500. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  502. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -324
  504. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  506. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  508. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  510. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
  512. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  514. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  516. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  518. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  519. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  520. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  521. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  524. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  526. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
  528. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
  532. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  534. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -310
  536. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  538. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
  540. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  542. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  544. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  547. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  548. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  549. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  551. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  552. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  554. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  555. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  557. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  558. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  559. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
  561. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  562. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  563. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +44 -177
  565. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  566. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  567. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -343
  569. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  570. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  572. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  574. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  575. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
  577. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  578. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  580. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  581. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  582. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
  583. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +590 -859
  587. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +245 -391
  591. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -375
  595. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -204
  599. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +27 -124
  603. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  605. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  607. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
  611. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  613. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +243 -441
  615. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
  619. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
  623. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
  627. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +71 -245
  631. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  634. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  642. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
  646. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  647. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +59 -233
  650. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +74 -248
  654. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +147 -439
  658. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +23 -197
  662. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -206
  666. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -332
  670. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +135 -335
  674. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -203
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -204
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -282
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -232
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -198
  696. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +29 -203
  700. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -467
  704. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  706. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
  708. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  714. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  718. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  724. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  728. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  730. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
  732. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  734. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +113 -398
  736. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  738. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
  740. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
  744. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
  746. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  748. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  752. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  753. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
  754. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  755. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  756. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
  758. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  760. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -202
  762. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  764. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +36 -333
  766. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  768. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
  770. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  772. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +80 -176
  774. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  776. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  778. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  779. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  780. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  781. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -217
  782. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  783. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  784. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  785. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -527
  786. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  787. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  788. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  789. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -367
  790. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  791. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  792. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  793. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
  794. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  795. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  796. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  797. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
  798. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  799. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  800. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  801. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -370
  802. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  803. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  804. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  805. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -228
  806. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  807. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  808. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  809. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
  810. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  811. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  812. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  813. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -309
  814. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  815. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  816. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  817. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -311
  818. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  819. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  820. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  821. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
  822. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  823. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  824. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  825. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
  826. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  827. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  828. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  829. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
  830. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  831. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  832. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
  834. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  835. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  836. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
  838. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  839. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  840. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  841. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  842. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  843. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  844. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  846. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  847. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  848. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  849. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  850. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  851. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -336
  852. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  853. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  854. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  855. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -354
  856. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  857. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  858. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  859. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
  860. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  861. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  862. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  863. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +59 -262
  864. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  865. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  866. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  867. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  868. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  869. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  870. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  871. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  872. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  873. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  874. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  875. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  876. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  877. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -216
  878. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  879. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  880. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  881. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  882. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  883. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  884. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  885. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  886. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  887. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  888. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  889. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  890. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  891. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  892. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  893. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  894. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  895. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  896. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  897. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -362
  898. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  899. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  900. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  901. package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
  902. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  903. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  904. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  905. package/dist/shared/src/context/PowerpackContext.es.js +42 -344
  906. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  907. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  908. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  909. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -231
  910. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  911. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  912. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  913. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  914. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  915. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -324
  916. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  917. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  918. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  919. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  920. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  921. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  922. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  923. package/dist/shared/src/context/UriContext.es.js +2 -2
  924. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  925. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  926. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  927. package/dist/shared/src/context/WebsocketContext.es.js +28 -229
  928. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  929. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  930. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  931. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
  932. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  933. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  934. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  935. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -314
  936. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  937. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  938. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  939. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -333
  940. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  941. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  942. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  943. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  944. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  945. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  946. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  947. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  948. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  949. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -212
  950. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  951. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  952. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  953. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  954. package/dist/shared/src/util/checkName.es.js.map +1 -1
  955. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  956. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  957. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  958. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  959. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  960. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  961. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  962. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  963. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  964. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  965. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  966. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  967. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  968. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  969. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  970. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  971. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  972. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  973. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  974. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  975. package/dist/shared/src/util/parseFilename.es.js +8 -0
  976. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  977. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  978. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  979. package/dist/types/api/base/index.d.ts +1 -1
  980. package/dist/types/api/generated/graphql.d.ts +5 -2
  981. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  982. package/dist/types/api/queries/activities/getActivities.d.ts +4 -2
  983. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  984. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
  985. package/dist/types/api/queries/entities/getEntity.d.ts +2 -1
  986. package/dist/types/api/queries/entities/getEntityPanel.d.ts +2 -1
  987. package/dist/types/api/queries/entities/updateEntity.d.ts +2 -1
  988. package/dist/types/api/queries/entityLists/getLists.d.ts +305 -305
  989. package/dist/types/api/queries/overview/getOverview.d.ts +35 -18
  990. package/dist/types/api/queries/project/getProject.d.ts +62 -61
  991. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  992. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +2 -1
  993. package/dist/types/api/queries/users/getUsers.d.ts +2 -1
  994. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +4 -2
  995. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  996. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  997. package/dist/types/components/Menu/Menu.d.ts +1 -1
  998. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  999. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1000. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
  1001. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1002. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1003. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1004. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
  1005. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1006. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1007. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1008. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1009. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1010. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  1011. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1012. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1013. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1014. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1015. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1016. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1017. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1018. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1019. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1020. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1021. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1022. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1023. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1024. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1025. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1026. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1027. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1028. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1029. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1030. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1031. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1032. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1033. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1034. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1035. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1036. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1037. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1038. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1039. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1040. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1041. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1042. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1043. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1044. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1045. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1046. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
  1047. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  1048. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1049. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1050. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1051. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1052. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1053. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1054. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1055. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1056. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1057. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1058. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1059. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1060. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1061. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1062. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1063. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1064. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1065. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1066. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1067. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1068. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1069. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1070. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1071. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1072. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1073. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1074. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1075. package/dist/types/containers/Views/types.d.ts +1 -1
  1076. package/dist/types/context/AddonContext.d.ts +1 -1
  1077. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1078. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1079. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1080. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1081. package/dist/types/util/buildHierarchicalTableRows.d.ts +1 -1
  1082. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1083. package/dist/types/util/getBundleMode.d.ts +1 -1
  1084. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1085. package/dist/types/util/index.d.ts +2 -0
  1086. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1087. package/dist/types/util/parseFilename.d.ts +1 -0
  1088. package/dist/types/util/uriUtils.d.ts +1 -1
  1089. package/dist/util.cjs.js +1 -1
  1090. package/dist/util.es.js +24 -20
  1091. package/dist/util.es.js.map +1 -1
  1092. package/package.json +1 -1
  1093. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1094. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1095. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1096. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -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"}