@ynput/ayon-frontend-shared 0.3.56 → 0.4.1

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 (766) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +49 -46
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +244 -228
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +52 -49
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs22.js +1 -1
  11. package/dist/_virtual/index.cjs23.js +1 -1
  12. package/dist/_virtual/index.cjs24.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs9.js +1 -1
  17. package/dist/_virtual/index.es22.js +3 -3
  18. package/dist/_virtual/index.es23.js +5 -5
  19. package/dist/_virtual/index.es24.js +5 -5
  20. package/dist/_virtual/index.es4.js +5 -2
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +2 -5
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +2 -5
  25. package/dist/_virtual/index.es6.js.map +1 -1
  26. package/dist/_virtual/index.es9.js +5 -2
  27. package/dist/_virtual/index.es9.js.map +1 -1
  28. package/dist/api.cjs.js +1 -1
  29. package/dist/api.es.js +93 -93
  30. package/dist/components.cjs.js +1 -1
  31. package/dist/components.es.js +130 -126
  32. package/dist/components.es.js.map +1 -1
  33. package/dist/index.cjs.js +1 -1
  34. package/dist/index.es.js +36 -33
  35. package/dist/index.es.js.map +1 -1
  36. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  37. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  38. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  40. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  41. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  52. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  53. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  54. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  55. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  56. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  57. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  58. package/dist/shared/src/api/generated/graphql.cjs.js +40 -21
  59. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  60. package/dist/shared/src/api/generated/graphql.es.js +36 -17
  61. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  62. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  63. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  64. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  65. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -4
  69. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +99 -105
  73. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +133 -87
  77. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/entityLists/getLists.es.js +155 -155
  81. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/folders/getFolders.es.js +66 -64
  85. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +110 -111
  89. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  91. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  92. package/dist/shared/src/api/queries/links/getLinks.es.js +58 -73
  93. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  94. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  95. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  96. package/dist/shared/src/api/queries/overview/getOverview.es.js +380 -328
  97. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  98. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  99. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  100. package/dist/shared/src/api/queries/overview/patchVersions.es.js +130 -77
  101. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  103. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  104. package/dist/shared/src/api/queries/overview/updateOverview.es.js +136 -132
  105. package/dist/shared/src/api/queries/overview/updateOverview.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 +180 -104
  109. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  111. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  112. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +152 -132
  113. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  115. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  116. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -2
  117. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  118. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  119. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  120. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +485 -439
  121. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  122. package/dist/shared/src/components/Chips/Chips.cjs.js +1 -1
  123. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  124. package/dist/shared/src/components/Chips/Chips.es.js +18 -17
  125. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  126. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  127. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  128. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +23 -20
  129. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  130. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  131. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  132. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +10 -7
  133. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  134. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  135. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  136. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +23 -20
  137. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  139. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +23 -20
  141. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  143. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +23 -20
  145. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  146. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  147. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  148. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +34 -30
  149. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  150. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  151. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  152. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +23 -20
  153. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  154. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  155. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  156. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +28 -25
  157. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  158. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  159. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  160. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +23 -20
  161. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  162. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  163. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  164. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +27 -24
  165. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  166. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  167. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  168. package/dist/shared/src/components/LinksManager/LinksManager.es.js +23 -20
  169. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  170. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  171. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  172. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +23 -20
  173. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  174. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  175. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  176. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +23 -20
  177. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  178. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  179. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  180. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +23 -20
  181. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  182. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  183. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  184. package/dist/shared/src/components/Menu/Menu.es.js +23 -20
  185. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  186. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  187. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  188. package/dist/shared/src/components/Menu/MenuItem.es.js +21 -18
  189. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  190. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  191. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  192. package/dist/shared/src/components/Menu/MenuList.es.js +23 -20
  193. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  194. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  195. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  196. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +23 -20
  197. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  198. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  199. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  200. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +23 -20
  201. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  202. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  203. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  204. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +210 -182
  205. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  206. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  207. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  208. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +89 -82
  209. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  210. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  211. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  212. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +23 -20
  213. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  214. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  215. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  216. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +131 -126
  217. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  218. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  219. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  220. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +52 -36
  221. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  222. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  223. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  224. package/dist/shared/src/components/RenameForm/RenameForm.es.js +23 -20
  225. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  226. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  227. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  228. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +29 -32
  229. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  230. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  231. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  232. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +30 -27
  233. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  234. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  235. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  236. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +29 -26
  237. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  238. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  239. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  240. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +29 -26
  241. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  242. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +1 -1
  243. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  244. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +2 -1
  245. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  246. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  247. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  248. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +511 -394
  249. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  250. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  251. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  252. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +23 -20
  253. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  254. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +8 -5
  255. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
  256. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +36 -22
  257. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
  258. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  259. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  260. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +30 -27
  261. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  262. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  263. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  264. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +29 -26
  265. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  266. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  267. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  268. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +23 -20
  269. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  270. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  271. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  272. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +29 -26
  273. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  274. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  275. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  276. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +32 -29
  277. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  278. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  279. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +29 -26
  281. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  282. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  283. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/Actions/Actions.es.js +23 -20
  285. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  286. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  287. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +29 -26
  289. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  291. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  292. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +29 -26
  293. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  294. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  295. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +29 -26
  297. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  298. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  299. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +29 -26
  301. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  302. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +29 -26
  305. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  306. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  307. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +23 -20
  309. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  310. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +29 -26
  313. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  314. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +29 -26
  317. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +23 -20
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +12 -12
  325. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +133 -130
  329. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +29 -26
  333. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +27 -24
  337. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -24
  341. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +23 -20
  345. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  346. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  347. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +29 -26
  349. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  350. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  351. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +29 -26
  353. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  354. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  355. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +29 -26
  357. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  358. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  359. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  360. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +29 -26
  361. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  362. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -20
  365. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  366. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  367. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  368. package/dist/shared/src/containers/Feed/Feed.es.js +28 -25
  369. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  370. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  371. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +29 -26
  373. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  374. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  375. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +29 -26
  377. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  378. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  379. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  380. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +29 -26
  381. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  382. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  383. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +23 -20
  385. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  386. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  387. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +27 -24
  389. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  391. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +33 -30
  393. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  395. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +23 -20
  397. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  399. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +23 -20
  401. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  403. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +21 -18
  405. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  407. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  408. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +23 -20
  409. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  410. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  411. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +27 -24
  413. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  414. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  415. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +26 -23
  417. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  418. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  419. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/ListTable/ListTable.es.js +25 -22
  421. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  422. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  423. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  424. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +119 -116
  425. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  426. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  427. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +29 -26
  429. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  430. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +2 -2
  431. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +114 -111
  433. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  434. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  435. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  436. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +116 -113
  437. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +64 -61
  441. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +586 -414
  445. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +24 -21
  449. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +24 -21
  453. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +29 -26
  457. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +131 -128
  461. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  463. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +289 -272
  465. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +34 -31
  469. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +25 -22
  473. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +28 -25
  477. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +118 -115
  481. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +23 -20
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +28 -25
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +25 -22
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +124 -121
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +48 -45
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +26 -23
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +23 -20
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +103 -100
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +26 -23
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +26 -23
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.es.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +93 -383
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +23 -20
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +22 -19
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +25 -22
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +37 -45
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +21 -18
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +37 -34
  551. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js +2 -0
  553. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js.map +1 -0
  554. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js +45 -0
  555. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js.map +1 -0
  556. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +37 -21
  561. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +28 -25
  565. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +6 -2
  567. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +28 -21
  569. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +29 -26
  573. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +30 -0
  575. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -0
  576. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +370 -0
  577. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -0
  578. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +2 -2
  579. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +39 -36
  581. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +23 -20
  585. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +26 -23
  589. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +29 -26
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +23 -20
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  598. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  599. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  600. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +29 -26
  601. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  602. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  603. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  604. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +29 -26
  605. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  606. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +1 -1
  607. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  608. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +25 -22
  609. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  610. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  611. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +23 -20
  613. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  614. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  615. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +29 -26
  617. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  618. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  619. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +27 -24
  621. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  622. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  623. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +23 -20
  625. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  626. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  627. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +22 -19
  629. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  630. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  631. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +23 -20
  633. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  634. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  635. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +23 -20
  637. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  638. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  639. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +25 -22
  641. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  642. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +23 -20
  645. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  646. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +23 -20
  649. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  650. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  651. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +23 -20
  653. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  654. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  655. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +24 -21
  657. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  658. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  659. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +23 -20
  661. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  662. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  663. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +23 -20
  665. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  666. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  667. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  668. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +23 -20
  669. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  670. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  671. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +25 -22
  673. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  674. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  675. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +26 -23
  677. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  678. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  679. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  680. package/dist/shared/src/context/DetailsPanelContext.es.js +27 -24
  681. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  682. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  683. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  684. package/dist/shared/src/context/EntityUpdatesContext.es.js +85 -65
  685. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  686. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  687. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  688. package/dist/shared/src/context/PowerpackContext.es.js +27 -24
  689. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  690. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  691. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  692. package/dist/shared/src/context/ProjectFoldersContext.es.js +25 -22
  693. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  694. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  695. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  696. package/dist/shared/src/context/SubtasksModulesContext.es.js +25 -22
  697. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  698. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  699. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  700. package/dist/shared/src/context/WebsocketContext.es.js +31 -28
  701. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  702. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  703. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  704. package/dist/shared/src/hooks/useEntityUpdate.es.js +23 -20
  705. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  706. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  707. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  708. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +23 -20
  709. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  710. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  711. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  712. package/dist/shared/src/hooks/useHierarchyTable.es.js +23 -20
  713. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  714. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  715. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  716. package/dist/shared/src/hooks/useUserProjectConfig.es.js +23 -20
  717. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  718. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  719. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  720. package/dist/shared/src/util/columnConfigConverter.es.js +33 -33
  721. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  722. package/dist/shared/src/util/getAttributeIcon.cjs.js +1 -1
  723. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  724. package/dist/shared/src/util/getAttributeIcon.es.js +2 -1
  725. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  726. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js +1 -1
  727. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js.map +1 -1
  728. package/dist/shared/src/util/realtimeUpdatesUtils.es.js +33 -27
  729. package/dist/shared/src/util/realtimeUpdatesUtils.es.js.map +1 -1
  730. package/dist/types/api/generated/graphql.d.ts +45 -2
  731. package/dist/types/api/generated/graphqlLinks.d.ts +14 -2
  732. package/dist/types/api/generated/views.d.ts +13 -4
  733. package/dist/types/api/queries/activities/getActivities.d.ts +24 -0
  734. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +0 -3
  735. package/dist/types/api/queries/entities/getEntity.d.ts +12 -0
  736. package/dist/types/api/queries/entities/getEntityPanel.d.ts +12 -0
  737. package/dist/types/api/queries/entities/updateEntity.d.ts +12 -0
  738. package/dist/types/api/queries/entityLists/getLists.d.ts +12 -7
  739. package/dist/types/api/queries/entityLists/types.d.ts +7 -0
  740. package/dist/types/api/queries/overview/getOverview.d.ts +14 -2
  741. package/dist/types/api/queries/overview/patchVersions.d.ts +9 -0
  742. package/dist/types/api/queries/project/getProject.d.ts +12 -0
  743. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +12 -0
  744. package/dist/types/api/queries/users/getUsers.d.ts +12 -0
  745. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +155 -0
  746. package/dist/types/components/EntityIcon/EntityIcon.d.ts +4 -4
  747. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +9 -1
  748. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  749. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +25 -1
  750. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +5 -2
  751. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +1 -0
  752. package/dist/types/components/index.d.ts +1 -0
  753. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +3 -1
  754. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +22 -1
  755. package/dist/types/containers/ProjectTreeTable/hooks/useGroupCounts.d.ts +1 -0
  756. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -1
  757. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
  758. package/dist/types/containers/ProjectTreeTable/utils/columnIds.d.ts +10 -0
  759. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  760. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  761. package/dist/types/containers/ProjectTreeTable/widgets/EntityWidget.d.ts +15 -0
  762. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  763. package/dist/types/util/realtimeUpdatesUtils.d.ts +6 -3
  764. package/dist/util.cjs.js +1 -1
  765. package/dist/util.es.js +43 -42
  766. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"updateOverview.es.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import { foldersQueries } from '../folders'\nimport { detailsPanelQueries } from '../entities/getEntityPanel'\nimport { operationsApi } from '@shared/api/generated'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport type {\n OperationsResponseModel,\n OperationModel,\n OperationsApiArg,\n} from '@shared/api/generated'\nimport getOverviewApi from './getOverview'\nimport { patchDetailsPanelEntity } from '../entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport { getUpdatedEntityIds } from './filterRefetchUtils'\nimport {\n refetchTasksForCacheEntry,\n refetchOverviewTasksForCacheEntry,\n} from './refetchFilteredEntities'\nimport { patchVersions } from './patchVersions'\nimport { patchProducts } from './patchProducts'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n // Update top-level properties directly\n Object.keys(operationData).forEach((key) => {\n if (key === 'attrib' || key === 'links' || key === 'deleteLinks') return\n entity[key] = operationData[key]\n })\n\n // Handle attrib merging\n if (operationData.attrib) {\n entity.attrib = {\n ...entity.attrib,\n ...operationData.attrib,\n }\n }\n\n // Handle links merging\n if (operationData.links) {\n const existingLinks = entity.links || []\n const newLinks = operationData.links || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Process links directly\n entity.links = [...existingLinks]\n\n newLinks.forEach((newLink: any) => {\n const existingIndex = entity.links.findIndex((link: any) => link.id === newLink.id)\n\n if (existingIndex !== -1) {\n entity.links[existingIndex] = { ...entity.links[existingIndex], ...newLink }\n } else {\n entity.links.push(newLink)\n }\n })\n }\n\n // Handle links deletion\n if (operationData.deleteLinks) {\n const linksToDelete = operationData.deleteLinks || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Remove links by ID\n linksToDelete.forEach((linkId: string) => {\n entity.links = entity.links.filter((link: any) => link.id !== linkId)\n })\n }\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\n// Helper function to create a patch operation for deleting links\nexport const createLinkDeletionPatch = (\n entityId: string,\n entityType: OperationModel['entityType'],\n linkIds: string[],\n): PatchOperation => {\n return {\n entityId,\n entityType,\n type: 'update',\n data: { deleteLinks: linkIds },\n }\n}\n\n// Utility function to delete specific links by ID from entities\nexport const deleteLinksFromEntities = (\n entities: { entityId: string; entityType: OperationModel['entityType'] }[],\n linkIds: string[],\n): PatchOperation[] => {\n return entities.map((entity) =>\n createLinkDeletionPatch(entity.entityId, entity.entityType, linkIds),\n )\n}\n\n// Generic helper function to patch entities based on their type\nexport const patchOverviewEntities = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n // Group entities by type\n const entitiesByType = entities.reduce((acc, entity) => {\n if (!acc[entity.entityType]) {\n acc[entity.entityType] = []\n }\n acc[entity.entityType].push(entity)\n return acc\n }, {} as Record<string, PatchOperation[]>)\n\n // Patch each entity type using the appropriate function\n if (entitiesByType.task) {\n patchOverviewTasks(entitiesByType.task, { state, dispatch }, patches)\n }\n if (entitiesByType.folder) {\n patchOverviewFolders(entitiesByType.folder, { state, dispatch }, patches)\n }\n // Add more entity types as needed\n // if (entitiesByType.product) { ... }\n // if (entitiesByType.version) { ... }\n // etc.\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n const deleteIds = new Set(\n tasks.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n const removeDeletedTasks = (tasksArrayDraft: EditorTaskNode[]) => {\n for (let i = tasksArrayDraft.length - 1; i >= 0; i--) {\n if (deleteIds.has(tasksArrayDraft[i].id)) tasksArrayDraft.splice(i, 1)\n }\n }\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else if (taskOperation.type !== 'delete') {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n // TODO: task is not found here, why?\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n // optimistically remove deleted tasks\n if (deleteIds.size > 0) {\n for (const page of draft.pages) {\n removeDeletedTasks(page.tasks)\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n const applyToDraft = (patchTask: (tasksArrayDraft: EditorTaskNode[]) => void) => {\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n patchTask(draft.tasks)\n }\n }\n\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds?.includes(taskOperation.data.folderId)\n ) {\n applyToDraft((tasksArrayDraft) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n })\n } else if (taskOperation.type !== 'delete') {\n applyToDraft((tasksArrayDraft) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n })\n }\n }\n // optimistically remove deleted tasks\n if (deleteIds.size > 0) {\n applyToDraft(removeDeletedTasks)\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\n// Debounced, per-project invalidation of the footer stats caches after entity ops.\ntype StatsTagType =\n | 'folderColumnStats'\n | 'taskColumnStats'\n | 'productColumnStats'\n | 'versionColumnStats'\n | 'entityListItemsColumnStats'\nconst statsRefetchTimers = new Map<string, ReturnType<typeof setTimeout>>()\nconst scheduleStatsRefetch = (\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n projectName: string,\n tagTypes: StatsTagType[],\n) => {\n const key = `${projectName}:${tagTypes.join()}`\n const existing = statsRefetchTimers.get(key)\n if (existing) clearTimeout(existing)\n statsRefetchTimers.set(\n key,\n setTimeout(() => {\n statsRefetchTimers.delete(key)\n dispatch(\n getOverviewApi.util.invalidateTags(tagTypes.map((type) => ({ type, id: projectName }))),\n )\n }, 500),\n )\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n\n const deleteIds = new Set(\n folders.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else if (folderOperation.type !== 'delete') {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n\n // optimistically remove deleted folders\n if (deleteIds.size > 0) {\n for (let i = draft.folders.length - 1; i >= 0; i--) {\n if (deleteIds.has(draft.folders[i].id)) draft.folders.splice(i, 1)\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n const deleteIds = new Set(\n entities.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n // optimistically remove items whose entity is being deleted\n if (deleteIds.size > 0) {\n for (const page of draft.pages) {\n for (let i = page.items.length - 1; i >= 0; i--) {\n if (deleteIds.has(page.items[i].entityId)) page.items.splice(i, 1)\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n // Check if the network request itself failed (offline, timeout, etc.)\n if (result.error) {\n return { error: result.error as FetchBaseQueryError }\n }\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [], projectName },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks and optimistically remove deleted ones\n // (deletes are reconciled via invalidatesTags once the request settles)\n patchOverviewTasks([...updatesToPatch, ...deleteOps], { state, dispatch }, patches)\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders and optimistically remove deleted ones\n patchOverviewFolders([...updatesToPatch, ...deleteOps], { state, dispatch }, patches)\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // patch versions\n if (operationsByType.version?.length) {\n patchVersions(operationsByType.version, { state, dispatch }, patches)\n }\n\n // patch products\n if (operationsByType.product?.length) {\n patchProducts(operationsByType.product, { state, dispatch }, patches)\n }\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // Background refetch logic - runs after successful mutation\n // This ensures calculated attributes are up-to-date and entities are correctly filtered\n\n const taskOperations = operationsByType.task || []\n const folderOperations = operationsByType.folder || []\n const versionOperations = operationsByType.version || []\n const productOperations = operationsByType.product || []\n\n if (projectName) {\n if (taskOperations.length || folderOperations.length) {\n scheduleStatsRefetch(dispatch, projectName, [\n 'folderColumnStats',\n 'taskColumnStats',\n 'entityListItemsColumnStats',\n ])\n }\n if (versionOperations.length || productOperations.length) {\n scheduleStatsRefetch(dispatch, projectName, [\n 'productColumnStats',\n 'versionColumnStats',\n 'entityListItemsColumnStats',\n ])\n }\n }\n\n // Early exit if no operations\n if (taskOperations.length === 0 && folderOperations.length === 0) {\n return\n }\n\n // Extract updated entity IDs (always needed for refetch)\n const updatedTaskIds = getUpdatedEntityIds(taskOperations)\n const updatedFolderIds = getUpdatedEntityIds(folderOperations)\n\n // Get all active task list cache entries\n const overviewTaskTags = updatedTaskIds.map((id) => ({ type: 'overviewTask', id }))\n const tasksListInfiniteEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getTasksListInfinite')\n\n // Requirement: \"refetch the full data for the specific entity/entities\"\n // For each cache with its own filter, fetch entities and update that cache\n if (updatedTaskIds.length > 0 && projectName) {\n // Process getTasksListInfinite caches\n for (const entry of tasksListInfiniteEntries) {\n await refetchTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n\n // Process getOverviewTasksByFolders caches\n // Use selectInvalidatedBy to get only caches that contain the updated tasks\n const overviewTasksEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getOverviewTasksByFolders')\n\n for (const entry of overviewTasksEntries) {\n await refetchOverviewTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n }\n\n // Always refetch folders if they were updated (for calculated attributes)\n // Not conditional on affectsFilter - requirement says \"always refetch entities\"\n // (deletes are reconciled via invalidatesTags)\n if (updatedFolderIds.length > 0 && projectName) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {\n type Tags = { id: string; type: string }[]\n const userDashboardTags: Tags = [{ type: 'kanban', id: 'project-' + projectName }],\n taskProgressTags: Tags = [],\n entityListItemTags: Tags = [],\n tasksFolderTags: Tags = [],\n deletedEntityTags: Tags = [],\n entityActivityTags: Tags = []\n\n let hasAttribOp = false\n const deletedTypes = new Set<string>()\n operationsRequestModel.operations?.forEach((op) => {\n const { entityId } = op\n if (entityId) {\n taskProgressTags.push({ type: 'progress', id: entityId })\n // Invalidate list item cache for this entity to trigger background refetch\n entityListItemTags.push({ type: 'entityListItem', id: entityId })\n } else {\n // new entity created, so we should invalidate everything\n taskProgressTags.push({ type: 'progress', id: 'LIST' })\n }\n if ((op.data as any)?.attrib) hasAttribOp = true\n // own-edit activity events are sender-filtered on the websocket, so refetch open feeds\n if (\n op.type === 'update' &&\n entityId &&\n ['status', 'attrib', 'tags', 'assignees', `${op.entityType}Type`].some(\n (key) => (op.data as any)?.[key] !== undefined,\n )\n ) {\n entityActivityTags.push({ type: 'entityActivities', id: entityId })\n }\n if (op.type === 'delete' && entityId) {\n deletedTypes.add(op.entityType)\n deletedEntityTags.push({ type: op.entityType, id: entityId })\n // details panels showing the deleted entity\n deletedEntityTags.push({ type: 'entities', id: entityId })\n }\n })\n\n if (hasAttribOp) {\n tasksFolderTags.push({ type: 'tasksFolder', id: projectName })\n }\n\n // Deleted rows are removed optimistically; only server-side descendants need a refetch\n // (folder -> folders/tasks/products/versions, product -> versions).\n const invalidateList = new Set<string>()\n if (deletedTypes.has('folder')) {\n ;['folder', 'task', 'product', 'version'].forEach((t) => invalidateList.add(t))\n }\n if (deletedTypes.has('product')) invalidateList.add('version')\n\n if (invalidateList.has('folder')) deletedEntityTags.push({ type: 'folder', id: 'LIST' })\n if (invalidateList.has('task')) {\n deletedEntityTags.push(\n { type: 'overviewTask', id: 'LIST' },\n { type: 'overviewTask', id: projectName },\n )\n }\n if (invalidateList.has('product')) deletedEntityTags.push({ type: 'product', id: 'LIST' })\n if (invalidateList.has('version')) deletedEntityTags.push({ type: 'version', id: 'LIST' })\n\n return [\n ...userDashboardTags,\n ...taskProgressTags,\n ...entityListItemTags,\n ...tasksFolderTags,\n ...deletedEntityTags,\n ...entityActivityTags,\n ]\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\n"],"names":["updateEntityWithOperation","entity","operationData","key","existingLinks","newLinks","newLink","existingIndex","link","linksToDelete","linkId","getOverviewTaskTags","tasks","op","getOverviewFolderTags","folders","createLinkDeletionPatch","entityId","entityType","linkIds","deleteLinksFromEntities","entities","patchOverviewEntities","state","dispatch","patches","entitiesByType","acc","patchOverviewTasks","patchOverviewFolders","tags","taskEntries","getOverviewApi","deleteIds","removeDeletedTasks","tasksArrayDraft","i","entry","tasksPatch","draft","taskOperation","page","task","applyToDraft","patchTask","statsRefetchTimers","scheduleStatsRefetch","projectName","tagTypes","existing","type","folderEntries","foldersQueries","folderPatch","folderMap","folder","folderOperation","patchListItems","entries","entityListsQueriesGql","listItemsPatch","listOperation","item","splitByOpType","operations","operation","operationsEnhanced","operationsApi","operationsApiEnhancedInjected","build","arg","result","data","uniqueErrors","uniqueErrorCodes","e","operationsRequestModel","patchOperations","queryFulfilled","getState","operationsByType","deleteOps","update","updatesToPatch","dep","patchExtraTasks","patchExtraFolders","patchVersions","patchProducts","entityTags","entitiesTags","tag","invalidateEntryPanel","detailsPanelQueries","detailsPanelEntityCaches","detailsPanelEntitiesCaches","entitiesDetailsResult","patchDetailsPanelEntity","taskOperations","folderOperations","versionOperations","productOperations","updatedTaskIds","getUpdatedEntityIds","updatedFolderIds","overviewTaskTags","id","tasksListInfiniteEntries","refetchTasksForCacheEntry","overviewTasksEntries","refetchOverviewTasksForCacheEntry","patch","_r","_e","userDashboardTags","taskProgressTags","entityListItemTags","tasksFolderTags","deletedEntityTags","entityActivityTags","hasAttribOp","deletedTypes","invalidateList","t","useUpdateOverviewEntitiesMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateOverview.es.js","sources":["../../../../../../src/api/queries/overview/updateOverview.ts"],"sourcesContent":["import { foldersQueries } from '../folders'\nimport { detailsPanelQueries } from '../entities/getEntityPanel'\nimport { operationsApi } from '@shared/api/generated'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport type {\n OperationsResponseModel,\n OperationModel,\n OperationsApiArg,\n} from '@shared/api/generated'\nimport getOverviewApi from './getOverview'\nimport { patchDetailsPanelEntity } from '../entities'\nimport { FetchBaseQueryError, RootState } from '@reduxjs/toolkit/query'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport { getUpdatedEntityIds } from './filterRefetchUtils'\nimport {\n refetchTasksForCacheEntry,\n refetchOverviewTasksForCacheEntry,\n} from './refetchFilteredEntities'\nimport { patchFolderStatusInVersions, patchVersions } from './patchVersions'\nimport { patchProducts } from './patchProducts'\n// these operations are dedicated to the overview page\n// this mean cache updates are custom for the overview page here\n\n// Helper function to update entities with operation data\nconst updateEntityWithOperation = (entity: any, operationData: any) => {\n // Update top-level properties directly\n Object.keys(operationData).forEach((key) => {\n if (key === 'attrib' || key === 'links' || key === 'deleteLinks') return\n entity[key] = operationData[key]\n })\n\n // Handle attrib merging\n if (operationData.attrib) {\n entity.attrib = {\n ...entity.attrib,\n ...operationData.attrib,\n }\n }\n\n // Handle links merging\n if (operationData.links) {\n const existingLinks = entity.links || []\n const newLinks = operationData.links || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Process links directly\n entity.links = [...existingLinks]\n\n newLinks.forEach((newLink: any) => {\n const existingIndex = entity.links.findIndex((link: any) => link.id === newLink.id)\n\n if (existingIndex !== -1) {\n entity.links[existingIndex] = { ...entity.links[existingIndex], ...newLink }\n } else {\n entity.links.push(newLink)\n }\n })\n }\n\n // Handle links deletion\n if (operationData.deleteLinks) {\n const linksToDelete = operationData.deleteLinks || []\n\n // Ensure links structure exists\n if (!entity.links) entity.links = []\n\n // Remove links by ID\n linksToDelete.forEach((linkId: string) => {\n entity.links = entity.links.filter((link: any) => link.id !== linkId)\n })\n }\n}\n\nconst getOverviewTaskTags = (tasks: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n { type: 'overviewTask', id: 'LIST' },\n ...tasks.map((op) => ({ type: 'overviewTask', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...tasks\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'overviewTask',\n id: op.data?.projectName,\n })),\n ]\n}\n\nconst getOverviewFolderTags = (folders: Pick<OperationModel, 'entityId' | 'data'>[]) => {\n return [\n ...folders.map((op) => ({ type: 'folder', id: op.entityId })),\n // we also add the projectName so that tasks that do not exist in the cache can still invalidate\n ...folders\n .filter((op) => op.data?.projectName)\n .map((op) => ({\n type: 'folder',\n id: op.data?.projectName,\n })),\n ]\n}\n\nexport type PatchOperation = Pick<OperationModel, 'entityId' | 'entityType' | 'data'> & {\n type?: OperationModel['type']\n}\n\n// Helper function to create a patch operation for deleting links\nexport const createLinkDeletionPatch = (\n entityId: string,\n entityType: OperationModel['entityType'],\n linkIds: string[],\n): PatchOperation => {\n return {\n entityId,\n entityType,\n type: 'update',\n data: { deleteLinks: linkIds },\n }\n}\n\n// Utility function to delete specific links by ID from entities\nexport const deleteLinksFromEntities = (\n entities: { entityId: string; entityType: OperationModel['entityType'] }[],\n linkIds: string[],\n): PatchOperation[] => {\n return entities.map((entity) =>\n createLinkDeletionPatch(entity.entityId, entity.entityType, linkIds),\n )\n}\n\n// Generic helper function to patch entities based on their type\nexport const patchOverviewEntities = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n // Group entities by type\n const entitiesByType = entities.reduce((acc, entity) => {\n if (!acc[entity.entityType]) {\n acc[entity.entityType] = []\n }\n acc[entity.entityType].push(entity)\n return acc\n }, {} as Record<string, PatchOperation[]>)\n\n // Patch each entity type using the appropriate function\n if (entitiesByType.task) {\n patchOverviewTasks(entitiesByType.task, { state, dispatch }, patches)\n }\n if (entitiesByType.folder) {\n patchOverviewFolders(entitiesByType.folder, { state, dispatch }, patches)\n }\n // Add more entity types as needed\n // if (entitiesByType.product) { ... }\n // if (entitiesByType.version) { ... }\n // etc.\n}\n\nexport const patchOverviewTasks = (\n tasks: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = getOverviewTaskTags(tasks)\n const taskEntries = getOverviewApi.util.selectInvalidatedBy(state, tags)\n\n const deleteIds = new Set(\n tasks.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n const removeDeletedTasks = (tasksArrayDraft: EditorTaskNode[]) => {\n for (let i = tasksArrayDraft.length - 1; i >= 0; i--) {\n if (deleteIds.has(tasksArrayDraft[i].id)) tasksArrayDraft.splice(i, 1)\n }\n }\n\n for (const entry of taskEntries) {\n if (entry.endpointName === 'getTasksListInfinite') {\n // patch getTasksListInfinite\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData('getTasksListInfinite', entry.originalArgs, (draft) => {\n // Apply each change to matching tasks in all pages\n for (const taskOperation of tasks) {\n if (taskOperation.type === 'create' && taskOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.pages[0].tasks.push(taskOperation.data)\n } else if (taskOperation.type !== 'delete') {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n // TODO: task is not found here, why?\n const task = page.tasks.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n }\n }\n }\n // optimistically remove deleted tasks\n if (deleteIds.size > 0) {\n for (const page of draft.pages) {\n removeDeletedTasks(page.tasks)\n }\n }\n }),\n )\n\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n } else {\n // this updates the main overview cache task\n // it also updates any GetTasksByParent caches\n const tasksPatch = dispatch(\n getOverviewApi.util.updateQueryData(\n entry.endpointName as 'getOverviewTasksByFolders' | 'GetTasksList',\n entry.originalArgs,\n (draft) => {\n const applyToDraft = (patchTask: (tasksArrayDraft: EditorTaskNode[]) => void) => {\n // Check if draft is an array or an object with a tasks property\n if (Array.isArray(draft)) {\n patchTask(draft)\n } else if (draft.tasks && Array.isArray(draft.tasks)) {\n // Handle object with tasks array case (like in GetTasksList)\n patchTask(draft.tasks)\n }\n }\n\n // Apply each change to matching tasks in the cache\n for (const taskOperation of tasks) {\n if (\n taskOperation.type === 'create' &&\n taskOperation.data &&\n entry.originalArgs.parentIds?.includes(taskOperation.data.folderId)\n ) {\n applyToDraft((tasksArrayDraft) => {\n // @ts-expect-error\n tasksArrayDraft.push(taskOperation.data)\n })\n } else if (taskOperation.type !== 'delete') {\n applyToDraft((tasksArrayDraft) => {\n const task = tasksArrayDraft.find((task) => task.id === taskOperation.entityId)\n if (task) {\n updateEntityWithOperation(task, taskOperation.data)\n }\n })\n }\n }\n // optimistically remove deleted tasks\n if (deleteIds.size > 0) {\n applyToDraft(removeDeletedTasks)\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(tasksPatch)\n }\n }\n}\n\n// Debounced, per-project invalidation of the footer stats caches after entity ops.\ntype StatsTagType =\n | 'folderColumnStats'\n | 'taskColumnStats'\n | 'productColumnStats'\n | 'versionColumnStats'\n | 'entityListItemsColumnStats'\nconst statsRefetchTimers = new Map<string, ReturnType<typeof setTimeout>>()\nconst scheduleStatsRefetch = (\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n projectName: string,\n tagTypes: StatsTagType[],\n) => {\n const key = `${projectName}:${tagTypes.join()}`\n const existing = statsRefetchTimers.get(key)\n if (existing) clearTimeout(existing)\n statsRefetchTimers.set(\n key,\n setTimeout(() => {\n statsRefetchTimers.delete(key)\n dispatch(\n getOverviewApi.util.invalidateTags(tagTypes.map((type) => ({ type, id: projectName }))),\n )\n }, 500),\n )\n}\n\nexport const patchOverviewFolders = (\n folders: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const folderEntries = foldersQueries.util\n .selectInvalidatedBy(state, getOverviewFolderTags(folders))\n .filter((entry) => entry.endpointName === 'getFolderList')\n\n const deleteIds = new Set(\n folders.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n\n for (const entry of folderEntries) {\n const folderPatch = dispatch(\n foldersQueries.util.updateQueryData(\n entry.endpointName as 'getFolderList',\n entry.originalArgs,\n (draft) => {\n // Create a Map for O(1) folder lookups\n const folderMap = new Map()\n draft.folders.forEach((folder) => {\n folderMap.set(folder.id, folder)\n })\n\n for (const folderOperation of folders) {\n if (folderOperation.type === 'create' && folderOperation.data) {\n // push operation data to first page\n // @ts-expect-error\n draft.folders.push(folderOperation.data)\n } else if (folderOperation.type !== 'delete') {\n const folder = folderMap.get(folderOperation.entityId)\n\n if (folder) {\n updateEntityWithOperation(folder, folderOperation.data)\n }\n }\n }\n\n // optimistically remove deleted folders\n if (deleteIds.size > 0) {\n for (let i = draft.folders.length - 1; i >= 0; i--) {\n if (deleteIds.has(draft.folders[i].id)) draft.folders.splice(i, 1)\n }\n }\n },\n ),\n )\n // add the patch to the list of patches\n patches?.push(folderPatch)\n }\n}\n\nconst patchListItems = (\n entities: PatchOperation[],\n {\n state,\n dispatch,\n }: {\n state: RootState<any, any, 'restApi'>\n dispatch: ThunkDispatch<any, any, UnknownAction>\n },\n patches?: any[],\n) => {\n const tags = entities.map((op) => ({ type: 'entityListItem', id: op.entityId }))\n const entries = entityListsQueriesGql.util.selectInvalidatedBy(state, tags)\n\n const deleteIds = new Set(\n entities.filter((op) => op.type === 'delete' && op.entityId).map((op) => op.entityId),\n )\n\n for (const entry of entries) {\n if (entry.endpointName === 'getListItemsInfinite') {\n const listItemsPatch = dispatch(\n entityListsQueriesGql.util.updateQueryData(\n 'getListItemsInfinite',\n entry.originalArgs,\n (draft) => {\n // Apply each change to matching tasks in all pages\n for (const listOperation of entities) {\n if (listOperation.type === 'update' && listOperation.data) {\n // Iterate through all pages in the infinite query\n for (const page of draft.pages) {\n const item = page.items.find((item) => item.entityId === listOperation.entityId)\n if (item) {\n updateEntityWithOperation(item, listOperation.data)\n }\n }\n }\n }\n // optimistically remove items whose entity is being deleted\n if (deleteIds.size > 0) {\n for (const page of draft.pages) {\n for (let i = page.items.length - 1; i >= 0; i--) {\n if (deleteIds.has(page.items[i].entityId)) page.items.splice(i, 1)\n }\n }\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches?.push(listItemsPatch)\n }\n }\n}\n\nconst splitByOpType = (operations: OperationModel[]) => {\n return operations.reduce(\n (acc: Record<OperationModel['type'], OperationModel[]>, operation) => {\n acc[operation.type].push(operation)\n return acc\n },\n {\n create: [],\n update: [],\n delete: [],\n },\n )\n}\n\nconst operationsEnhanced = operationsApi.enhanceEndpoints({\n endpoints: {\n operations: {},\n },\n})\n\n// enhance the argument type to include some extra fields\ninterface UpdateOverviewEntitiesArg extends OperationsApiArg {\n patchOperations?: PatchOperation[] // extra entities to patch\n}\n\nconst operationsApiEnhancedInjected = operationsEnhanced.injectEndpoints({\n endpoints: (build) => ({\n updateOverviewEntities: build.mutation<\n OperationsResponseModel | undefined,\n UpdateOverviewEntitiesArg\n >({\n async queryFn(arg, { dispatch }) {\n try {\n const result = await dispatch(operationsEnhanced.endpoints.operations.initiate(arg))\n\n // Check if the network request itself failed (offline, timeout, etc.)\n if (result.error) {\n return { error: result.error as FetchBaseQueryError }\n }\n\n const data = result.data\n // check for any errors in the result\n const uniqueErrors = new Set()\n const uniqueErrorCodes = new Set()\n for (const op of data?.operations || []) {\n if (op.success === false && op.detail) {\n if (!uniqueErrors.has(op.detail)) {\n uniqueErrors.add(op.detail)\n }\n if (!uniqueErrorCodes.has(op.errorCode)) {\n uniqueErrorCodes.add(op.errorCode)\n }\n }\n }\n\n if (uniqueErrors.size > 0) {\n const error = {\n status: 'FETCH_ERROR',\n error: Array.from(uniqueErrors).join(', '),\n errorCodes: Array.from(uniqueErrorCodes),\n } as FetchBaseQueryError\n return { error }\n } else {\n return { data }\n }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n async onQueryStarted(\n { operationsRequestModel, patchOperations = [], projectName },\n { dispatch, queryFulfilled, getState },\n ) {\n if (!operationsRequestModel.operations?.length) return\n const { operations } = operationsRequestModel\n // we need to split the operations by entity type\n const operationsByType = operations.reduce(\n (acc: Record<OperationModel['entityType'], OperationModel[]>, operation) => {\n acc[operation.entityType].push(operation)\n return acc\n },\n {\n task: [],\n folder: [],\n product: [],\n version: [],\n representation: [],\n workfile: [],\n },\n )\n\n // collect patches incase we need to undo them\n const state = getState()\n const patches: any[] = []\n\n // patch the overview tasks\n if (operationsByType.task?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.task)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing tasks and optimistically remove deleted ones\n // (deletes are reconciled via invalidatesTags once the request settles)\n patchOverviewTasks([...updatesToPatch, ...deleteOps], { state, dispatch }, patches)\n }\n\n // patch the overview folders (any other folders from foldersList)\n if (operationsByType.folder?.length) {\n // split operations by operation type\n const { delete: deleteOps, update } = splitByOpType(operationsByType.folder)\n // filter out updates that are in updateToPatch as we patch them later on\n const updatesToPatch = update.filter(\n (op) => !patchOperations.some((dep) => dep.entityId === op.entityId),\n )\n // update existing folders and optimistically remove deleted ones\n patchOverviewFolders([...updatesToPatch, ...deleteOps], { state, dispatch }, patches)\n }\n\n const patchExtraTasks = patchOperations.filter((op) => op.entityType === 'task')\n const patchExtraFolders = patchOperations.filter((op) => op.entityType === 'folder')\n\n if (patchExtraTasks.length) {\n // often used for updating inherited dependents\n patchOverviewTasks(patchExtraTasks, { state, dispatch }, patches)\n }\n\n if (patchExtraFolders.length) {\n // often used for updating inherited dependents\n patchOverviewFolders(patchExtraFolders, { state, dispatch }, patches)\n }\n\n patchFolderStatusInVersions(\n [...operationsByType.folder, ...patchExtraFolders],\n { state, dispatch },\n patches,\n )\n\n // patch the list items\n patchListItems([...operations, ...patchOperations], { state, dispatch }, patches)\n\n // patch versions\n if (operationsByType.version?.length) {\n patchVersions(operationsByType.version, { state, dispatch }, patches)\n }\n\n // patch products\n if (operationsByType.product?.length) {\n patchProducts(operationsByType.product, { state, dispatch }, patches)\n }\n\n // try to patch any details panels\n // first we patch the individual entities\n // then we patch the details panel cache\n const entityTags = operations.map((op) => ({\n id: op.entityId,\n type: op.entityType,\n }))\n const entitiesTags = entityTags.map((tag) => ({\n type: 'entities',\n id: tag.id,\n }))\n\n // invalidates the details panel cache so that it fetches all individual entities again (using it's updated cache)\n const invalidateEntryPanel = () =>\n dispatch(detailsPanelQueries.util.invalidateTags(entitiesTags))\n\n // the individual entities that are patched for the details panel\n // remember the details panel cache is made up of individual entity caches\n const detailsPanelEntityCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entityTags,\n )\n\n // the cache for the whole details panel\n const detailsPanelEntitiesCaches = detailsPanelQueries.util.selectInvalidatedBy(\n state,\n entitiesTags,\n )\n\n for (const entry of detailsPanelEntitiesCaches) {\n if (entry.endpointName !== 'getEntitiesDetailsPanel') continue\n const entitiesDetailsResult = dispatch(\n detailsPanelQueries.util.updateQueryData(\n entry.endpointName as 'getEntitiesDetailsPanel',\n entry.originalArgs,\n (draft) => {\n for (const entity of draft) {\n patchDetailsPanelEntity(operations, entity)\n }\n },\n ),\n )\n\n // add the patch to the list of patches\n patches.push(entitiesDetailsResult)\n }\n\n try {\n await queryFulfilled\n\n // Background refetch logic - runs after successful mutation\n // This ensures calculated attributes are up-to-date and entities are correctly filtered\n\n const taskOperations = operationsByType.task || []\n const folderOperations = operationsByType.folder || []\n const versionOperations = operationsByType.version || []\n const productOperations = operationsByType.product || []\n\n if (projectName) {\n if (taskOperations.length || folderOperations.length) {\n scheduleStatsRefetch(dispatch, projectName, [\n 'folderColumnStats',\n 'taskColumnStats',\n 'entityListItemsColumnStats',\n ])\n }\n if (versionOperations.length || productOperations.length) {\n scheduleStatsRefetch(dispatch, projectName, [\n 'productColumnStats',\n 'versionColumnStats',\n 'entityListItemsColumnStats',\n ])\n }\n }\n\n // Early exit if no operations\n if (taskOperations.length === 0 && folderOperations.length === 0) {\n return\n }\n\n // Extract updated entity IDs (always needed for refetch)\n const updatedTaskIds = getUpdatedEntityIds(taskOperations)\n const updatedFolderIds = getUpdatedEntityIds(folderOperations)\n\n // Get all active task list cache entries\n const overviewTaskTags = updatedTaskIds.map((id) => ({ type: 'overviewTask', id }))\n const tasksListInfiniteEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getTasksListInfinite')\n\n // Requirement: \"refetch the full data for the specific entity/entities\"\n // For each cache with its own filter, fetch entities and update that cache\n if (updatedTaskIds.length > 0 && projectName) {\n // Process getTasksListInfinite caches\n for (const entry of tasksListInfiniteEntries) {\n await refetchTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n\n // Process getOverviewTasksByFolders caches\n // Use selectInvalidatedBy to get only caches that contain the updated tasks\n const overviewTasksEntries = getOverviewApi.util\n .selectInvalidatedBy(state, overviewTaskTags)\n .filter((entry) => entry.endpointName === 'getOverviewTasksByFolders')\n\n for (const entry of overviewTasksEntries) {\n await refetchOverviewTasksForCacheEntry({\n dispatch,\n projectName,\n updatedTaskIds,\n cacheEntry: entry,\n })\n }\n }\n\n // Always refetch folders if they were updated (for calculated attributes)\n // Not conditional on affectsFilter - requirement says \"always refetch entities\"\n // (deletes are reconciled via invalidatesTags)\n if (updatedFolderIds.length > 0 && projectName) {\n dispatch(foldersQueries.util.invalidateTags([{ type: 'folder', id: 'LIST' }]))\n }\n } catch (error) {\n // undo all patches if there is an error\n for (const patch of patches) {\n patch.undo()\n }\n\n if (detailsPanelEntityCaches.length) {\n // we invalidate the tags for the detailsPanelEntityCaches that were patched\n // invalidate the details panel cache\n invalidateEntryPanel()\n }\n }\n },\n invalidatesTags: (_r, _e, { operationsRequestModel, projectName }) => {\n type Tags = { id: string; type: string }[]\n const userDashboardTags: Tags = [{ type: 'kanban', id: 'project-' + projectName }],\n taskProgressTags: Tags = [],\n entityListItemTags: Tags = [],\n tasksFolderTags: Tags = [],\n deletedEntityTags: Tags = [],\n entityActivityTags: Tags = []\n\n let hasAttribOp = false\n const deletedTypes = new Set<string>()\n operationsRequestModel.operations?.forEach((op) => {\n const { entityId } = op\n if (entityId) {\n taskProgressTags.push({ type: 'progress', id: entityId })\n // Invalidate list item cache for this entity to trigger background refetch\n entityListItemTags.push({ type: 'entityListItem', id: entityId })\n } else {\n // new entity created, so we should invalidate everything\n taskProgressTags.push({ type: 'progress', id: 'LIST' })\n }\n if ((op.data as any)?.attrib) hasAttribOp = true\n // own-edit activity events are sender-filtered on the websocket, so refetch open feeds\n if (\n op.type === 'update' &&\n entityId &&\n ['status', 'attrib', 'tags', 'assignees', `${op.entityType}Type`].some(\n (key) => (op.data as any)?.[key] !== undefined,\n )\n ) {\n entityActivityTags.push({ type: 'entityActivities', id: entityId })\n }\n if (op.type === 'delete' && entityId) {\n deletedTypes.add(op.entityType)\n deletedEntityTags.push({ type: op.entityType, id: entityId })\n // details panels showing the deleted entity\n deletedEntityTags.push({ type: 'entities', id: entityId })\n }\n })\n\n if (hasAttribOp) {\n tasksFolderTags.push({ type: 'tasksFolder', id: projectName })\n }\n\n // Deleted rows are removed optimistically; only server-side descendants need a refetch\n // (folder -> folders/tasks/products/versions, product -> versions).\n const invalidateList = new Set<string>()\n if (deletedTypes.has('folder')) {\n ;['folder', 'task', 'product', 'version'].forEach((t) => invalidateList.add(t))\n }\n if (deletedTypes.has('product')) invalidateList.add('version')\n\n if (invalidateList.has('folder')) deletedEntityTags.push({ type: 'folder', id: 'LIST' })\n if (invalidateList.has('task')) {\n deletedEntityTags.push(\n { type: 'overviewTask', id: 'LIST' },\n { type: 'overviewTask', id: projectName },\n )\n }\n if (invalidateList.has('product')) deletedEntityTags.push({ type: 'product', id: 'LIST' })\n if (invalidateList.has('version')) deletedEntityTags.push({ type: 'version', id: 'LIST' })\n\n return [\n ...userDashboardTags,\n ...taskProgressTags,\n ...entityListItemTags,\n ...tasksFolderTags,\n ...deletedEntityTags,\n ...entityActivityTags,\n ]\n },\n }),\n }),\n})\n\nexport const { useUpdateOverviewEntitiesMutation } = operationsApiEnhancedInjected\n"],"names":["updateEntityWithOperation","entity","operationData","key","existingLinks","newLinks","newLink","existingIndex","link","linksToDelete","linkId","getOverviewTaskTags","tasks","op","getOverviewFolderTags","folders","createLinkDeletionPatch","entityId","entityType","linkIds","deleteLinksFromEntities","entities","patchOverviewEntities","state","dispatch","patches","entitiesByType","acc","patchOverviewTasks","patchOverviewFolders","tags","taskEntries","getOverviewApi","deleteIds","removeDeletedTasks","tasksArrayDraft","i","entry","tasksPatch","draft","taskOperation","page","task","applyToDraft","patchTask","statsRefetchTimers","scheduleStatsRefetch","projectName","tagTypes","existing","type","folderEntries","foldersQueries","folderPatch","folderMap","folder","folderOperation","patchListItems","entries","entityListsQueriesGql","listItemsPatch","listOperation","item","splitByOpType","operations","operation","operationsEnhanced","operationsApi","operationsApiEnhancedInjected","build","arg","result","data","uniqueErrors","uniqueErrorCodes","e","operationsRequestModel","patchOperations","queryFulfilled","getState","operationsByType","deleteOps","update","updatesToPatch","dep","patchExtraTasks","patchExtraFolders","patchFolderStatusInVersions","patchVersions","patchProducts","entityTags","entitiesTags","tag","invalidateEntryPanel","detailsPanelQueries","detailsPanelEntityCaches","detailsPanelEntitiesCaches","entitiesDetailsResult","patchDetailsPanelEntity","taskOperations","folderOperations","versionOperations","productOperations","updatedTaskIds","getUpdatedEntityIds","updatedFolderIds","overviewTaskTags","id","tasksListInfiniteEntries","refetchTasksForCacheEntry","overviewTasksEntries","refetchOverviewTasksForCacheEntry","patch","_r","_e","userDashboardTags","taskProgressTags","entityListItemTags","tasksFolderTags","deletedEntityTags","entityActivityTags","hasAttribOp","deletedTypes","invalidateList","t","useUpdateOverviewEntitiesMutation"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("../../../util/pubsub.cjs.js");require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");const l=require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../addons/getAddons.cjs.js");const R=require("../addons/updateAddons.cjs.js"),h=(u,{productId:a,taskId:t,folderId:i,versionId:n},o)=>{const e=[];if(a&&e.push({type:"review",id:a}),t&&e.push({type:"review",id:t}),i&&e.push({type:"review",id:i}),o&&(a&&e.push({type:"viewer",id:a}),t&&e.push({type:"viewer",id:t}),i&&e.push({type:"viewer",id:i}),n&&e.push({type:"viewer",id:n}),e.push({type:"viewer",id:"LIST"})),n&&e.push({type:"review",id:n}),u){[...new Set(u.flatMap(r=>r?.productId||[]))].forEach(r=>{e.find(s=>s.id===r&&s.type==="review")||e.push({type:"review",id:r}),o&&!e.find(s=>s.id===r&&s.type==="viewer")&&e.push({type:"viewer",id:r})});const d=u.flatMap(r=>r?{type:"review",id:r.id}:[]);e.push(...d),o&&d.forEach(r=>{e.find(s=>s.id===r.id&&s.type==="viewer")||e.push({type:"viewer",id:r.id})});const p=u.flatMap(r=>r?r.reviewables?.flatMap(s=>[{type:"review",id:s.fileId},{type:"review",id:s.activityId}]):[]);e.push(...p)}return e},T=l.api.enhanceEndpoints({endpoints:{getReviewablesForVersion:{keepUnusedDataFor:1,providesTags:(u,a,{versionId:t})=>h([u],{versionId:t,productId:u?.productId}),async onCacheEntryAdded({versionId:u},{updateCachedData:a,cacheDataLoaded:t,cacheEntryRemoved:i,dispatch:n,getCacheEntry:o}){let e;try{await t;const f=(d,p)=>{if(d!=="reviewable.process")return;const r=p?.summary||{};if(r.versionId!==u)return;const s=o(),w=s.data?.reviewables?.findIndex(v=>v?.fileId===r.sourceFileId);if(w&&w!==-1&&p.status!=="finished"){const v=p?.progress||0;a(c=>{const q=c.reviewables;if(!q)return;const g=q[w].processing;q[w]={...q[w],processing:{...g,progress:v,eventId:p.id}}})}else console.log("Reviewable not found in cache, refreshing to get data:",r.sourceFileId,r.versionId),n(l.api.util.invalidateTags([{type:"review",id:r.versionId}])),p.status==="finished"&&s.data?.productId&&n(l.api.util.invalidateTags([{type:"viewer",id:s.data?.productId}]))};e=y.subscribe("reviewable.process",f)}catch{}await i,y.unsubscribe(e)}}}}),b=T.injectEndpoints({endpoints:u=>({getViewerReviewables:u.query({queryFn:async({productId:a,taskId:t,folderId:i,projectName:n},{dispatch:o})=>{let e;if(a?e=l.api.endpoints.getReviewablesForProduct.initiate({productId:a,projectName:n},{forceRefetch:!0}):t?e=l.api.endpoints.getReviewablesForTask.initiate({taskId:t,projectName:n},{forceRefetch:!0}):i&&(e=l.api.endpoints.getReviewablesForFolder.initiate({folderId:i,projectName:n},{forceRefetch:!0}),(await o(l.api.endpoints.getReviewablesForFolder.initiate({folderId:i,projectName:n},{forceRefetch:!0}))).error),!e)return{error:{status:"CUSTOM_ERROR",error:"No query found"}};const f=await o(e);if(f.error){const d=f.error;return console.error(d),{error:d}}else return{data:f.data}},providesTags:(a,t,i)=>h(a,i,!0),async onCacheEntryAdded({productId:a,taskId:t,folderId:i},{cacheDataLoaded:n,cacheEntryRemoved:o,dispatch:e,getCacheEntry:f}){let d;try{await n;const p=(r,s)=>{if(r!=="reviewable.process")return;const w=s?.summary||{};if(new Set(f().data?.map(c=>c.id)||[])?.has(w.versionId||"")&&s.status==="finished"){let c;a?c=a:t?c=t:i&&(c=i),console.log("Reviewable finished, refreshing to get data:",{id:c}),c&&e(l.api.util.invalidateTags([{type:"review",id:c}]))}};d=y.subscribe("reviewable.process",p)}catch{}await o,y.unsubscribe(d)}}),hasTranscoder:u.query({queryFn:async(a,{dispatch:t})=>{const i=await t(R.addonsQueries.endpoints.listAddons.initiate({details:!1}));return i.data?{data:i.data.addons.some(o=>o.name==="transcoder")}:i.error?(console.error(i.error),{data:!1}):{data:!1}}})})}),{useGetViewerReviewablesQuery:F,useGetReviewablesForVersionQuery:S,useHasTranscoderQuery:A}=b;exports.getReviewApi=b;exports.useGetReviewablesForVersionQuery=S;exports.useGetViewerReviewablesQuery=F;exports.useHasTranscoderQuery=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");require("uuid");require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");const w=require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("../actions/getActions.cjs.js");require("../activities/getActivities.cjs.js");require("../activities/updateReaction.cjs.js");require("../activities/getMentions.cjs.js");require("../activities/getCategories.cjs.js");require("../addons/getAddons.cjs.js");const m=require("../addons/updateAddons.cjs.js");require("../attributes/getAttributes.cjs.js");require("../attributes/updateAttributes.cjs.js");require("../authentication/getAuthentication.cjs.js");require("../bundles/getBundles.cjs.js");require("../bundles/updateBundles.cjs.js");require("../cloud/cloud.cjs.js");require("../columnStats/metricTargets.cjs.js");require("../columnStats/groupCounts.cjs.js");require("../config/getConfig.cjs.js");require("../config/updateConfig.cjs.js");require("../entities/getEntity.cjs.js");require("../entities/getEntityPanel.cjs.js");require("../overview/getOverview.cjs.js");require("../overview/updateOverview.cjs.js");require("../versions/getVersionsProducts.cjs.js");require("../links/getEntityLinks.cjs.js");require("../entities/updateEntity.cjs.js");require("../entityLists/getLists.cjs.js");require("../entityLists/updateLists.cjs.js");require("../entityLists/getListsAttributes.cjs.js");require("../entityLists/listItemsColumnStats.cjs.js");require("../entityLists/updateListsAttributes.cjs.js");require("../entityLists/listFolders.cjs.js");require("../folders/getFolders.cjs.js");require("../folders/getFolderDeleteInfo.cjs.js");require("../grouping/getGrouping.cjs.js");require("../links/updateLinks.cjs.js");require("../links/getLinks.cjs.js");require("../permissions/getPermissions.cjs.js");require("../products/createProduct.cjs.js");require("../products/getFolderProducts.cjs.js");require("../project/getProject.cjs.js");require("../project/updateProject.cjs.js");require("../projectFolders/projectFolders.cjs.js");require("./updateReview.cjs.js");require("../share/share.cjs.js");require("../system/getSystem.cjs.js");require("../tasks/getTasks.cjs.js");require("../tasks/updateTasks.cjs.js");require("../teams/getTeams.cjs.js");require("../userDashboard/getUserDashboard.cjs.js");require("../users/getUsers.cjs.js");require("../users/updateUsers.cjs.js");require("../users/guests.cjs.js");require("../versions/updateVersions.cjs.js");require("../views/getViews.cjs.js");require("../views/updateViews.cjs.js");require("../watchers/getWatchers.cjs.js");require("../uris/getUris.cjs.js");const R=require("../../../util/realtimeUpdatesUtils.cjs.js"),y=require("../../../util/pubsub.cjs.js"),g=(o,{productId:a,taskId:s,folderId:i,versionId:n},d)=>{const e=[];if(a&&e.push({type:"review",id:a}),s&&e.push({type:"review",id:s}),i&&e.push({type:"review",id:i}),d&&(a&&e.push({type:"viewer",id:a}),s&&e.push({type:"viewer",id:s}),i&&e.push({type:"viewer",id:i}),n&&e.push({type:"viewer",id:n}),e.push({type:"viewer",id:"LIST"})),n&&e.push({type:"review",id:n}),o){[...new Set(o.flatMap(r=>r?.productId||[]))].forEach(r=>{e.find(t=>t.id===r&&t.type==="review")||e.push({type:"review",id:r}),d&&!e.find(t=>t.id===r&&t.type==="viewer")&&e.push({type:"viewer",id:r})});const u=o.flatMap(r=>r?{type:"review",id:r.id}:[]);e.push(...u),d&&u.forEach(r=>{e.find(t=>t.id===r.id&&t.type==="viewer")||e.push({type:"viewer",id:r.id})});const l=o.flatMap(r=>r?r.reviewables?.flatMap(t=>[{type:"review",id:t.fileId},{type:"review",id:t.activityId}]):[]);e.push(...l)}return e},E=w.api.enhanceEndpoints({endpoints:{getReviewablesForVersion:{keepUnusedDataFor:1,providesTags:(o,a,{versionId:s})=>g([o],{versionId:s,productId:o?.productId}),async onCacheEntryAdded({versionId:o},{updateCachedData:a,cacheDataLoaded:s,cacheEntryRemoved:i,dispatch:n,getCacheEntry:d}){let e;const p=R.createRealtimeBatcher(u=>{const l=d(),r=[],t=new Set,f=new Set;u.forEach(({message:q})=>{const c=q?.summary||{};if(c.versionId!==o)return;const v=l.data?.reviewables?.findIndex(h=>h?.fileId===c.sourceFileId);if(q.status!=="finished"&&v!==void 0&&v!==-1){r.push({index:v,progress:q?.progress||0,eventId:q.id});return}else t.add(c.versionId),q.status==="finished"&&l.data?.productId&&f.add(l.data.productId)}),r.length&&a(q=>{const c=q.reviewables;c&&r.forEach(({index:v,progress:h,eventId:F})=>{const b=c[v];b&&(c[v]={...b,processing:{...b.processing,progress:h,eventId:F}})})}),t.size&&n(w.api.util.invalidateTags([...t].map(q=>({type:"review",id:q})))),f.size&&n(w.api.util.invalidateTags([...f].map(q=>({type:"viewer",id:q}))))},({message:u})=>u?.summary?.sourceFileId||u?.id||"",500);try{await s;const u=(l,r)=>{r?.summary?.versionId===o&&p.add({message:r})};e=y.subscribe("reviewable.process",u)}catch{}await i,y.unsubscribe(e),p.clear()}}}}),T=E.injectEndpoints({endpoints:o=>({getViewerReviewables:o.query({keepUnusedDataFor:5,queryFn:async({productId:a,taskId:s,folderId:i,projectName:n},{dispatch:d})=>{let e;if(a?e=w.api.endpoints.getReviewablesForProduct.initiate({productId:a,projectName:n},{forceRefetch:!0}):s?e=w.api.endpoints.getReviewablesForTask.initiate({taskId:s,projectName:n},{forceRefetch:!0}):i&&(e=w.api.endpoints.getReviewablesForFolder.initiate({folderId:i,projectName:n},{forceRefetch:!0}),(await d(w.api.endpoints.getReviewablesForFolder.initiate({folderId:i,projectName:n},{forceRefetch:!0}))).error),!e)return{error:{status:"CUSTOM_ERROR",error:"No query found"}};const p=await d(e);if(p.error){const u=p.error;return console.error(u),{error:u}}else return{data:p.data}},providesTags:(a,s,i)=>g(a,i,!0),async onCacheEntryAdded({productId:a,taskId:s,folderId:i},{cacheDataLoaded:n,cacheEntryRemoved:d,dispatch:e,getCacheEntry:p}){let u;const l=R.createRealtimeBatcher(r=>{const t=new Set(p().data?.map(c=>c.id)||[]),f=a||s||i;if(!f)return;r.some(({message:c})=>c.status==="finished"&&t.has(c?.summary?.versionId||""))&&e(w.api.util.invalidateTags([{type:"review",id:f}]))},({message:r})=>r?.summary?.versionId||r?.id||"");try{await n;const r=(t,f)=>{f?.status==="finished"&&l.add({message:f})};u=y.subscribe("reviewable.process",r)}catch{}await d,y.unsubscribe(u),l.clear()}}),hasTranscoder:o.query({queryFn:async(a,{dispatch:s})=>{const i=await s(m.addonsQueries.endpoints.listAddons.initiate({details:!1}));return i.data?{data:i.data.addons.some(d=>d.name==="transcoder")}:i.error?(console.error(i.error),{data:!1}):{data:!1}}})})}),{useGetViewerReviewablesQuery:M,useGetReviewablesForVersionQuery:S,useHasTranscoderQuery:V}=T;exports.getReviewApi=T;exports.useGetReviewablesForVersionQuery=S;exports.useGetViewerReviewablesQuery=M;exports.useHasTranscoderQuery=V;
