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