2
2
  //# sourceMappingURL=getReview.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getReview.cjs.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import PubSub from '@shared/util/pubsub'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '../addons'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport { getReviewApi }\n"],"names":["getViewerReviewablesTags","result","productId","taskId","folderId","versionId","viewer","tags","version","tag","versionTags","t","reviewableTags","reviewable","enhancedApi","reviewablesApi","_error","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","token","handlePubSub","topic","message","summary","cache","index","r","progress","data","reviewables","processing","PubSub","getReviewApi","build","projectName","query","error","args","id","_arg","res","addonsQueries","addon","useGetViewerReviewablesQuery","useGetReviewablesForVersionQuery","useHasTranscoderQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getReview.cjs.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { createRealtimeBatcher, PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '../addons'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n\n // handle\n const mediaProcessingBatcher = createRealtimeBatcher(\n (messages: { message: any }[]) => {\n const cache = getCacheEntry()\n const progressUpdates: { index: number; progress: number; eventId: string }[] = []\n const reviewVersionIds = new Set<string>()\n const viewerProductIds = new Set<string>()\n\n messages.forEach(({ message }) => {\n const summary = (message?.summary as Summary) || {}\n\n // check if the message is for the current versionId\n if (summary.versionId !== versionId) return\n\n // find the index of the reviewable in the cache data\n const index = cache.data?.reviewables?.findIndex(\n (reviewable: ReviewableModel) => reviewable?.fileId === summary.sourceFileId,\n )\n\n // if the message is a progress update, update the progress in the cache\n if (message.status !== 'finished' && index !== undefined && index !== -1) {\n progressUpdates.push({\n index,\n progress: message?.progress || 0,\n eventId: message.id,\n })\n return\n } else {\n // if the message is finished, invalidate the cache for the versionId and productId\n reviewVersionIds.add(summary.versionId)\n if (message.status === 'finished' && cache.data?.productId) {\n viewerProductIds.add(cache.data.productId)\n }\n }\n })\n\n // for each progress update, update the cache data with the new progress\n if (progressUpdates.length) {\n updateCachedData((data) => {\n const reviewables = data.reviewables\n if (!reviewables) return\n progressUpdates.forEach(({ index, progress, eventId }) => {\n const reviewable = reviewables[index]\n if (!reviewable) return\n reviewables[index] = {\n ...reviewable,\n processing: {\n ...reviewable.processing,\n progress,\n eventId,\n },\n }\n })\n })\n }\n\n // invalidate the cache for the versionId and productId if there are any finished messages\n if (reviewVersionIds.size) {\n dispatch(\n reviewablesApi.util.invalidateTags(\n [...reviewVersionIds].map((id) => ({ type: 'review', id })),\n ),\n )\n }\n\n // invalidate the cache for the productId if there are any finished messages\n if (viewerProductIds.size) {\n dispatch(\n reviewablesApi.util.invalidateTags(\n [...viewerProductIds].map((id) => ({ type: 'viewer', id })),\n ),\n )\n }\n },\n ({ message }) => message?.summary?.sourceFileId || message?.id || '',\n 500,\n )\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n // handle pubsub messages for media processing events like conversion progress\n const handleMediaProcessingEvent = (_topic: string, message: any) => {\n if (message?.summary?.versionId !== versionId) return\n mediaProcessingBatcher.add({ message })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handleMediaProcessingEvent)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n mediaProcessingBatcher.clear()\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n keepUnusedDataFor: 5,\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n const mediaProcessingBatcher = createRealtimeBatcher(\n (messages: { message: any }[]) => {\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n const entityId = productId || taskId || folderId\n if (!entityId) return\n\n const shouldInvalidate = messages.some(\n ({ message }) =>\n message.status === 'finished' &&\n versionIds.has((message?.summary as Summary)?.versionId || ''),\n )\n if (shouldInvalidate) {\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: entityId }]))\n }\n },\n ({ message }) => message?.summary?.versionId || message?.id || '',\n )\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handleMediaProcessingEvent = (_topic: string, message: any) => {\n if (message?.status !== 'finished') return\n mediaProcessingBatcher.add({ message })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handleMediaProcessingEvent)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n mediaProcessingBatcher.clear()\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport { getReviewApi }\n"],"names":["getViewerReviewablesTags","result","productId","taskId","folderId","versionId","viewer","tags","version","tag","versionTags","reviewableTags","reviewable","enhancedApi","reviewablesApi","_error","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","token","mediaProcessingBatcher","createRealtimeBatcher","messages","cache","progressUpdates","reviewVersionIds","viewerProductIds","message","summary","index","data","reviewables","progress","eventId","id","handleMediaProcessingEvent","_topic","PubSub","getReviewApi","build","projectName","query","error","args","versionIds","entityId","_arg","res","addonsQueries","addon","useGetViewerReviewablesQuery","useGetReviewablesForVersionQuery","useHasTranscoderQuery"],"mappings":"oxIAYMA,EAA2B,CAC/BC,EACA,CACE,UAAAC,EACA,OAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAMAC,IACG,CACH,MAAMC,EAAuC,CAAA,EAsB7C,GAnBIL,KAAgB,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAW,EAEtDC,KAAa,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAQ,EAChDC,KAAe,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAU,EAEpDE,IAEEJ,KAAgB,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAW,EAEtDC,KAAa,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAQ,EAChDC,KAAe,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAU,EACpDC,KAAgB,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAW,EAE1DE,EAAK,KAAK,CAAE,KAAM,SAAU,GAAI,OAAQ,GAItCF,KAAgB,KAAK,CAAE,KAAM,SAAU,GAAIA,EAAW,EAEtDJ,EAAQ,CAEmB,CAAC,GAAG,IAAI,IAAIA,EAAO,QAASO,GAAYA,GAAS,WAAa,CAAA,CAAE,CAAC,CAAC,EAGpF,QAASN,GAAc,CAC3BK,EAAK,KAAME,GAAQA,EAAI,KAAOP,GAAaO,EAAI,OAAS,QAAQ,GACnEF,EAAK,KAAK,CAAE,KAAM,SAAU,GAAIL,EAAW,EAEzCI,GAAU,CAACC,EAAK,KAAME,GAAQA,EAAI,KAAOP,GAAaO,EAAI,OAAS,QAAQ,GAC7EF,EAAK,KAAK,CAAE,KAAM,SAAU,GAAIL,EAAW,CAC/C,CAAC,EAED,MAAMQ,EAAcT,EAAO,QAASO,GAClCA,EACI,CACE,KAAM,SACN,GAAIA,EAAQ,EAAA,EAEd,CAAA,CAAC,EAGPD,EAAK,KAAK,GAAGG,CAAW,EAGpBJ,GACFI,EAAY,QAASD,GAAQ,CACtBF,EAAK,KAAM,GAAM,EAAE,KAAOE,EAAI,IAAM,EAAE,OAAS,QAAQ,GAC1DF,EAAK,KAAK,CAAE,KAAM,SAAU,GAAIE,EAAI,GAAI,CAE5C,CAAC,EAGH,MAAME,EAAiBV,EAAO,QAASO,GACrCA,EACIA,EAAQ,aAAa,QAASI,GAAe,CAC3C,CACE,KAAM,SACN,GAAIA,EAAW,MAAA,EAEjB,CACE,KAAM,SACN,GAAIA,EAAW,UAAA,CACjB,CACD,EACD,CAAA,CAAC,EAGPL,EAAK,KAAK,GAAGI,CAAc,CAC7B,CAEA,OAAOJ,CACT,EAEMM,EAAcC,EAAAA,IAAe,iBAA+C,CAChF,UAAW,CACT,yBAA0B,CACxB,kBAAmB,EACnB,aAAc,CAACb,EAAQc,EAAQ,CAAE,UAAAV,KAC/BL,EAAyB,CAACC,CAAM,EAAG,CAAE,UAAAI,EAAW,UAAWJ,GAAQ,UAAW,EAEhF,MAAM,kBACJ,CAAE,UAAAI,CAAA,EACF,CAAE,iBAAAW,EAAkB,gBAAAC,EAAiB,kBAAAC,EAAmB,SAAAC,EAAU,cAAAC,GAClE,CACA,IAAIC,EAGJ,MAAMC,EAAyBC,EAAAA,sBAC5BC,GAAiC,CAChC,MAAMC,EAAQL,EAAA,EACRM,EAA0E,CAAA,EAC1EC,MAAuB,IACvBC,MAAuB,IAE7BJ,EAAS,QAAQ,CAAC,CAAE,QAAAK,KAAc,CAChC,MAAMC,EAAWD,GAAS,SAAuB,CAAA,EAGjD,GAAIC,EAAQ,YAAczB,EAAW,OAGrC,MAAM0B,EAAQN,EAAM,MAAM,aAAa,UACpCb,GAAgCA,GAAY,SAAWkB,EAAQ,YAAA,EAIlE,GAAID,EAAQ,SAAW,YAAcE,IAAU,QAAaA,IAAU,GAAI,CACxEL,EAAgB,KAAK,CACnB,MAAAK,EACA,SAAUF,GAAS,UAAY,EAC/B,QAASA,EAAQ,EAAA,CAClB,EACD,MACF,MAEEF,EAAiB,IAAIG,EAAQ,SAAS,EAClCD,EAAQ,SAAW,YAAcJ,EAAM,MAAM,WAC/CG,EAAiB,IAAIH,EAAM,KAAK,SAAS,CAG/C,CAAC,EAGGC,EAAgB,QAClBV,EAAkBgB,GAAS,CACzB,MAAMC,EAAcD,EAAK,YACpBC,GACLP,EAAgB,QAAQ,CAAC,CAAE,MAAAK,EAAO,SAAAG,EAAU,QAAAC,KAAc,CACxD,MAAMvB,EAAaqB,EAAYF,CAAK,EAC/BnB,IACLqB,EAAYF,CAAK,EAAI,CACnB,GAAGnB,EACH,WAAY,CACV,GAAGA,EAAW,WACd,SAAAsB,EACA,QAAAC,CAAA,CACF,EAEJ,CAAC,CACH,CAAC,EAICR,EAAiB,MACnBR,EACEL,EAAAA,IAAe,KAAK,eAClB,CAAC,GAAGa,CAAgB,EAAE,IAAKS,IAAQ,CAAE,KAAM,SAAU,GAAAA,GAAK,CAAA,CAC5D,EAKAR,EAAiB,MACnBT,EACEL,EAAAA,IAAe,KAAK,eAClB,CAAC,GAAGc,CAAgB,EAAE,IAAKQ,IAAQ,CAAE,KAAM,SAAU,GAAAA,GAAK,CAAA,CAC5D,CAGN,EACA,CAAC,CAAE,QAAAP,CAAA,IAAcA,GAAS,SAAS,cAAgBA,GAAS,IAAM,GAClE,GAAA,EAEF,GAAI,CAEF,MAAMZ,EAGN,MAAMoB,EAA6B,CAACC,EAAgBT,IAAiB,CAC/DA,GAAS,SAAS,YAAcxB,GACpCiB,EAAuB,IAAI,CAAE,QAAAO,EAAS,CACxC,EAGAR,EAAQkB,EAAO,UAAU,qBAAsBF,CAA0B,CAC3E,MAAQ,CAGR,CAEA,MAAMnB,EAENqB,EAAO,YAAYlB,CAAK,EACxBC,EAAuB,MAAA,CACzB,CAAA,CACF,CAEJ,CAAC,EAEKkB,EAAe3B,EAAY,gBAAgB,CAC/C,UAAY4B,IAAW,CAGrB,qBAAsBA,EAAM,MAA4D,CACtF,kBAAmB,EACnB,QAAS,MAAO,CAAE,UAAAvC,EAAW,OAAAC,EAAQ,SAAAC,EAAU,YAAAsC,CAAA,EAAe,CAAE,SAAAvB,KAAe,CAC7E,IAAIwB,EAiCJ,GA/BIzC,EACFyC,EAAQ7B,EAAAA,IAAe,UAAU,yBAAyB,SACxD,CACE,UAAAZ,EACA,YAAAwC,CAAA,EAEF,CAAE,aAAc,EAAA,CAAK,EAEdvC,EACTwC,EAAQ7B,EAAAA,IAAe,UAAU,sBAAsB,SACrD,CAAE,OAAAX,EAAQ,YAAAuC,CAAA,EACV,CAAE,aAAc,EAAA,CAAK,EAEdtC,IACTuC,EAAQ7B,EAAAA,IAAe,UAAU,wBAAwB,SACvD,CACE,SAAAV,EACA,YAAAsC,CAAA,EAEF,CAAE,aAAc,EAAA,CAAK,GAGR,MAAMvB,EACnBL,MAAe,UAAU,wBAAwB,SAC/C,CAAE,SAAAV,EAAU,YAAAsC,CAAA,EACZ,CAAE,aAAc,EAAA,CAAK,CACvB,GAEK,OAGL,CAACC,EACH,MAAO,CACL,MAAO,CAAE,OAAQ,eAAgB,MAAO,gBAAA,CAAiB,EAG7D,MAAM1C,EAAS,MAAMkB,EAASwB,CAAK,EAEnC,GAAI1C,EAAO,MAAO,CAChB,MAAM2C,EAAQ3C,EAAO,MAErB,eAAQ,MAAM2C,CAAK,EACZ,CAAE,MAAAA,CAAA,CACX,KAEE,OAAO,CAAE,KADI3C,EAAO,IACX,CAEb,EACA,aAAc,CAACA,EAAQc,EAAQ8B,IAAS7C,EAAyBC,EAAQ4C,EAAM,EAAI,EACnF,MAAM,kBACJ,CAAE,UAAA3C,EAAW,OAAAC,EAAQ,SAAAC,CAAA,EACrB,CAAE,gBAAAa,EAAiB,kBAAAC,EAAmB,SAAAC,EAAU,cAAAC,GAChD,CACA,IAAIC,EACJ,MAAMC,EAAyBC,EAAAA,sBAC5BC,GAAiC,CAChC,MAAMsB,EAAa,IAAI,IAAI1B,EAAA,EAAgB,MAAM,IAAKZ,GAAYA,EAAQ,EAAE,GAAK,CAAA,CAAE,EAC7EuC,EAAW7C,GAAaC,GAAUC,EACxC,GAAI,CAAC2C,EAAU,OAEUvB,EAAS,KAChC,CAAC,CAAE,QAAAK,CAAA,IACDA,EAAQ,SAAW,YACnBiB,EAAW,IAAKjB,GAAS,SAAqB,WAAa,EAAE,CAAA,GAG/DV,EAASL,EAAAA,IAAe,KAAK,eAAe,CAAC,CAAE,KAAM,SAAU,GAAIiC,CAAA,CAAU,CAAC,CAAC,CAEnF,EACA,CAAC,CAAE,QAAAlB,CAAA,IAAcA,GAAS,SAAS,WAAaA,GAAS,IAAM,EAAA,EAEjE,GAAI,CAEF,MAAMZ,EAEN,MAAMoB,EAA6B,CAACC,EAAgBT,IAAiB,CAC/DA,GAAS,SAAW,YACxBP,EAAuB,IAAI,CAAE,QAAAO,EAAS,CACxC,EAGAR,EAAQkB,EAAO,UAAU,qBAAsBF,CAA0B,CAC3E,MAAQ,CAGR,CAEA,MAAMnB,EAENqB,EAAO,YAAYlB,CAAK,EACxBC,EAAuB,MAAA,CACzB,CAAA,CACD,EACD,cAAemB,EAAM,MAA0B,CAC7C,QAAS,MAAOO,EAAM,CAAE,SAAA7B,KAAe,CAErC,MAAM8B,EAAM,MAAM9B,EAAS+B,EAAAA,cAAc,UAAU,WAAW,SAAS,CAAE,QAAS,EAAA,CAAO,CAAC,EAE1F,OAAID,EAAI,KAGC,CAAE,KAFaA,EAAI,KAAK,OAAO,KAAME,GAAUA,EAAM,OAAS,YAAY,CAElE,EACNF,EAAI,OACb,QAAQ,MAAMA,EAAI,KAAK,EAChB,CAAE,KAAM,EAAA,GACH,CAAE,KAAM,EAAA,CACxB,CAAA,CACD,CAAA,EAEL,CAAC,EAEY,CACX,6BAAAG,EACA,iCAAAC,EACA,sBAAAC,CACF,EAAId"}