@ynput/ayon-frontend-shared 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1096) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -201
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +248 -512
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -233
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +83 -82
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.es.js +32 -130
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/shared/src/api/generated/graphql.cjs.js +8 -7
  17. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  18. package/dist/shared/src/api/generated/graphql.es.js +18 -17
  19. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  20. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  22. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  23. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  24. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  25. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  27. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  28. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  29. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +55 -151
  35. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  44. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  45. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  47. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
  49. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  53. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  54. package/dist/shared/src/api/queries/entityLists/getLists.es.js +67 -118
  55. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  59. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  65. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  66. package/dist/shared/src/api/queries/folders/getFolders.es.js +68 -119
  67. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  69. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
  71. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/overview/getOverview.es.js +229 -282
  77. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  85. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
  89. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  94. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  95. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  96. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +88 -141
  97. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  98. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  99. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  101. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  102. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +30 -80
  103. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  105. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  107. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  114. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  115. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  116. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  117. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  118. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  119. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  120. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  121. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  122. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  123. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  124. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  125. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
  127. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  128. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  129. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  130. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  131. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  132. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  133. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  134. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  135. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  136. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  137. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +26 -182
  139. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -195
  143. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  145. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  146. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
  147. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  149. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  153. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  155. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  167. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  169. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  171. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  172. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  173. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  174. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +12 -314
  175. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  178. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -273
  179. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  180. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  181. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  182. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -335
  183. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  184. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  185. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  186. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  187. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  188. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -310
  189. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  190. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  191. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  192. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  193. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  194. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  195. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  196. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -293
  197. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  198. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  199. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  200. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  201. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  202. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  203. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  204. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  205. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  206. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  207. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  208. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  209. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -346
  210. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  211. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  212. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  213. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -212
  214. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  215. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  216. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  217. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
  218. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  219. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  220. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  221. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -185
  222. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  223. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  224. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  225. package/dist/shared/src/components/Menu/Menu.es.js +48 -343
  226. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  227. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  228. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  229. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -316
  230. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  231. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  232. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  233. package/dist/shared/src/components/Menu/MenuList.es.js +74 -373
  234. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  235. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  236. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  237. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
  238. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  239. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  240. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  241. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -346
  242. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  243. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  244. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  245. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
  246. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  247. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  248. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  249. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +74 -367
  250. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  251. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  252. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  253. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
  254. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  255. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  256. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  257. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -334
  258. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  259. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  260. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  261. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -331
  262. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  263. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  264. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  265. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
  266. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  267. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  268. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  269. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
  270. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  271. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  272. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  273. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -365
  274. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  275. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  276. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  277. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -316
  278. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  279. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  280. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  281. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  282. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  283. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  284. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  285. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -326
  286. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  287. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  288. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  289. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  290. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  291. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
  292. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  293. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  294. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  295. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
  296. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  297. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  298. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  299. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
  300. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  301. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  302. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  303. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
  304. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  305. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  306. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  307. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  308. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  309. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  310. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  311. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
  312. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  313. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  314. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  315. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  316. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  317. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  318. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  319. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  320. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  321. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  322. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  323. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
  324. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  325. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  326. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  327. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -262
  328. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  329. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  330. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  331. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  332. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  333. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  334. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -210
  336. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  337. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  339. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  340. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/Actions/Actions.es.js +51 -250
  342. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  343. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  345. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  346. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -323
  348. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  349. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  351. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +143 -327
  356. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  358. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -329
  360. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -236
  364. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -255
  368. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  370. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
  372. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  374. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
  376. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  378. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  380. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  382. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
  384. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  388. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  400. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
  402. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  404. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -217
  406. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  408. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -323
  410. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  412. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -307
  414. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  424. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  426. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
  432. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  433. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  434. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
  436. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  437. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  438. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -324
  440. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  441. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  442. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
  444. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  445. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  446. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
  448. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  449. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  450. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  452. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  453. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  454. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
  456. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  457. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  458. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  460. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  461. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  463. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  464. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/Feed/Feed.es.js +65 -245
  466. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  467. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  469. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  470. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -309
  472. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  473. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  474. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -421
  476. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  477. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  478. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -317
  480. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  481. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  482. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  484. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  485. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  486. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
  488. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  489. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  491. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  492. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -372
  494. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  495. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  498. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
  500. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  502. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -324
  504. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  506. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  508. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  510. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
  512. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  514. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  516. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  518. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  519. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  520. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  521. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  524. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  526. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
  528. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
  532. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  534. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -310
  536. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  538. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
  540. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  542. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  544. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  547. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  548. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  549. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  551. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  552. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  554. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  555. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  557. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  558. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  559. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
  561. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  562. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  563. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +44 -177
  565. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  566. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  567. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -343
  569. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  570. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  572. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  574. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  575. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
  577. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  578. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  580. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  581. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  582. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
  583. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +590 -859
  587. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +245 -391
  591. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -375
  595. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -204
  599. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +27 -124
  603. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  605. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  607. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
  611. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  613. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +243 -441
  615. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
  619. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
  623. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
  627. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +71 -245
  631. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  634. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  642. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
  646. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  647. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +59 -233
  650. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +74 -248
  654. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +147 -439
  658. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +23 -197
  662. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -206
  666. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -332
  670. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +135 -335
  674. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -203
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -204
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -282
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -232
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -198
  696. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +29 -203
  700. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -467
  704. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  706. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
  708. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  714. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  718. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  724. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  728. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  730. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
  732. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  734. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +113 -398
  736. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  738. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
  740. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
  744. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
  746. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  748. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  752. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  753. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
  754. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  755. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  756. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
  758. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  760. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -202
  762. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  764. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +36 -333
  766. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  768. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
  770. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  772. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +80 -176
  774. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  776. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  778. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  779. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  780. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  781. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -217
  782. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  783. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  784. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  785. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -527
  786. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  787. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  788. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  789. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -367
  790. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  791. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  792. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  793. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
  794. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  795. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  796. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  797. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
  798. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  799. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  800. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  801. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -370
  802. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  803. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  804. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  805. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -228
  806. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  807. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  808. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  809. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
  810. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  811. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  812. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  813. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -309
  814. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  815. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  816. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  817. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -311
  818. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  819. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  820. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  821. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
  822. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  823. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  824. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  825. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
  826. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  827. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  828. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  829. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
  830. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  831. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  832. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
  834. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  835. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  836. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
  838. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  839. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  840. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  841. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  842. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  843. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  844. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  846. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  847. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  848. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  849. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  850. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  851. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -336
  852. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  853. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  854. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  855. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -354
  856. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  857. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  858. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  859. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
  860. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  861. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  862. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  863. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +59 -262
  864. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  865. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  866. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  867. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  868. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  869. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  870. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  871. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  872. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  873. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  874. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  875. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  876. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  877. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -216
  878. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  879. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  880. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  881. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  882. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  883. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  884. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  885. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  886. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  887. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  888. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  889. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  890. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  891. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  892. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  893. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  894. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  895. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  896. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  897. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -362
  898. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  899. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  900. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  901. package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
  902. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  903. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  904. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  905. package/dist/shared/src/context/PowerpackContext.es.js +42 -344
  906. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  907. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  908. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  909. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -231
  910. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  911. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  912. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  913. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  914. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  915. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -324
  916. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  917. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  918. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  919. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  920. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  921. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  922. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  923. package/dist/shared/src/context/UriContext.es.js +2 -2
  924. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  925. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  926. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  927. package/dist/shared/src/context/WebsocketContext.es.js +28 -229
  928. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  929. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  930. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  931. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
  932. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  933. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  934. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  935. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -314
  936. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  937. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  938. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  939. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -333
  940. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  941. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  942. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  943. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  944. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  945. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  946. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  947. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  948. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  949. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -212
  950. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  951. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  952. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  953. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  954. package/dist/shared/src/util/checkName.es.js.map +1 -1
  955. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  956. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  957. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  958. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  959. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  960. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  961. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  962. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  963. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  964. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  965. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  966. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  967. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  968. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  969. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  970. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  971. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  972. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  973. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  974. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  975. package/dist/shared/src/util/parseFilename.es.js +8 -0
  976. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  977. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  978. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  979. package/dist/types/api/base/index.d.ts +1 -1
  980. package/dist/types/api/generated/graphql.d.ts +5 -2
  981. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  982. package/dist/types/api/queries/activities/getActivities.d.ts +4 -2
  983. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  984. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
  985. package/dist/types/api/queries/entities/getEntity.d.ts +2 -1
  986. package/dist/types/api/queries/entities/getEntityPanel.d.ts +2 -1
  987. package/dist/types/api/queries/entities/updateEntity.d.ts +2 -1
  988. package/dist/types/api/queries/entityLists/getLists.d.ts +305 -305
  989. package/dist/types/api/queries/overview/getOverview.d.ts +35 -18
  990. package/dist/types/api/queries/project/getProject.d.ts +62 -61
  991. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  992. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +2 -1
  993. package/dist/types/api/queries/users/getUsers.d.ts +2 -1
  994. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +4 -2
  995. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  996. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  997. package/dist/types/components/Menu/Menu.d.ts +1 -1
  998. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  999. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1000. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
  1001. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1002. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1003. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1004. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
  1005. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1006. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1007. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1008. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1009. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1010. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  1011. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1012. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1013. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1014. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1015. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1016. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1017. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1018. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1019. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1020. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1021. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1022. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1023. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1024. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1025. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1026. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1027. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1028. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1029. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1030. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1031. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1032. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1033. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1034. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1035. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1036. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1037. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1038. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1039. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1040. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1041. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1042. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1043. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1044. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1045. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1046. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
  1047. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  1048. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1049. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1050. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1051. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1052. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1053. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1054. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1055. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1056. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1057. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1058. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1059. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1060. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1061. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1062. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1063. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1064. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1065. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1066. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1067. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1068. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1069. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1070. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1071. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1072. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1073. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1074. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1075. package/dist/types/containers/Views/types.d.ts +1 -1
  1076. package/dist/types/context/AddonContext.d.ts +1 -1
  1077. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1078. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1079. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1080. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1081. package/dist/types/util/buildHierarchicalTableRows.d.ts +1 -1
  1082. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1083. package/dist/types/util/getBundleMode.d.ts +1 -1
  1084. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1085. package/dist/types/util/index.d.ts +2 -0
  1086. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1087. package/dist/types/util/parseFilename.d.ts +1 -0
  1088. package/dist/types/util/uriUtils.d.ts +1 -1
  1089. package/dist/util.cjs.js +1 -1
  1090. package/dist/util.es.js +24 -20
  1091. package/dist/util.es.js.map +1 -1
  1092. package/package.json +1 -1
  1093. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1094. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1095. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1096. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getActions.cjs.js","sources":["../../../../../../src/api/queries/actions/getActions.ts"],"sourcesContent":["import {\n actionsApi,\n ConfigureActionApiArg,\n ConfigureActionApiResponse,\n ListAvailableActionsForContextApiArg,\n ListAvailableActionsForContextApiResponse,\n} from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = actionsApi.enhanceEndpoints({\n endpoints: {\n executeAction: {},\n listAvailableActionsForContext: {\n transformErrorResponse: (error: any) => error.data?.detail || 'Unknown error',\n },\n },\n})\n\nconst injectedActionsApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getActionsFromContext: build.query<\n ListAvailableActionsForContextApiResponse,\n ListAvailableActionsForContextApiArg\n >({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(\n actionsApi.endpoints.listAvailableActionsForContext.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n },\n providesTags: (result, _error, args) => {\n const baseTags = [{ type: 'actions', id: 'LIST' }]\n const argsTags = args.actionContext.entityIds?.map((id) => ({ type: 'actions', id })) || []\n const actionTags =\n result?.actions?.map((action) => ({ type: 'actions', id: action.identifier })) || []\n return [...baseTags, ...argsTags, ...actionTags]\n },\n }),\n\n // Action configuration\n\n getActionConfig: build.query<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n\n providesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n setActionConfig: build.mutation<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n invalidatesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n // End of endpoints\n }),\n})\n\nexport const {\n useGetActionsFromContextQuery,\n useLazyGetActionsFromContextQuery,\n useExecuteActionMutation,\n useGetActionConfigQuery,\n useSetActionConfigMutation,\n} = injectedActionsApi\nexport { injectedActionsApi as actionsQueries }\n"],"names":["enhancedApi","actionsApi","error","injectedActionsApi","build","args","dispatch","res","result","_error","baseTags","argsTags","id","actionTags","action","useGetActionsFromContextQuery","useLazyGetActionsFromContextQuery","useExecuteActionMutation","useGetActionConfigQuery","useSetActionConfigMutation"],"mappings":"oxDASA,MAAMA,EAAcC,EAAAA,IAAW,iBAAiB,CAC9C,UAAW,CACT,cAAe,CAAA,EACf,+BAAgC,CAC9B,uBAAyBC,GAAeA,EAAM,MAAM,QAAU,eAAA,CAChE,CAEJ,CAAC,EAEKC,EAAqBH,EAAY,gBAAgB,CACrD,UAAYI,IAAW,CACrB,sBAAuBA,EAAM,MAG3B,CACA,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAChBL,EAAAA,IAAW,UAAU,+BAA+B,SAASI,CAAI,CAAA,EAGnE,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAGf,CAAE,KAAMA,EAAI,IAAA,CACrB,EACA,aAAc,CAACC,EAAQC,EAAQJ,IAAS,CACtC,MAAMK,EAAW,CAAC,CAAE,KAAM,UAAW,GAAI,OAAQ,EAC3CC,EAAWN,EAAK,cAAc,WAAW,IAAKO,IAAQ,CAAE,KAAM,UAAW,GAAAA,CAAA,EAAK,GAAK,CAAA,EACnFC,EACJL,GAAQ,SAAS,IAAKM,IAAY,CAAE,KAAM,UAAW,GAAIA,EAAO,UAAA,EAAa,GAAK,CAAA,EACpF,MAAO,CAAC,GAAGJ,EAAU,GAAGC,EAAU,GAAGE,CAAU,CACjD,CAAA,CACD,EAID,gBAAiBT,EAAM,MAAyD,CAC9E,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAASL,EAAAA,IAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC,EAC9E,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAEf,CAAE,KAAMA,EAAI,IAAA,CACrB,EAEA,aAAc,CAAC,CAAE,KAAM,eAAgB,GAAI,OAAQ,CAAA,CACpD,EAED,gBAAiBH,EAAM,SAA4D,CACjF,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAASL,EAAAA,IAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC,EAC9E,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAEf,CAAE,KAAMA,EAAI,IAAA,CACrB,EACA,gBAAiB,CAAC,CAAE,KAAM,eAAgB,GAAI,OAAQ,CAAA,CACvD,CAAA,EAIL,CAAC,EAEY,CACX,8BAAAQ,EACA,kCAAAC,EACA,yBAAAC,EACA,wBAAAC,EACA,2BAAAC,CACF,EAAIhB"}
1
+ {"version":3,"file":"getActions.cjs.js","sources":["../../../../../../src/api/queries/actions/getActions.ts"],"sourcesContent":["import { actionsApi } from '@shared/api/generated'\nimport type {\n ConfigureActionApiArg,\n ConfigureActionApiResponse,\n ListAvailableActionsForContextApiArg,\n ListAvailableActionsForContextApiResponse,\n} from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = actionsApi.enhanceEndpoints({\n endpoints: {\n executeAction: {},\n listAvailableActionsForContext: {\n transformErrorResponse: (error: any) => error.data?.detail || 'Unknown error',\n },\n },\n})\n\nconst injectedActionsApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getActionsFromContext: build.query<\n ListAvailableActionsForContextApiResponse,\n ListAvailableActionsForContextApiArg\n >({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(\n actionsApi.endpoints.listAvailableActionsForContext.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n },\n providesTags: (result, _error, args) => {\n const baseTags = [{ type: 'actions', id: 'LIST' }]\n const argsTags = args.actionContext.entityIds?.map((id) => ({ type: 'actions', id })) || []\n const actionTags =\n result?.actions?.map((action) => ({ type: 'actions', id: action.identifier })) || []\n return [...baseTags, ...argsTags, ...actionTags]\n },\n }),\n\n // Action configuration\n\n getActionConfig: build.query<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n\n providesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n setActionConfig: build.mutation<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n invalidatesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n // End of endpoints\n }),\n})\n\nexport const {\n useGetActionsFromContextQuery,\n useLazyGetActionsFromContextQuery,\n useExecuteActionMutation,\n useGetActionConfigQuery,\n useSetActionConfigMutation,\n} = injectedActionsApi\nexport { injectedActionsApi as actionsQueries }\n"],"names":["enhancedApi","actionsApi","error","injectedActionsApi","build","args","dispatch","res","result","_error","baseTags","argsTags","id","actionTags","action","useGetActionsFromContextQuery","useLazyGetActionsFromContextQuery","useExecuteActionMutation","useGetActionConfigQuery","useSetActionConfigMutation"],"mappings":"oxDASA,MAAMA,EAAcC,EAAAA,IAAW,iBAAiB,CAC9C,UAAW,CACT,cAAe,CAAA,EACf,+BAAgC,CAC9B,uBAAyBC,GAAeA,EAAM,MAAM,QAAU,eAAA,CAChE,CAEJ,CAAC,EAEKC,EAAqBH,EAAY,gBAAgB,CACrD,UAAYI,IAAW,CACrB,sBAAuBA,EAAM,MAG3B,CACA,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAChBL,EAAAA,IAAW,UAAU,+BAA+B,SAASI,CAAI,CAAA,EAGnE,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAGf,CAAE,KAAMA,EAAI,IAAA,CACrB,EACA,aAAc,CAACC,EAAQC,EAAQJ,IAAS,CACtC,MAAMK,EAAW,CAAC,CAAE,KAAM,UAAW,GAAI,OAAQ,EAC3CC,EAAWN,EAAK,cAAc,WAAW,IAAKO,IAAQ,CAAE,KAAM,UAAW,GAAAA,CAAA,EAAK,GAAK,CAAA,EACnFC,EACJL,GAAQ,SAAS,IAAKM,IAAY,CAAE,KAAM,UAAW,GAAIA,EAAO,UAAA,EAAa,GAAK,CAAA,EACpF,MAAO,CAAC,GAAGJ,EAAU,GAAGC,EAAU,GAAGE,CAAU,CACjD,CAAA,CACD,EAID,gBAAiBT,EAAM,MAAyD,CAC9E,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAASL,EAAAA,IAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC,EAC9E,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAEf,CAAE,KAAMA,EAAI,IAAA,CACrB,EAEA,aAAc,CAAC,CAAE,KAAM,eAAgB,GAAI,OAAQ,CAAA,CACpD,EAED,gBAAiBH,EAAM,SAA4D,CACjF,QAAS,MAAOC,EAAM,CAAE,SAAAC,KAAe,CAErC,MAAMC,EAAM,MAAMD,EAASL,EAAAA,IAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC,EAC9E,OAAIE,EAAI,MACC,CAAE,MAAOA,EAAI,KAAA,EAEf,CAAE,KAAMA,EAAI,IAAA,CACrB,EACA,gBAAiB,CAAC,CAAE,KAAM,eAAgB,GAAI,OAAQ,CAAA,CACvD,CAAA,EAIL,CAAC,EAEY,CACX,8BAAAQ,EACA,kCAAAC,EACA,yBAAAC,EACA,wBAAAC,EACA,2BAAAC,CACF,EAAIhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getActions.es.js","sources":["../../../../../../src/api/queries/actions/getActions.ts"],"sourcesContent":["import {\n actionsApi,\n ConfigureActionApiArg,\n ConfigureActionApiResponse,\n ListAvailableActionsForContextApiArg,\n ListAvailableActionsForContextApiResponse,\n} from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = actionsApi.enhanceEndpoints({\n endpoints: {\n executeAction: {},\n listAvailableActionsForContext: {\n transformErrorResponse: (error: any) => error.data?.detail || 'Unknown error',\n },\n },\n})\n\nconst injectedActionsApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getActionsFromContext: build.query<\n ListAvailableActionsForContextApiResponse,\n ListAvailableActionsForContextApiArg\n >({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(\n actionsApi.endpoints.listAvailableActionsForContext.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n },\n providesTags: (result, _error, args) => {\n const baseTags = [{ type: 'actions', id: 'LIST' }]\n const argsTags = args.actionContext.entityIds?.map((id) => ({ type: 'actions', id })) || []\n const actionTags =\n result?.actions?.map((action) => ({ type: 'actions', id: action.identifier })) || []\n return [...baseTags, ...argsTags, ...actionTags]\n },\n }),\n\n // Action configuration\n\n getActionConfig: build.query<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n\n providesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n setActionConfig: build.mutation<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n invalidatesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n // End of endpoints\n }),\n})\n\nexport const {\n useGetActionsFromContextQuery,\n useLazyGetActionsFromContextQuery,\n useExecuteActionMutation,\n useGetActionConfigQuery,\n useSetActionConfigMutation,\n} = injectedActionsApi\nexport { injectedActionsApi as actionsQueries }\n"],"names":["enhancedApi","actionsApi","error","injectedActionsApi","build","args","dispatch","res","result","_error","baseTags","argsTags","id","actionTags","action","useGetActionsFromContextQuery","useLazyGetActionsFromContextQuery","useExecuteActionMutation","useGetActionConfigQuery","useSetActionConfigMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,IAAcC,EAAW,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,eAAe,CAAA;AAAA,IACf,gCAAgC;AAAA,MAC9B,wBAAwB,CAACC,MAAeA,EAAM,MAAM,UAAU;AAAA,IAAA;AAAA,EAChE;AAEJ,CAAC,GAEKC,IAAqBH,EAAY,gBAAgB;AAAA,EACrD,WAAW,CAACI,OAAW;AAAA,IACrB,uBAAuBA,EAAM,MAG3B;AAAA,MACA,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD;AAAA,UAChBL,EAAW,UAAU,+BAA+B,SAASI,CAAI;AAAA,QAAA;AAGnE,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAGf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MACA,cAAc,CAACC,GAAQC,GAAQJ,MAAS;AACtC,cAAMK,IAAW,CAAC,EAAE,MAAM,WAAW,IAAI,QAAQ,GAC3CC,IAAWN,EAAK,cAAc,WAAW,IAAI,CAACO,OAAQ,EAAE,MAAM,WAAW,IAAAA,EAAA,EAAK,KAAK,CAAA,GACnFC,IACJL,GAAQ,SAAS,IAAI,CAACM,OAAY,EAAE,MAAM,WAAW,IAAIA,EAAO,WAAA,EAAa,KAAK,CAAA;AACpF,eAAO,CAAC,GAAGJ,GAAU,GAAGC,GAAU,GAAGE,CAAU;AAAA,MACjD;AAAA,IAAA,CACD;AAAA;AAAA,IAID,iBAAiBT,EAAM,MAAyD;AAAA,MAC9E,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD,EAASL,EAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC;AAC9E,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAEf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MAEA,cAAc,CAAC,EAAE,MAAM,gBAAgB,IAAI,QAAQ;AAAA,IAAA,CACpD;AAAA,IAED,iBAAiBH,EAAM,SAA4D;AAAA,MACjF,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD,EAASL,EAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC;AAC9E,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAEf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MACA,iBAAiB,CAAC,EAAE,MAAM,gBAAgB,IAAI,QAAQ;AAAA,IAAA,CACvD;AAAA;AAAA,EAAA;AAIL,CAAC,GAEY;AAAA,EACX,+BAAAQ;AAAA,EACA,mCAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,4BAAAC;AACF,IAAIhB;"}
1
+ {"version":3,"file":"getActions.es.js","sources":["../../../../../../src/api/queries/actions/getActions.ts"],"sourcesContent":["import { actionsApi } from '@shared/api/generated'\nimport type {\n ConfigureActionApiArg,\n ConfigureActionApiResponse,\n ListAvailableActionsForContextApiArg,\n ListAvailableActionsForContextApiResponse,\n} from '@shared/api/generated'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst enhancedApi = actionsApi.enhanceEndpoints({\n endpoints: {\n executeAction: {},\n listAvailableActionsForContext: {\n transformErrorResponse: (error: any) => error.data?.detail || 'Unknown error',\n },\n },\n})\n\nconst injectedActionsApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n getActionsFromContext: build.query<\n ListAvailableActionsForContextApiResponse,\n ListAvailableActionsForContextApiArg\n >({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(\n actionsApi.endpoints.listAvailableActionsForContext.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n },\n providesTags: (result, _error, args) => {\n const baseTags = [{ type: 'actions', id: 'LIST' }]\n const argsTags = args.actionContext.entityIds?.map((id) => ({ type: 'actions', id })) || []\n const actionTags =\n result?.actions?.map((action) => ({ type: 'actions', id: action.identifier })) || []\n return [...baseTags, ...argsTags, ...actionTags]\n },\n }),\n\n // Action configuration\n\n getActionConfig: build.query<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n\n providesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n setActionConfig: build.mutation<ConfigureActionApiResponse, ConfigureActionApiArg>({\n queryFn: async (args, { dispatch }) => {\n // get the data from the rest actionsApi\n const res = await dispatch(actionsApi.endpoints.configureAction.initiate(args))\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n return { data: res.data }\n },\n invalidatesTags: [{ type: 'actionConfig', id: 'LIST' }],\n }),\n\n // End of endpoints\n }),\n})\n\nexport const {\n useGetActionsFromContextQuery,\n useLazyGetActionsFromContextQuery,\n useExecuteActionMutation,\n useGetActionConfigQuery,\n useSetActionConfigMutation,\n} = injectedActionsApi\nexport { injectedActionsApi as actionsQueries }\n"],"names":["enhancedApi","actionsApi","error","injectedActionsApi","build","args","dispatch","res","result","_error","baseTags","argsTags","id","actionTags","action","useGetActionsFromContextQuery","useLazyGetActionsFromContextQuery","useExecuteActionMutation","useGetActionConfigQuery","useSetActionConfigMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,IAAcC,EAAW,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,eAAe,CAAA;AAAA,IACf,gCAAgC;AAAA,MAC9B,wBAAwB,CAACC,MAAeA,EAAM,MAAM,UAAU;AAAA,IAAA;AAAA,EAChE;AAEJ,CAAC,GAEKC,IAAqBH,EAAY,gBAAgB;AAAA,EACrD,WAAW,CAACI,OAAW;AAAA,IACrB,uBAAuBA,EAAM,MAG3B;AAAA,MACA,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD;AAAA,UAChBL,EAAW,UAAU,+BAA+B,SAASI,CAAI;AAAA,QAAA;AAGnE,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAGf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MACA,cAAc,CAACC,GAAQC,GAAQJ,MAAS;AACtC,cAAMK,IAAW,CAAC,EAAE,MAAM,WAAW,IAAI,QAAQ,GAC3CC,IAAWN,EAAK,cAAc,WAAW,IAAI,CAACO,OAAQ,EAAE,MAAM,WAAW,IAAAA,EAAA,EAAK,KAAK,CAAA,GACnFC,IACJL,GAAQ,SAAS,IAAI,CAACM,OAAY,EAAE,MAAM,WAAW,IAAIA,EAAO,WAAA,EAAa,KAAK,CAAA;AACpF,eAAO,CAAC,GAAGJ,GAAU,GAAGC,GAAU,GAAGE,CAAU;AAAA,MACjD;AAAA,IAAA,CACD;AAAA;AAAA,IAID,iBAAiBT,EAAM,MAAyD;AAAA,MAC9E,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD,EAASL,EAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC;AAC9E,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAEf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MAEA,cAAc,CAAC,EAAE,MAAM,gBAAgB,IAAI,QAAQ;AAAA,IAAA,CACpD;AAAA,IAED,iBAAiBH,EAAM,SAA4D;AAAA,MACjF,SAAS,OAAOC,GAAM,EAAE,UAAAC,QAAe;AAErC,cAAMC,IAAM,MAAMD,EAASL,EAAW,UAAU,gBAAgB,SAASI,CAAI,CAAC;AAC9E,eAAIE,EAAI,QACC,EAAE,OAAOA,EAAI,MAAA,IAEf,EAAE,MAAMA,EAAI,KAAA;AAAA,MACrB;AAAA,MACA,iBAAiB,CAAC,EAAE,MAAM,gBAAgB,IAAI,QAAQ;AAAA,IAAA,CACvD;AAAA;AAAA,EAAA;AAIL,CAAC,GAEY;AAAA,EACX,+BAAAQ;AAAA,EACA,mCAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,4BAAAC;AACF,IAAIhB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getActivities.cjs.js","sources":["../../../../../../src/api/queries/activities/getActivities.ts"],"sourcesContent":["import {\n gqlApi,\n GetActivitiesByIdQuery,\n GetActivitiesQuery,\n GetActivitiesQueryVariables,\n GetActivityUsersQuery,\n GetEntitiesChecklistsQuery,\n} from '@shared/api/generated'\nimport { provideSharedActivityTags, taskProvideTags } from './util/activitiesHelpers'\nimport {\n ActivitiesResult,\n countChecklists,\n filterKey,\n transformActivityData,\n transformTooltipData,\n} from './util/activitiesHelpers'\nimport { ENTITY_TOOLTIP, EntityTooltipQuery } from './activityQueries'\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport { ChecklistCount } from './types'\n\ntype ActivityUserNode = GetActivityUsersQuery['users']['edges'][0]['node']\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetActivitiesById'> & {\n GetActivitiesById: OverrideResultType<Definitions['GetActivitiesById'], ActivitiesResult>\n GetActivities: OverrideResultType<Definitions['GetActivities'], ActivitiesResult>\n GetEntitiesChecklists: OverrideResultType<Definitions['GetEntitiesChecklists'], ChecklistCount>\n GetActivityUsers: OverrideResultType<Definitions['GetActivityUsers'], ActivityUserNode[]>\n}\n\nconst enhanceActivitiesApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // Only used by the infinite query below\n GetActivities: {\n transformResponse: (res: GetActivitiesQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n providesTags: provideSharedActivityTags, \n },\n GetActivitiesById: {\n transformResponse: (res: GetActivitiesByIdQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n },\n GetEntitiesChecklists: {\n transformResponse: (res: GetEntitiesChecklistsQuery) => countChecklists(res),\n providesTags: (res, _error, { entityIds }) =>\n res\n ? [\n { type: 'activity', id: 'LIST' },\n ...res.ids.map((id) => ({ type: 'activity', id: 'checklist-' + id })),\n ...(Array.isArray(entityIds) ? entityIds : [entityIds]).map((id) => ({\n type: 'entityActivities',\n id: 'checklist-' + id,\n })),\n ]\n : [{ type: 'activity', id: 'LIST' }],\n },\n GetActivityUsers: {\n transformResponse: (res: GetActivityUsersQuery) => res.users.edges.map((edge) => edge.node),\n providesTags: (res) =>\n res?.length\n ? [{ type: 'user', id: 'LIST' }, ...res.map(({ name }) => ({ type: 'user', id: name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport type GetActivitiesInfiniteQueryArgs = Omit<\n GetActivitiesQueryVariables,\n 'last' | 'first' | 'cursor'\n> & { filter?: any }\n\nconst ACTIVITIES_INFINITE_QUERY_COUNT = 30\n\nconst getActivitiesGQLApi = enhanceActivitiesApi.injectEndpoints({\n endpoints: (build) => ({\n getActivitiesInfinite: build.infiniteQuery<\n ActivitiesResult,\n GetActivitiesInfiniteQueryArgs,\n { cursor: string; first?: number; last?: number }\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', last: ACTIVITIES_INFINITE_QUERY_COUNT },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage) => {\n const pageInfo = lastPage.pageInfo\n const hasPreviousPage = pageInfo.hasPreviousPage\n\n if (!hasPreviousPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n last: ACTIVITIES_INFINITE_QUERY_COUNT,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { filter, ...args } = queryArg\n // Build the query parameters for GetActivities\n const queryParams: GetActivitiesQueryVariables = {\n ...args,\n before: pageParam?.cursor,\n last: pageParam?.last,\n }\n\n // Call the existing GetActivities endpoint\n const result = await api.dispatch(\n enhanceActivitiesApi.endpoints.GetActivities.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n activities: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the activities directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getActivitiesInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n async onCacheEntryAdded(\n queryArg,\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n await handleActivityRealtimeUpdates(queryArg, {\n updateCachedData,\n cacheDataLoaded,\n cacheEntryRemoved,\n dispatch,\n getCacheEntry,\n gqlApi: enhanceActivitiesApi,\n })\n },\nprovidesTags: provideSharedActivityTags,\n }),\n // get data for a reference tooltip based on type,id and projectName\n getEntityTooltip: build.query({\n query: ({ projectName, entityId, entityType }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: ENTITY_TOOLTIP(entityType),\n variables: { projectName, entityId },\n },\n }),\n transformResponse: (res: EntityTooltipQuery, _m, { entityType }) =>\n transformTooltipData(res?.data?.project, entityType),\n providesTags: (res: any, _e, { entityType }) => taskProvideTags([res], 'task', entityType),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useGetEntityTooltipQuery,\n useLazyGetActivitiesByIdQuery,\n useGetEntitiesChecklistsQuery,\n useGetActivitiesQuery,\n useGetActivitiesInfiniteInfiniteQuery,\n useGetActivityUsersQuery,\n} = getActivitiesGQLApi\n\nexport { getActivitiesGQLApi }\n\nimport { filterActivityTypes } from './util/activitiesHelpers'\nimport { patchTableLatestComments } from './patchTableLatestComments'\nimport { handleActivityRealtimeUpdates } from './util/activityRealtimeHandler'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst serializeFilter = (filter: unknown): string => {\n if (filter === undefined || filter === null) return ''\n return typeof filter === 'string' ? filter : JSON.stringify(filter)\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [], ...rest }: any,\n api: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { dispatch, queryFulfilled, getState } = api\n const refIds = refs.map((ref: any) => ref.id) || []\n const serializedFilter = serializeFilter(filter)\n // build tags that would be affected by this activity\n const invalidatingTags = [...entityIds, ...refIds].map((id) => ({\n type: 'entityActivities',\n id: id + '-' + filterKey(filter),\n }))\n\n const state = getState()\n // get caches that would be affected by this activity\n const entries = getActivitiesGQLApi.util.selectInvalidatedBy(state, invalidatingTags)\n\n // ensure that data is mapped to activityData\n if (method !== 'delete' && patch.data) {\n patch.activityData = { ...patch.activityData, ...patch.data }\n }\n\n // now patch all the caches with the update\n const patches = entries.map(({ originalArgs }) =>\n dispatch(\n getActivitiesGQLApi.util.updateQueryData('getActivitiesInfinite', originalArgs, (draft) =>\n updateCache(draft, patch, method === 'delete'),\n ),\n ),\n )\n\n // patch latestComments in the table caches too (instead of refetching them)\n const tablePatches = patchTableLatestComments(\n { patch, entityIds, filter, refs, ...rest },\n api,\n method,\n )\n\n try {\n await queryFulfilled\n } catch (error: any) {\n for (const patchResult of [...patches, ...tablePatches]) {\n patchResult?.undo()\n }\n }\n}\n\n// get tags for other filter types\nconst getTags = ({ entityId, filter }: { entityId: string; filter: string }) => {\n const invalidateFilters = Object.keys(filterActivityTypes).filter((key) => key !== filter)\n\n const tags = invalidateFilters.map((filter) => ({\n type: 'entityActivities',\n id: entityId + '-' + filter,\n }))\n\n tags.push({ type: 'activity', id: 'LIST' })\n\n tags.push({ type: 'watchers', id: entityId })\n\n return tags\n}\n\nconst updateActivitiesApi = getActivitiesGQLApi.injectEndpoints({\n endpoints: (build) => ({\n createEntityActivity: build.mutation({\n query: ({ projectName, entityType, entityId, data = {} }) => ({\n url: `/api/projects/${projectName}/${entityType}/${entityId}/activities`,\n method: 'POST',\n // generate a new activityId if this is a new activity\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'create')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n\n updateActivity: build.mutation({\n query: ({ projectName, activityId, data }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'update')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n deleteActivity: build.mutation({\n query: ({ projectName, activityId }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'DELETE',\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'delete')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useCreateEntityActivityMutation,\n useDeleteActivityMutation,\n useUpdateActivityMutation,\n} = updateActivitiesApi\nexport { updateActivitiesApi as activitiesQueries }\n"],"names":["enhanceActivitiesApi","gqlApi","res","transformActivityData","provideSharedActivityTags","countChecklists","_error","entityIds","id","edge","name","ACTIVITIES_INFINITE_QUERY_COUNT","getActivitiesGQLApi","build","lastPage","pageInfo","queryArg","pageParam","api","filter","args","queryParams","result","fallback","e","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","handleActivityRealtimeUpdates","projectName","entityId","entityType","ENTITY_TOOLTIP","_m","transformTooltipData","_e","taskProvideTags","useGetEntityTooltipQuery","useLazyGetActivitiesByIdQuery","useGetEntitiesChecklistsQuery","useGetActivitiesQuery","useGetActivitiesInfiniteInfiniteQuery","useGetActivityUsersQuery","updateCache","activitiesDraft","patch","isDelete","page","index","activityFound","a","serializeFilter","patchActivities","refs","rest","method","queryFulfilled","getState","refIds","ref","invalidatingTags","filterKey","state","entries","patches","originalArgs","draft","tablePatches","patchTableLatestComments","patchResult","getTags","tags","filterActivityTypes","key","updateActivitiesApi","data","error","activityId","useCreateEntityActivityMutation","useDeleteActivityMutation","useUpdateActivityMutation"],"mappings":"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"}
1
+ {"version":3,"file":"getActivities.cjs.js","sources":["../../../../../../src/api/queries/activities/getActivities.ts"],"sourcesContent":["import { gqlApi } from '@shared/api/generated'\nimport type {\n GetActivitiesByIdQuery,\n GetActivitiesQuery,\n GetActivitiesQueryVariables,\n GetActivityUsersQuery,\n GetEntitiesChecklistsQuery,\n} from '@shared/api/generated'\nimport { provideSharedActivityTags, taskProvideTags } from './util/activitiesHelpers'\nimport {\n ActivitiesResult,\n countChecklists,\n filterKey,\n transformActivityData,\n transformTooltipData,\n} from './util/activitiesHelpers'\nimport { ENTITY_TOOLTIP, EntityTooltipQuery } from './activityQueries'\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type { ChecklistCount } from './types'\n\ntype ActivityUserNode = GetActivityUsersQuery['users']['edges'][0]['node']\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetActivitiesById'> & {\n GetActivitiesById: OverrideResultType<Definitions['GetActivitiesById'], ActivitiesResult>\n GetActivities: OverrideResultType<Definitions['GetActivities'], ActivitiesResult>\n GetEntitiesChecklists: OverrideResultType<Definitions['GetEntitiesChecklists'], ChecklistCount>\n GetActivityUsers: OverrideResultType<Definitions['GetActivityUsers'], ActivityUserNode[]>\n}\n\nconst enhanceActivitiesApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // Only used by the infinite query below\n GetActivities: {\n transformResponse: (res: GetActivitiesQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n providesTags: provideSharedActivityTags,\n },\n GetActivitiesById: {\n transformResponse: (res: GetActivitiesByIdQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n },\n GetEntitiesChecklists: {\n transformResponse: (res: GetEntitiesChecklistsQuery) => countChecklists(res),\n providesTags: (res, _error, { entityIds }) =>\n res\n ? [\n { type: 'activity', id: 'LIST' },\n ...res.ids.map((id) => ({ type: 'activity', id: 'checklist-' + id })),\n ...(Array.isArray(entityIds) ? entityIds : [entityIds]).map((id) => ({\n type: 'entityActivities',\n id: 'checklist-' + id,\n })),\n ]\n : [{ type: 'activity', id: 'LIST' }],\n },\n GetActivityUsers: {\n transformResponse: (res: GetActivityUsersQuery) => res.users.edges.map((edge) => edge.node),\n providesTags: (res) =>\n res?.length\n ? [{ type: 'user', id: 'LIST' }, ...res.map(({ name }) => ({ type: 'user', id: name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport type GetActivitiesInfiniteQueryArgs = Omit<\n GetActivitiesQueryVariables,\n 'last' | 'first' | 'cursor'\n> & { filter?: any }\n\nconst ACTIVITIES_INFINITE_QUERY_COUNT = 30\n\nconst getActivitiesGQLApi = enhanceActivitiesApi.injectEndpoints({\n endpoints: (build) => ({\n getActivitiesInfinite: build.infiniteQuery<\n ActivitiesResult,\n GetActivitiesInfiniteQueryArgs,\n { cursor: string; first?: number; last?: number }\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', last: ACTIVITIES_INFINITE_QUERY_COUNT },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage) => {\n const pageInfo = lastPage.pageInfo\n const hasPreviousPage = pageInfo.hasPreviousPage\n\n if (!hasPreviousPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n last: ACTIVITIES_INFINITE_QUERY_COUNT,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { filter, ...args } = queryArg\n // Build the query parameters for GetActivities\n const queryParams: GetActivitiesQueryVariables = {\n ...args,\n before: pageParam?.cursor,\n last: pageParam?.last,\n }\n\n // Call the existing GetActivities endpoint\n const result = await api.dispatch(\n enhanceActivitiesApi.endpoints.GetActivities.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n activities: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the activities directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getActivitiesInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n async onCacheEntryAdded(\n queryArg,\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n await handleActivityRealtimeUpdates(queryArg, {\n updateCachedData,\n cacheDataLoaded,\n cacheEntryRemoved,\n dispatch,\n getCacheEntry,\n gqlApi: enhanceActivitiesApi,\n })\n },\n providesTags: provideSharedActivityTags,\n }),\n // get data for a reference tooltip based on type,id and projectName\n getEntityTooltip: build.query({\n query: ({ projectName, entityId, entityType }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: ENTITY_TOOLTIP(entityType),\n variables: { projectName, entityId },\n },\n }),\n transformResponse: (res: EntityTooltipQuery, _m, { entityType }) =>\n transformTooltipData(res?.data?.project, entityType),\n providesTags: (res: any, _e, { entityType }) => taskProvideTags([res], 'task', entityType),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useGetEntityTooltipQuery,\n useLazyGetActivitiesByIdQuery,\n useGetEntitiesChecklistsQuery,\n useGetActivitiesQuery,\n useGetActivitiesInfiniteInfiniteQuery,\n useGetActivityUsersQuery,\n} = getActivitiesGQLApi\n\nexport { getActivitiesGQLApi }\n\nimport { filterActivityTypes } from './util/activitiesHelpers'\nimport { patchTableLatestComments } from './patchTableLatestComments'\nimport { handleActivityRealtimeUpdates } from './util/activityRealtimeHandler'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst serializeFilter = (filter: unknown): string => {\n if (filter === undefined || filter === null) return ''\n return typeof filter === 'string' ? filter : JSON.stringify(filter)\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [], ...rest }: any,\n api: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { dispatch, queryFulfilled, getState } = api\n const refIds = refs.map((ref: any) => ref.id) || []\n const serializedFilter = serializeFilter(filter)\n // build tags that would be affected by this activity\n const invalidatingTags = [...entityIds, ...refIds].map((id) => ({\n type: 'entityActivities',\n id: id + '-' + filterKey(filter),\n }))\n\n const state = getState()\n // get caches that would be affected by this activity\n const entries = getActivitiesGQLApi.util.selectInvalidatedBy(state, invalidatingTags)\n\n // ensure that data is mapped to activityData\n if (method !== 'delete' && patch.data) {\n patch.activityData = { ...patch.activityData, ...patch.data }\n }\n\n // now patch all the caches with the update\n const patches = entries.map(({ originalArgs }) =>\n dispatch(\n getActivitiesGQLApi.util.updateQueryData('getActivitiesInfinite', originalArgs, (draft) =>\n updateCache(draft, patch, method === 'delete'),\n ),\n ),\n )\n\n // patch latestComments in the table caches too (instead of refetching them)\n const tablePatches = patchTableLatestComments(\n { patch, entityIds, filter, refs, ...rest },\n api,\n method,\n )\n\n try {\n await queryFulfilled\n } catch (error: any) {\n for (const patchResult of [...patches, ...tablePatches]) {\n patchResult?.undo()\n }\n }\n}\n\n// get tags for other filter types\nconst getTags = ({ entityId, filter }: { entityId: string; filter: string }) => {\n const invalidateFilters = Object.keys(filterActivityTypes).filter((key) => key !== filter)\n\n const tags = invalidateFilters.map((filter) => ({\n type: 'entityActivities',\n id: entityId + '-' + filter,\n }))\n\n tags.push({ type: 'activity', id: 'LIST' })\n\n tags.push({ type: 'watchers', id: entityId })\n\n return tags\n}\n\nconst updateActivitiesApi = getActivitiesGQLApi.injectEndpoints({\n endpoints: (build) => ({\n createEntityActivity: build.mutation({\n query: ({ projectName, entityType, entityId, data = {} }) => ({\n url: `/api/projects/${projectName}/${entityType}/${entityId}/activities`,\n method: 'POST',\n // generate a new activityId if this is a new activity\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'create')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n\n updateActivity: build.mutation({\n query: ({ projectName, activityId, data }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'update')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n deleteActivity: build.mutation({\n query: ({ projectName, activityId }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'DELETE',\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'delete')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useCreateEntityActivityMutation,\n useDeleteActivityMutation,\n useUpdateActivityMutation,\n} = updateActivitiesApi\nexport { updateActivitiesApi as activitiesQueries }\n"],"names":["enhanceActivitiesApi","gqlApi","res","transformActivityData","provideSharedActivityTags","countChecklists","_error","entityIds","id","edge","name","ACTIVITIES_INFINITE_QUERY_COUNT","getActivitiesGQLApi","build","lastPage","pageInfo","queryArg","pageParam","api","filter","args","queryParams","result","fallback","e","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","handleActivityRealtimeUpdates","projectName","entityId","entityType","ENTITY_TOOLTIP","_m","transformTooltipData","_e","taskProvideTags","useGetEntityTooltipQuery","useLazyGetActivitiesByIdQuery","useGetEntitiesChecklistsQuery","useGetActivitiesQuery","useGetActivitiesInfiniteInfiniteQuery","useGetActivityUsersQuery","updateCache","activitiesDraft","patch","isDelete","page","index","activityFound","a","serializeFilter","patchActivities","refs","rest","method","queryFulfilled","getState","refIds","ref","invalidatingTags","filterKey","state","entries","patches","originalArgs","draft","tablePatches","patchTableLatestComments","patchResult","getTags","tags","filterActivityTypes","key","updateActivitiesApi","data","error","activityId","useCreateEntityActivityMutation","useDeleteActivityMutation","useUpdateActivityMutation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getActivities.es.js","sources":["../../../../../../src/api/queries/activities/getActivities.ts"],"sourcesContent":["import {\n gqlApi,\n GetActivitiesByIdQuery,\n GetActivitiesQuery,\n GetActivitiesQueryVariables,\n GetActivityUsersQuery,\n GetEntitiesChecklistsQuery,\n} from '@shared/api/generated'\nimport { provideSharedActivityTags, taskProvideTags } from './util/activitiesHelpers'\nimport {\n ActivitiesResult,\n countChecklists,\n filterKey,\n transformActivityData,\n transformTooltipData,\n} from './util/activitiesHelpers'\nimport { ENTITY_TOOLTIP, EntityTooltipQuery } from './activityQueries'\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport { ChecklistCount } from './types'\n\ntype ActivityUserNode = GetActivityUsersQuery['users']['edges'][0]['node']\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetActivitiesById'> & {\n GetActivitiesById: OverrideResultType<Definitions['GetActivitiesById'], ActivitiesResult>\n GetActivities: OverrideResultType<Definitions['GetActivities'], ActivitiesResult>\n GetEntitiesChecklists: OverrideResultType<Definitions['GetEntitiesChecklists'], ChecklistCount>\n GetActivityUsers: OverrideResultType<Definitions['GetActivityUsers'], ActivityUserNode[]>\n}\n\nconst enhanceActivitiesApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // Only used by the infinite query below\n GetActivities: {\n transformResponse: (res: GetActivitiesQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n providesTags: provideSharedActivityTags, \n },\n GetActivitiesById: {\n transformResponse: (res: GetActivitiesByIdQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n },\n GetEntitiesChecklists: {\n transformResponse: (res: GetEntitiesChecklistsQuery) => countChecklists(res),\n providesTags: (res, _error, { entityIds }) =>\n res\n ? [\n { type: 'activity', id: 'LIST' },\n ...res.ids.map((id) => ({ type: 'activity', id: 'checklist-' + id })),\n ...(Array.isArray(entityIds) ? entityIds : [entityIds]).map((id) => ({\n type: 'entityActivities',\n id: 'checklist-' + id,\n })),\n ]\n : [{ type: 'activity', id: 'LIST' }],\n },\n GetActivityUsers: {\n transformResponse: (res: GetActivityUsersQuery) => res.users.edges.map((edge) => edge.node),\n providesTags: (res) =>\n res?.length\n ? [{ type: 'user', id: 'LIST' }, ...res.map(({ name }) => ({ type: 'user', id: name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport type GetActivitiesInfiniteQueryArgs = Omit<\n GetActivitiesQueryVariables,\n 'last' | 'first' | 'cursor'\n> & { filter?: any }\n\nconst ACTIVITIES_INFINITE_QUERY_COUNT = 30\n\nconst getActivitiesGQLApi = enhanceActivitiesApi.injectEndpoints({\n endpoints: (build) => ({\n getActivitiesInfinite: build.infiniteQuery<\n ActivitiesResult,\n GetActivitiesInfiniteQueryArgs,\n { cursor: string; first?: number; last?: number }\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', last: ACTIVITIES_INFINITE_QUERY_COUNT },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage) => {\n const pageInfo = lastPage.pageInfo\n const hasPreviousPage = pageInfo.hasPreviousPage\n\n if (!hasPreviousPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n last: ACTIVITIES_INFINITE_QUERY_COUNT,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { filter, ...args } = queryArg\n // Build the query parameters for GetActivities\n const queryParams: GetActivitiesQueryVariables = {\n ...args,\n before: pageParam?.cursor,\n last: pageParam?.last,\n }\n\n // Call the existing GetActivities endpoint\n const result = await api.dispatch(\n enhanceActivitiesApi.endpoints.GetActivities.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n activities: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the activities directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getActivitiesInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n async onCacheEntryAdded(\n queryArg,\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n await handleActivityRealtimeUpdates(queryArg, {\n updateCachedData,\n cacheDataLoaded,\n cacheEntryRemoved,\n dispatch,\n getCacheEntry,\n gqlApi: enhanceActivitiesApi,\n })\n },\nprovidesTags: provideSharedActivityTags,\n }),\n // get data for a reference tooltip based on type,id and projectName\n getEntityTooltip: build.query({\n query: ({ projectName, entityId, entityType }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: ENTITY_TOOLTIP(entityType),\n variables: { projectName, entityId },\n },\n }),\n transformResponse: (res: EntityTooltipQuery, _m, { entityType }) =>\n transformTooltipData(res?.data?.project, entityType),\n providesTags: (res: any, _e, { entityType }) => taskProvideTags([res], 'task', entityType),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useGetEntityTooltipQuery,\n useLazyGetActivitiesByIdQuery,\n useGetEntitiesChecklistsQuery,\n useGetActivitiesQuery,\n useGetActivitiesInfiniteInfiniteQuery,\n useGetActivityUsersQuery,\n} = getActivitiesGQLApi\n\nexport { getActivitiesGQLApi }\n\nimport { filterActivityTypes } from './util/activitiesHelpers'\nimport { patchTableLatestComments } from './patchTableLatestComments'\nimport { handleActivityRealtimeUpdates } from './util/activityRealtimeHandler'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst serializeFilter = (filter: unknown): string => {\n if (filter === undefined || filter === null) return ''\n return typeof filter === 'string' ? filter : JSON.stringify(filter)\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [], ...rest }: any,\n api: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { dispatch, queryFulfilled, getState } = api\n const refIds = refs.map((ref: any) => ref.id) || []\n const serializedFilter = serializeFilter(filter)\n // build tags that would be affected by this activity\n const invalidatingTags = [...entityIds, ...refIds].map((id) => ({\n type: 'entityActivities',\n id: id + '-' + filterKey(filter),\n }))\n\n const state = getState()\n // get caches that would be affected by this activity\n const entries = getActivitiesGQLApi.util.selectInvalidatedBy(state, invalidatingTags)\n\n // ensure that data is mapped to activityData\n if (method !== 'delete' && patch.data) {\n patch.activityData = { ...patch.activityData, ...patch.data }\n }\n\n // now patch all the caches with the update\n const patches = entries.map(({ originalArgs }) =>\n dispatch(\n getActivitiesGQLApi.util.updateQueryData('getActivitiesInfinite', originalArgs, (draft) =>\n updateCache(draft, patch, method === 'delete'),\n ),\n ),\n )\n\n // patch latestComments in the table caches too (instead of refetching them)\n const tablePatches = patchTableLatestComments(\n { patch, entityIds, filter, refs, ...rest },\n api,\n method,\n )\n\n try {\n await queryFulfilled\n } catch (error: any) {\n for (const patchResult of [...patches, ...tablePatches]) {\n patchResult?.undo()\n }\n }\n}\n\n// get tags for other filter types\nconst getTags = ({ entityId, filter }: { entityId: string; filter: string }) => {\n const invalidateFilters = Object.keys(filterActivityTypes).filter((key) => key !== filter)\n\n const tags = invalidateFilters.map((filter) => ({\n type: 'entityActivities',\n id: entityId + '-' + filter,\n }))\n\n tags.push({ type: 'activity', id: 'LIST' })\n\n tags.push({ type: 'watchers', id: entityId })\n\n return tags\n}\n\nconst updateActivitiesApi = getActivitiesGQLApi.injectEndpoints({\n endpoints: (build) => ({\n createEntityActivity: build.mutation({\n query: ({ projectName, entityType, entityId, data = {} }) => ({\n url: `/api/projects/${projectName}/${entityType}/${entityId}/activities`,\n method: 'POST',\n // generate a new activityId if this is a new activity\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'create')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n\n updateActivity: build.mutation({\n query: ({ projectName, activityId, data }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'update')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n deleteActivity: build.mutation({\n query: ({ projectName, activityId }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'DELETE',\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'delete')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useCreateEntityActivityMutation,\n useDeleteActivityMutation,\n useUpdateActivityMutation,\n} = updateActivitiesApi\nexport { updateActivitiesApi as activitiesQueries }\n"],"names":["enhanceActivitiesApi","gqlApi","res","transformActivityData","provideSharedActivityTags","countChecklists","_error","entityIds","id","edge","name","ACTIVITIES_INFINITE_QUERY_COUNT","getActivitiesGQLApi","build","lastPage","pageInfo","queryArg","pageParam","api","filter","args","queryParams","result","fallback","e","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","handleActivityRealtimeUpdates","projectName","entityId","entityType","ENTITY_TOOLTIP","_m","transformTooltipData","_e","taskProvideTags","useGetEntityTooltipQuery","useLazyGetActivitiesByIdQuery","useGetEntitiesChecklistsQuery","useGetActivitiesQuery","useGetActivitiesInfiniteInfiniteQuery","useGetActivityUsersQuery","updateCache","activitiesDraft","patch","isDelete","page","index","a","activityFound","serializeFilter","patchActivities","refs","rest","method","queryFulfilled","getState","refIds","ref","invalidatingTags","filterKey","state","entries","patches","originalArgs","draft","tablePatches","patchTableLatestComments","patchResult","getTags","tags","filterActivityTypes","key","updateActivitiesApi","data","error","activityId","useCreateEntityActivityMutation","useDeleteActivityMutation","useUpdateActivityMutation"],"mappings":"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"}
1
+ {"version":3,"file":"getActivities.es.js","sources":["../../../../../../src/api/queries/activities/getActivities.ts"],"sourcesContent":["import { gqlApi } from '@shared/api/generated'\nimport type {\n GetActivitiesByIdQuery,\n GetActivitiesQuery,\n GetActivitiesQueryVariables,\n GetActivityUsersQuery,\n GetEntitiesChecklistsQuery,\n} from '@shared/api/generated'\nimport { provideSharedActivityTags, taskProvideTags } from './util/activitiesHelpers'\nimport {\n ActivitiesResult,\n countChecklists,\n filterKey,\n transformActivityData,\n transformTooltipData,\n} from './util/activitiesHelpers'\nimport { ENTITY_TOOLTIP, EntityTooltipQuery } from './activityQueries'\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type { ChecklistCount } from './types'\n\ntype ActivityUserNode = GetActivityUsersQuery['users']['edges'][0]['node']\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetActivitiesById'> & {\n GetActivitiesById: OverrideResultType<Definitions['GetActivitiesById'], ActivitiesResult>\n GetActivities: OverrideResultType<Definitions['GetActivities'], ActivitiesResult>\n GetEntitiesChecklists: OverrideResultType<Definitions['GetEntitiesChecklists'], ChecklistCount>\n GetActivityUsers: OverrideResultType<Definitions['GetActivityUsers'], ActivityUserNode[]>\n}\n\nconst enhanceActivitiesApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // Only used by the infinite query below\n GetActivities: {\n transformResponse: (res: GetActivitiesQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n providesTags: provideSharedActivityTags,\n },\n GetActivitiesById: {\n transformResponse: (res: GetActivitiesByIdQuery) =>\n transformActivityData(res.project.activities.edges, res.project.activities.pageInfo),\n },\n GetEntitiesChecklists: {\n transformResponse: (res: GetEntitiesChecklistsQuery) => countChecklists(res),\n providesTags: (res, _error, { entityIds }) =>\n res\n ? [\n { type: 'activity', id: 'LIST' },\n ...res.ids.map((id) => ({ type: 'activity', id: 'checklist-' + id })),\n ...(Array.isArray(entityIds) ? entityIds : [entityIds]).map((id) => ({\n type: 'entityActivities',\n id: 'checklist-' + id,\n })),\n ]\n : [{ type: 'activity', id: 'LIST' }],\n },\n GetActivityUsers: {\n transformResponse: (res: GetActivityUsersQuery) => res.users.edges.map((edge) => edge.node),\n providesTags: (res) =>\n res?.length\n ? [{ type: 'user', id: 'LIST' }, ...res.map(({ name }) => ({ type: 'user', id: name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport type GetActivitiesInfiniteQueryArgs = Omit<\n GetActivitiesQueryVariables,\n 'last' | 'first' | 'cursor'\n> & { filter?: any }\n\nconst ACTIVITIES_INFINITE_QUERY_COUNT = 30\n\nconst getActivitiesGQLApi = enhanceActivitiesApi.injectEndpoints({\n endpoints: (build) => ({\n getActivitiesInfinite: build.infiniteQuery<\n ActivitiesResult,\n GetActivitiesInfiniteQueryArgs,\n { cursor: string; first?: number; last?: number }\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', last: ACTIVITIES_INFINITE_QUERY_COUNT },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage) => {\n const pageInfo = lastPage.pageInfo\n const hasPreviousPage = pageInfo.hasPreviousPage\n\n if (!hasPreviousPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n last: ACTIVITIES_INFINITE_QUERY_COUNT,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { filter, ...args } = queryArg\n // Build the query parameters for GetActivities\n const queryParams: GetActivitiesQueryVariables = {\n ...args,\n before: pageParam?.cursor,\n last: pageParam?.last,\n }\n\n // Call the existing GetActivities endpoint\n const result = await api.dispatch(\n enhanceActivitiesApi.endpoints.GetActivities.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n activities: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the activities directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getActivitiesInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n async onCacheEntryAdded(\n queryArg,\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n await handleActivityRealtimeUpdates(queryArg, {\n updateCachedData,\n cacheDataLoaded,\n cacheEntryRemoved,\n dispatch,\n getCacheEntry,\n gqlApi: enhanceActivitiesApi,\n })\n },\n providesTags: provideSharedActivityTags,\n }),\n // get data for a reference tooltip based on type,id and projectName\n getEntityTooltip: build.query({\n query: ({ projectName, entityId, entityType }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: ENTITY_TOOLTIP(entityType),\n variables: { projectName, entityId },\n },\n }),\n transformResponse: (res: EntityTooltipQuery, _m, { entityType }) =>\n transformTooltipData(res?.data?.project, entityType),\n providesTags: (res: any, _e, { entityType }) => taskProvideTags([res], 'task', entityType),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useGetEntityTooltipQuery,\n useLazyGetActivitiesByIdQuery,\n useGetEntitiesChecklistsQuery,\n useGetActivitiesQuery,\n useGetActivitiesInfiniteInfiniteQuery,\n useGetActivityUsersQuery,\n} = getActivitiesGQLApi\n\nexport { getActivitiesGQLApi }\n\nimport { filterActivityTypes } from './util/activitiesHelpers'\nimport { patchTableLatestComments } from './patchTableLatestComments'\nimport { handleActivityRealtimeUpdates } from './util/activityRealtimeHandler'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst serializeFilter = (filter: unknown): string => {\n if (filter === undefined || filter === null) return ''\n return typeof filter === 'string' ? filter : JSON.stringify(filter)\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [], ...rest }: any,\n api: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { dispatch, queryFulfilled, getState } = api\n const refIds = refs.map((ref: any) => ref.id) || []\n const serializedFilter = serializeFilter(filter)\n // build tags that would be affected by this activity\n const invalidatingTags = [...entityIds, ...refIds].map((id) => ({\n type: 'entityActivities',\n id: id + '-' + filterKey(filter),\n }))\n\n const state = getState()\n // get caches that would be affected by this activity\n const entries = getActivitiesGQLApi.util.selectInvalidatedBy(state, invalidatingTags)\n\n // ensure that data is mapped to activityData\n if (method !== 'delete' && patch.data) {\n patch.activityData = { ...patch.activityData, ...patch.data }\n }\n\n // now patch all the caches with the update\n const patches = entries.map(({ originalArgs }) =>\n dispatch(\n getActivitiesGQLApi.util.updateQueryData('getActivitiesInfinite', originalArgs, (draft) =>\n updateCache(draft, patch, method === 'delete'),\n ),\n ),\n )\n\n // patch latestComments in the table caches too (instead of refetching them)\n const tablePatches = patchTableLatestComments(\n { patch, entityIds, filter, refs, ...rest },\n api,\n method,\n )\n\n try {\n await queryFulfilled\n } catch (error: any) {\n for (const patchResult of [...patches, ...tablePatches]) {\n patchResult?.undo()\n }\n }\n}\n\n// get tags for other filter types\nconst getTags = ({ entityId, filter }: { entityId: string; filter: string }) => {\n const invalidateFilters = Object.keys(filterActivityTypes).filter((key) => key !== filter)\n\n const tags = invalidateFilters.map((filter) => ({\n type: 'entityActivities',\n id: entityId + '-' + filter,\n }))\n\n tags.push({ type: 'activity', id: 'LIST' })\n\n tags.push({ type: 'watchers', id: entityId })\n\n return tags\n}\n\nconst updateActivitiesApi = getActivitiesGQLApi.injectEndpoints({\n endpoints: (build) => ({\n createEntityActivity: build.mutation({\n query: ({ projectName, entityType, entityId, data = {} }) => ({\n url: `/api/projects/${projectName}/${entityType}/${entityId}/activities`,\n method: 'POST',\n // generate a new activityId if this is a new activity\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'create')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n\n updateActivity: build.mutation({\n query: ({ projectName, activityId, data }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'update')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n deleteActivity: build.mutation({\n query: ({ projectName, activityId }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'DELETE',\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'delete')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useCreateEntityActivityMutation,\n useDeleteActivityMutation,\n useUpdateActivityMutation,\n} = updateActivitiesApi\nexport { updateActivitiesApi as activitiesQueries }\n"],"names":["enhanceActivitiesApi","gqlApi","res","transformActivityData","provideSharedActivityTags","countChecklists","_error","entityIds","id","edge","name","ACTIVITIES_INFINITE_QUERY_COUNT","getActivitiesGQLApi","build","lastPage","pageInfo","queryArg","pageParam","api","filter","args","queryParams","result","fallback","e","updateCachedData","cacheDataLoaded","cacheEntryRemoved","dispatch","getCacheEntry","handleActivityRealtimeUpdates","projectName","entityId","entityType","ENTITY_TOOLTIP","_m","transformTooltipData","_e","taskProvideTags","useGetEntityTooltipQuery","useLazyGetActivitiesByIdQuery","useGetEntitiesChecklistsQuery","useGetActivitiesQuery","useGetActivitiesInfiniteInfiniteQuery","useGetActivityUsersQuery","updateCache","activitiesDraft","patch","isDelete","page","index","a","activityFound","serializeFilter","patchActivities","refs","rest","method","queryFulfilled","getState","refIds","ref","invalidatingTags","filterKey","state","entries","patches","originalArgs","draft","tablePatches","patchTableLatestComments","patchResult","getTags","tags","filterActivityTypes","key","updateActivitiesApi","data","error","activityId","useCreateEntityActivityMutation","useDeleteActivityMutation","useUpdateActivityMutation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCategories.cjs.js","sources":["../../../../../../src/api/queries/activities/getCategories.ts"],"sourcesContent":["import { ActivityCategoriesResponseModel, activityFeedApi } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { AccessLevel } from '@shared/components'\n\nconst listTag = { type: 'category', id: 'LIST' } as const\nconst settingsTag = { type: 'addonSettings', id: 'powerpack' } as const\n\nexport type ActivityCategory = {\n name: string\n color: string // hex color code\n access: Record<string, AccessLevel>\n accessLevel: AccessLevel\n}\ntype GetActivityCategoriesResult = ActivityCategory[]\n\ntype Definitions = DefinitionsFromApi<typeof activityFeedApi>\ntype TagTypes = TagTypesFromApi<typeof activityFeedApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getActivityCategories'> & {\n getActivityCategories: OverrideResultType<\n Definitions['getActivityCategories'],\n GetActivityCategoriesResult\n >\n}\n\nconst categoriesApi = activityFeedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getActivityCategories: {\n transformResponse: (res: ActivityCategoriesResponseModel) =>\n res.categories as ActivityCategory[],\n transformErrorResponse: (error: any) => error.data?.detail || 'An error occurred.',\n providesTags: (result) =>\n result\n ? [\n ...result.map(({ name }) => ({ type: 'category' as const, id: name })),\n listTag,\n settingsTag,\n ]\n : [listTag, settingsTag],\n },\n },\n})\n\nexport const { useGetActivityCategoriesQuery } = categoriesApi\n"],"names":["listTag","settingsTag","categoriesApi","activityFeedApi","res","error","result","name","useGetActivityCategoriesQuery"],"mappings":"oxDAIA,MAAMA,EAAU,CAAE,KAAM,WAAY,GAAI,MAAA,EAClCC,EAAc,CAAE,KAAM,gBAAiB,GAAI,WAAA,EAoB3CC,EAAgBC,EAAAA,IAAgB,iBAA+C,CACnF,UAAW,CACT,sBAAuB,CACrB,kBAAoBC,GAClBA,EAAI,WACN,uBAAyBC,GAAeA,EAAM,MAAM,QAAU,qBAC9D,aAAeC,GACbA,EACI,CACE,GAAGA,EAAO,IAAI,CAAC,CAAE,KAAAC,CAAA,KAAY,CAAE,KAAM,WAAqB,GAAIA,CAAA,EAAO,EACrEP,EACAC,CAAA,EAEF,CAACD,EAASC,CAAW,CAAA,CAC7B,CAEJ,CAAC,EAEY,CAAE,8BAAAO,GAAkCN"}
1
+ {"version":3,"file":"getCategories.cjs.js","sources":["../../../../../../src/api/queries/activities/getCategories.ts"],"sourcesContent":["import { activityFeedApi } from '@shared/api/generated'\nimport type { ActivityCategoriesResponseModel } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport type { AccessLevel } from '@shared/components/AccessUser/AccessUser'\n\nconst listTag = { type: 'category', id: 'LIST' } as const\nconst settingsTag = { type: 'addonSettings', id: 'powerpack' } as const\n\nexport type ActivityCategory = {\n name: string\n color: string // hex color code\n access: Record<string, AccessLevel>\n accessLevel: AccessLevel\n}\ntype GetActivityCategoriesResult = ActivityCategory[]\n\ntype Definitions = DefinitionsFromApi<typeof activityFeedApi>\ntype TagTypes = TagTypesFromApi<typeof activityFeedApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getActivityCategories'> & {\n getActivityCategories: OverrideResultType<\n Definitions['getActivityCategories'],\n GetActivityCategoriesResult\n >\n}\n\nconst categoriesApi = activityFeedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getActivityCategories: {\n transformResponse: (res: ActivityCategoriesResponseModel) =>\n res.categories as ActivityCategory[],\n transformErrorResponse: (error: any) => error.data?.detail || 'An error occurred.',\n providesTags: (result) =>\n result\n ? [\n ...result.map(({ name }) => ({ type: 'category' as const, id: name })),\n listTag,\n settingsTag,\n ]\n : [listTag, settingsTag],\n },\n },\n})\n\nexport const { useGetActivityCategoriesQuery } = categoriesApi\n"],"names":["listTag","settingsTag","categoriesApi","activityFeedApi","res","error","result","name","useGetActivityCategoriesQuery"],"mappings":"oxDAKA,MAAMA,EAAU,CAAE,KAAM,WAAY,GAAI,MAAA,EAClCC,EAAc,CAAE,KAAM,gBAAiB,GAAI,WAAA,EAoB3CC,EAAgBC,EAAAA,IAAgB,iBAA+C,CACnF,UAAW,CACT,sBAAuB,CACrB,kBAAoBC,GAClBA,EAAI,WACN,uBAAyBC,GAAeA,EAAM,MAAM,QAAU,qBAC9D,aAAeC,GACbA,EACI,CACE,GAAGA,EAAO,IAAI,CAAC,CAAE,KAAAC,CAAA,KAAY,CAAE,KAAM,WAAqB,GAAIA,CAAA,EAAO,EACrEP,EACAC,CAAA,EAEF,CAACD,EAASC,CAAW,CAAA,CAC7B,CAEJ,CAAC,EAEY,CAAE,8BAAAO,GAAkCN"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCategories.es.js","sources":["../../../../../../src/api/queries/activities/getCategories.ts"],"sourcesContent":["import { ActivityCategoriesResponseModel, activityFeedApi } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport { AccessLevel } from '@shared/components'\n\nconst listTag = { type: 'category', id: 'LIST' } as const\nconst settingsTag = { type: 'addonSettings', id: 'powerpack' } as const\n\nexport type ActivityCategory = {\n name: string\n color: string // hex color code\n access: Record<string, AccessLevel>\n accessLevel: AccessLevel\n}\ntype GetActivityCategoriesResult = ActivityCategory[]\n\ntype Definitions = DefinitionsFromApi<typeof activityFeedApi>\ntype TagTypes = TagTypesFromApi<typeof activityFeedApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getActivityCategories'> & {\n getActivityCategories: OverrideResultType<\n Definitions['getActivityCategories'],\n GetActivityCategoriesResult\n >\n}\n\nconst categoriesApi = activityFeedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getActivityCategories: {\n transformResponse: (res: ActivityCategoriesResponseModel) =>\n res.categories as ActivityCategory[],\n transformErrorResponse: (error: any) => error.data?.detail || 'An error occurred.',\n providesTags: (result) =>\n result\n ? [\n ...result.map(({ name }) => ({ type: 'category' as const, id: name })),\n listTag,\n settingsTag,\n ]\n : [listTag, settingsTag],\n },\n },\n})\n\nexport const { useGetActivityCategoriesQuery } = categoriesApi\n"],"names":["listTag","settingsTag","categoriesApi","activityFeedApi","res","error","result","name","useGetActivityCategoriesQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,IAAU,EAAE,MAAM,YAAY,IAAI,OAAA,GAClCC,IAAc,EAAE,MAAM,iBAAiB,IAAI,YAAA,GAoB3CC,IAAgBC,EAAgB,iBAA+C;AAAA,EACnF,WAAW;AAAA,IACT,uBAAuB;AAAA,MACrB,mBAAmB,CAACC,MAClBA,EAAI;AAAA,MACN,wBAAwB,CAACC,MAAeA,EAAM,MAAM,UAAU;AAAA,MAC9D,cAAc,CAACC,MACbA,IACI;AAAA,QACE,GAAGA,EAAO,IAAI,CAAC,EAAE,MAAAC,EAAA,OAAY,EAAE,MAAM,YAAqB,IAAIA,EAAA,EAAO;AAAA,QACrEP;AAAA,QACAC;AAAA,MAAA,IAEF,CAACD,GAASC,CAAW;AAAA,IAAA;AAAA,EAC7B;AAEJ,CAAC,GAEY,EAAE,+BAAAO,MAAkCN;"}
1
+ {"version":3,"file":"getCategories.es.js","sources":["../../../../../../src/api/queries/activities/getCategories.ts"],"sourcesContent":["import { activityFeedApi } from '@shared/api/generated'\nimport type { ActivityCategoriesResponseModel } from '@shared/api/generated'\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport type { AccessLevel } from '@shared/components/AccessUser/AccessUser'\n\nconst listTag = { type: 'category', id: 'LIST' } as const\nconst settingsTag = { type: 'addonSettings', id: 'powerpack' } as const\n\nexport type ActivityCategory = {\n name: string\n color: string // hex color code\n access: Record<string, AccessLevel>\n accessLevel: AccessLevel\n}\ntype GetActivityCategoriesResult = ActivityCategory[]\n\ntype Definitions = DefinitionsFromApi<typeof activityFeedApi>\ntype TagTypes = TagTypesFromApi<typeof activityFeedApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getActivityCategories'> & {\n getActivityCategories: OverrideResultType<\n Definitions['getActivityCategories'],\n GetActivityCategoriesResult\n >\n}\n\nconst categoriesApi = activityFeedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getActivityCategories: {\n transformResponse: (res: ActivityCategoriesResponseModel) =>\n res.categories as ActivityCategory[],\n transformErrorResponse: (error: any) => error.data?.detail || 'An error occurred.',\n providesTags: (result) =>\n result\n ? [\n ...result.map(({ name }) => ({ type: 'category' as const, id: name })),\n listTag,\n settingsTag,\n ]\n : [listTag, settingsTag],\n },\n },\n})\n\nexport const { useGetActivityCategoriesQuery } = categoriesApi\n"],"names":["listTag","settingsTag","categoriesApi","activityFeedApi","res","error","result","name","useGetActivityCategoriesQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAU,EAAE,MAAM,YAAY,IAAI,OAAA,GAClCC,IAAc,EAAE,MAAM,iBAAiB,IAAI,YAAA,GAoB3CC,IAAgBC,EAAgB,iBAA+C;AAAA,EACnF,WAAW;AAAA,IACT,uBAAuB;AAAA,MACrB,mBAAmB,CAACC,MAClBA,EAAI;AAAA,MACN,wBAAwB,CAACC,MAAeA,EAAM,MAAM,UAAU;AAAA,MAC9D,cAAc,CAACC,MACbA,IACI;AAAA,QACE,GAAGA,EAAO,IAAI,CAAC,EAAE,MAAAC,EAAA,OAAY,EAAE,MAAM,YAAqB,IAAIA,EAAA,EAAO;AAAA,QACrEP;AAAA,QACAC;AAAA,MAAA,IAEF,CAACD,GAASC,CAAW;AAAA,IAAA;AAAA,EAC7B;AAEJ,CAAC,GAEY,EAAE,+BAAAO,MAAkCN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"patchTableLatestComments.cjs.js","sources":["../../../../../../src/api/queries/activities/patchTableLatestComments.ts"],"sourcesContent":["import type { EntityComment } from '@shared/api'\nimport getOverviewApi from '../overview/getOverview'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport { injectedVersionsPageApi } from '../versions/getVersionsProducts'\n\n// Backend's latestComments returns the 5 newest top-level (origin) comments, newest first.\nconst LATEST_COMMENTS_LIMIT = 5\n\n// latestComments serializes uuids with dashes, but the feed/entity uuids are dashless;\n// compare normalized so the same id matches across both shapes.\nconst normalizeId = (id?: string | null) => (id || '').replace(/-/g, '')\n\n// Update one cached table node's latestComments. Mutates the immer draft array in\n// place — reassigning it to a new array that still holds existing draft elements\n// breaks immer finalization, so the patch would silently fail to apply.\nconst applyCommentToNode = (\n node: any,\n comment: EntityComment,\n method: 'create' | 'update' | 'delete',\n) => {\n if (!Array.isArray(node.latestComments)) node.latestComments = []\n const list: EntityComment[] = node.latestComments\n const target = normalizeId(comment.activityId)\n const idx = list.findIndex((c) => normalizeId(c.activityId) === target)\n if (method === 'delete') {\n if (idx !== -1) list.splice(idx, 1)\n } else if (method === 'update') {\n if (idx !== -1) list[idx].body = comment.body\n } else {\n if (idx !== -1) list.splice(idx, 1)\n list.unshift(comment)\n if (list.length > LATEST_COMMENTS_LIMIT) list.splice(LATEST_COMMENTS_LIMIT)\n }\n}\n\n// The table caches that show latestComments, grouped by the owning api slice (so we\n// patch through each slice's own util, like the other patchers do). For every slice:\n// the tag to find its caches by entity, and where each rendered endpoint keeps its\n// comment-bearing nodes. Raw GraphQL sub-queries (GetTasksList/GetTasksByParent) are\n// omitted — the UI renders from the aggregating endpoints, which copy the data out.\n// Add an endpoint here when a new table starts showing latestComments.\nconst COMMENT_CACHE_GROUPS: {\n api: { util: any }\n tag: string\n selectors: Record<string, (draft: any) => any[]>\n}[] = [\n {\n api: getOverviewApi,\n tag: 'overviewTask',\n selectors: {\n getOverviewTasksByFolders: (d) => d ?? [],\n getTasksListInfinite: (d) => d?.pages?.flatMap((p: any) => p.tasks ?? []) ?? [],\n getGroupedTasksList: (d) => d?.tasks ?? [],\n },\n },\n {\n api: entityListsQueriesGql,\n tag: 'entityListItem',\n selectors: {\n getListItemsInfinite: (d) => d?.pages?.flatMap((p: any) => p.items ?? []) ?? [],\n },\n },\n {\n api: injectedVersionsPageApi,\n tag: 'version',\n selectors: {\n getVersionsInfinite: (d) => d?.pages?.flatMap((p: any) => p.versions ?? []) ?? [],\n getVersionsByProducts: (d) => d?.versions ?? [],\n getGroupedVersionsList: (d) => d?.versions ?? [],\n getProductsInfinite: (d) =>\n (d?.pages?.flatMap((p: any) => p.products ?? []) ?? [])\n .map((p: any) => p.featuredVersion)\n .filter(Boolean),\n },\n },\n]\n\n// Optimistically patch latestComments in the overview/versions/products/lists table caches\n// instead of refetching them. Returns the patch handles so they can be undone on failure.\nexport const patchTableLatestComments = (\n args: any,\n { dispatch, getState }: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { patch } = args\n const entityId = args.entityId ?? patch?.entityId\n const activityId = patch?.activityId ?? args.activityId\n if (!entityId || !activityId) return []\n\n // Only top-level comments appear in latestComments; ignore replies and non-comment activities.\n if (method === 'create' && !(patch?.activityType === 'comment' && patch?.referenceType === 'origin'))\n return []\n if (method === 'update' && patch?.activityType && patch.activityType !== 'comment') return []\n\n const comment: EntityComment = {\n __typename: 'EntityComment',\n activityId,\n body: patch?.body ?? '',\n author: patch?.authorName ?? null,\n createdAt: patch?.createdAt ?? '',\n }\n\n // tasks → overviewTask; versions + products(via featuredVersion) → version; list rows → entityListItem\n const state = getState()\n const target = normalizeId(entityId)\n const patches: any[] = []\n\n for (const { api: sliceApi, tag, selectors } of COMMENT_CACHE_GROUPS) {\n const entries = sliceApi.util.selectInvalidatedBy(state, [{ type: tag, id: entityId }])\n for (const { endpointName, originalArgs } of entries) {\n const selectNodes = selectors[endpointName]\n if (!selectNodes) continue // skip caches the table never renders (raw sub-queries)\n patches.push(\n dispatch(\n sliceApi.util.updateQueryData(endpointName, originalArgs, (draft: any) => {\n for (const node of selectNodes(draft)) {\n if (normalizeId(node?.id) === target || normalizeId(node?.entityId) === target) {\n applyCommentToNode(node, comment, method)\n }\n }\n }),\n ),\n )\n }\n }\n\n return patches\n}\n"],"names":["LATEST_COMMENTS_LIMIT","normalizeId","id","applyCommentToNode","node","comment","method","list","target","idx","c","COMMENT_CACHE_GROUPS","getOverviewApi","d","p","entityListsQueriesGql","injectedVersionsPageApi","patchTableLatestComments","args","dispatch","getState","patch","entityId","activityId","state","patches","sliceApi","tag","selectors","entries","endpointName","originalArgs","selectNodes","draft"],"mappings":"qRAMMA,EAAwB,EAIxBC,EAAeC,IAAwBA,GAAM,IAAI,QAAQ,KAAM,EAAE,EAKjEC,EAAqB,CACzBC,EACAC,EACAC,IACG,CACE,MAAM,QAAQF,EAAK,cAAc,IAAGA,EAAK,eAAiB,CAAA,GAC/D,MAAMG,EAAwBH,EAAK,eAC7BI,EAASP,EAAYI,EAAQ,UAAU,EACvCI,EAAMF,EAAK,UAAWG,GAAMT,EAAYS,EAAE,UAAU,IAAMF,CAAM,EAClEF,IAAW,SACTG,IAAQ,IAAIF,EAAK,OAAOE,EAAK,CAAC,EACzBH,IAAW,SAChBG,IAAQ,KAAIF,EAAKE,CAAG,EAAE,KAAOJ,EAAQ,OAErCI,IAAQ,IAAIF,EAAK,OAAOE,EAAK,CAAC,EAClCF,EAAK,QAAQF,CAAO,EAChBE,EAAK,OAASP,GAAuBO,EAAK,OAAOP,CAAqB,EAE9E,EAQMW,EAIA,CACJ,CACE,IAAKC,EAAAA,QACL,IAAK,eACL,UAAW,CACT,0BAA4BC,GAAMA,GAAK,CAAA,EACvC,qBAAuBA,GAAMA,GAAG,OAAO,QAASC,GAAWA,EAAE,OAAS,CAAA,CAAE,GAAK,CAAA,EAC7E,oBAAsBD,GAAMA,GAAG,OAAS,CAAA,CAAC,CAC3C,EAEF,CACE,IAAKE,EAAAA,QACL,IAAK,iBACL,UAAW,CACT,qBAAuBF,GAAMA,GAAG,OAAO,QAASC,GAAWA,EAAE,OAAS,CAAA,CAAE,GAAK,CAAA,CAAC,CAChF,EAEF,CACE,IAAKE,EAAAA,wBACL,IAAK,UACL,UAAW,CACT,oBAAsBH,GAAMA,GAAG,OAAO,QAASC,GAAWA,EAAE,UAAY,CAAA,CAAE,GAAK,CAAA,EAC/E,sBAAwBD,GAAMA,GAAG,UAAY,CAAA,EAC7C,uBAAyBA,GAAMA,GAAG,UAAY,CAAA,EAC9C,oBAAsBA,IACnBA,GAAG,OAAO,QAASC,GAAWA,EAAE,UAAY,CAAA,CAAE,GAAK,CAAA,GACjD,IAAKA,GAAWA,EAAE,eAAe,EACjC,OAAO,OAAO,CAAA,CACrB,CAEJ,EAIaG,EAA2B,CACtCC,EACA,CAAE,SAAAC,EAAU,SAAAC,CAAA,EACZd,IACG,CACH,KAAM,CAAE,MAAAe,GAAUH,EACZI,EAAWJ,EAAK,UAAYG,GAAO,SACnCE,EAAaF,GAAO,YAAcH,EAAK,WAC7C,GAAI,CAACI,GAAY,CAACC,QAAmB,CAAA,EAGrC,GAAIjB,IAAW,UAAY,EAAEe,GAAO,eAAiB,WAAaA,GAAO,gBAAkB,UACzF,MAAO,CAAA,EACT,GAAIf,IAAW,UAAYe,GAAO,cAAgBA,EAAM,eAAiB,gBAAkB,CAAA,EAE3F,MAAMhB,EAAyB,CAC7B,WAAY,gBACZ,WAAAkB,EACA,KAAMF,GAAO,MAAQ,GACrB,OAAQA,GAAO,YAAc,KAC7B,UAAWA,GAAO,WAAa,EAAA,EAI3BG,EAAQJ,EAAA,EACRZ,EAASP,EAAYqB,CAAQ,EAC7BG,EAAiB,CAAA,EAEvB,SAAW,CAAE,IAAKC,EAAU,IAAAC,EAAK,UAAAC,CAAA,IAAejB,EAAsB,CACpE,MAAMkB,EAAUH,EAAS,KAAK,oBAAoBF,EAAO,CAAC,CAAE,KAAMG,EAAK,GAAIL,CAAA,CAAU,CAAC,EACtF,SAAW,CAAE,aAAAQ,EAAc,aAAAC,CAAA,IAAkBF,EAAS,CACpD,MAAMG,EAAcJ,EAAUE,CAAY,EACrCE,GACLP,EAAQ,KACNN,EACEO,EAAS,KAAK,gBAAgBI,EAAcC,EAAeE,GAAe,CACxE,UAAW7B,KAAQ4B,EAAYC,CAAK,GAC9BhC,EAAYG,GAAM,EAAE,IAAMI,GAAUP,EAAYG,GAAM,QAAQ,IAAMI,IACtEL,EAAmBC,EAAMC,EAASC,CAAM,CAG9C,CAAC,CAAA,CACH,CAEJ,CACF,CAEA,OAAOmB,CACT"}
1
+ {"version":3,"file":"patchTableLatestComments.cjs.js","sources":["../../../../../../src/api/queries/activities/patchTableLatestComments.ts"],"sourcesContent":["import type { EntityComment } from '@shared/api/generated/graphql'\nimport getOverviewApi from '../overview/getOverview'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport { injectedVersionsPageApi } from '../versions/getVersionsProducts'\n\n// Backend's latestComments returns the 5 newest top-level (origin) comments, newest first.\nconst LATEST_COMMENTS_LIMIT = 5\n\n// latestComments serializes uuids with dashes, but the feed/entity uuids are dashless;\n// compare normalized so the same id matches across both shapes.\nconst normalizeId = (id?: string | null) => (id || '').replace(/-/g, '')\n\n// Update one cached table node's latestComments. Mutates the immer draft array in\n// place — reassigning it to a new array that still holds existing draft elements\n// breaks immer finalization, so the patch would silently fail to apply.\nconst applyCommentToNode = (\n node: any,\n comment: EntityComment,\n method: 'create' | 'update' | 'delete',\n) => {\n if (!Array.isArray(node.latestComments)) node.latestComments = []\n const list: EntityComment[] = node.latestComments\n const target = normalizeId(comment.activityId)\n const idx = list.findIndex((c) => normalizeId(c.activityId) === target)\n if (method === 'delete') {\n if (idx !== -1) list.splice(idx, 1)\n } else if (method === 'update') {\n if (idx !== -1) list[idx].body = comment.body\n } else {\n if (idx !== -1) list.splice(idx, 1)\n list.unshift(comment)\n if (list.length > LATEST_COMMENTS_LIMIT) list.splice(LATEST_COMMENTS_LIMIT)\n }\n}\n\n// The table caches that show latestComments, grouped by the owning api slice (so we\n// patch through each slice's own util, like the other patchers do). For every slice:\n// the tag to find its caches by entity, and where each rendered endpoint keeps its\n// comment-bearing nodes. Raw GraphQL sub-queries (GetTasksList/GetTasksByParent) are\n// omitted — the UI renders from the aggregating endpoints, which copy the data out.\n// Add an endpoint here when a new table starts showing latestComments.\nconst COMMENT_CACHE_GROUPS: {\n api: { util: any }\n tag: string\n selectors: Record<string, (draft: any) => any[]>\n}[] = [\n {\n api: getOverviewApi,\n tag: 'overviewTask',\n selectors: {\n getOverviewTasksByFolders: (d) => d ?? [],\n getTasksListInfinite: (d) => d?.pages?.flatMap((p: any) => p.tasks ?? []) ?? [],\n getGroupedTasksList: (d) => d?.tasks ?? [],\n },\n },\n {\n api: entityListsQueriesGql,\n tag: 'entityListItem',\n selectors: {\n getListItemsInfinite: (d) => d?.pages?.flatMap((p: any) => p.items ?? []) ?? [],\n },\n },\n {\n api: injectedVersionsPageApi,\n tag: 'version',\n selectors: {\n getVersionsInfinite: (d) => d?.pages?.flatMap((p: any) => p.versions ?? []) ?? [],\n getVersionsByProducts: (d) => d?.versions ?? [],\n getGroupedVersionsList: (d) => d?.versions ?? [],\n getProductsInfinite: (d) =>\n (d?.pages?.flatMap((p: any) => p.products ?? []) ?? [])\n .map((p: any) => p.featuredVersion)\n .filter(Boolean),\n },\n },\n]\n\n// Optimistically patch latestComments in the overview/versions/products/lists table caches\n// instead of refetching them. Returns the patch handles so they can be undone on failure.\nexport const patchTableLatestComments = (\n args: any,\n { dispatch, getState }: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { patch } = args\n const entityId = args.entityId ?? patch?.entityId\n const activityId = patch?.activityId ?? args.activityId\n if (!entityId || !activityId) return []\n\n // Only top-level comments appear in latestComments; ignore replies and non-comment activities.\n if (\n method === 'create' &&\n !(patch?.activityType === 'comment' && patch?.referenceType === 'origin')\n )\n return []\n if (method === 'update' && patch?.activityType && patch.activityType !== 'comment') return []\n\n const comment: EntityComment = {\n __typename: 'EntityComment',\n activityId,\n body: patch?.body ?? '',\n author: patch?.authorName ?? null,\n createdAt: patch?.createdAt ?? '',\n }\n\n // tasks → overviewTask; versions + products(via featuredVersion) → version; list rows → entityListItem\n const state = getState()\n const target = normalizeId(entityId)\n const patches: any[] = []\n\n for (const { api: sliceApi, tag, selectors } of COMMENT_CACHE_GROUPS) {\n const entries = sliceApi.util.selectInvalidatedBy(state, [{ type: tag, id: entityId }])\n for (const { endpointName, originalArgs } of entries) {\n const selectNodes = selectors[endpointName]\n if (!selectNodes) continue // skip caches the table never renders (raw sub-queries)\n patches.push(\n dispatch(\n sliceApi.util.updateQueryData(endpointName, originalArgs, (draft: any) => {\n for (const node of selectNodes(draft)) {\n if (normalizeId(node?.id) === target || normalizeId(node?.entityId) === target) {\n applyCommentToNode(node, comment, method)\n }\n }\n }),\n ),\n )\n }\n }\n\n return patches\n}\n"],"names":["LATEST_COMMENTS_LIMIT","normalizeId","id","applyCommentToNode","node","comment","method","list","target","idx","c","COMMENT_CACHE_GROUPS","getOverviewApi","d","p","entityListsQueriesGql","injectedVersionsPageApi","patchTableLatestComments","args","dispatch","getState","patch","entityId","activityId","state","patches","sliceApi","tag","selectors","entries","endpointName","originalArgs","selectNodes","draft"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"patchTableLatestComments.es.js","sources":["../../../../../../src/api/queries/activities/patchTableLatestComments.ts"],"sourcesContent":["import type { EntityComment } from '@shared/api'\nimport getOverviewApi from '../overview/getOverview'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport { injectedVersionsPageApi } from '../versions/getVersionsProducts'\n\n// Backend's latestComments returns the 5 newest top-level (origin) comments, newest first.\nconst LATEST_COMMENTS_LIMIT = 5\n\n// latestComments serializes uuids with dashes, but the feed/entity uuids are dashless;\n// compare normalized so the same id matches across both shapes.\nconst normalizeId = (id?: string | null) => (id || '').replace(/-/g, '')\n\n// Update one cached table node's latestComments. Mutates the immer draft array in\n// place — reassigning it to a new array that still holds existing draft elements\n// breaks immer finalization, so the patch would silently fail to apply.\nconst applyCommentToNode = (\n node: any,\n comment: EntityComment,\n method: 'create' | 'update' | 'delete',\n) => {\n if (!Array.isArray(node.latestComments)) node.latestComments = []\n const list: EntityComment[] = node.latestComments\n const target = normalizeId(comment.activityId)\n const idx = list.findIndex((c) => normalizeId(c.activityId) === target)\n if (method === 'delete') {\n if (idx !== -1) list.splice(idx, 1)\n } else if (method === 'update') {\n if (idx !== -1) list[idx].body = comment.body\n } else {\n if (idx !== -1) list.splice(idx, 1)\n list.unshift(comment)\n if (list.length > LATEST_COMMENTS_LIMIT) list.splice(LATEST_COMMENTS_LIMIT)\n }\n}\n\n// The table caches that show latestComments, grouped by the owning api slice (so we\n// patch through each slice's own util, like the other patchers do). For every slice:\n// the tag to find its caches by entity, and where each rendered endpoint keeps its\n// comment-bearing nodes. Raw GraphQL sub-queries (GetTasksList/GetTasksByParent) are\n// omitted — the UI renders from the aggregating endpoints, which copy the data out.\n// Add an endpoint here when a new table starts showing latestComments.\nconst COMMENT_CACHE_GROUPS: {\n api: { util: any }\n tag: string\n selectors: Record<string, (draft: any) => any[]>\n}[] = [\n {\n api: getOverviewApi,\n tag: 'overviewTask',\n selectors: {\n getOverviewTasksByFolders: (d) => d ?? [],\n getTasksListInfinite: (d) => d?.pages?.flatMap((p: any) => p.tasks ?? []) ?? [],\n getGroupedTasksList: (d) => d?.tasks ?? [],\n },\n },\n {\n api: entityListsQueriesGql,\n tag: 'entityListItem',\n selectors: {\n getListItemsInfinite: (d) => d?.pages?.flatMap((p: any) => p.items ?? []) ?? [],\n },\n },\n {\n api: injectedVersionsPageApi,\n tag: 'version',\n selectors: {\n getVersionsInfinite: (d) => d?.pages?.flatMap((p: any) => p.versions ?? []) ?? [],\n getVersionsByProducts: (d) => d?.versions ?? [],\n getGroupedVersionsList: (d) => d?.versions ?? [],\n getProductsInfinite: (d) =>\n (d?.pages?.flatMap((p: any) => p.products ?? []) ?? [])\n .map((p: any) => p.featuredVersion)\n .filter(Boolean),\n },\n },\n]\n\n// Optimistically patch latestComments in the overview/versions/products/lists table caches\n// instead of refetching them. Returns the patch handles so they can be undone on failure.\nexport const patchTableLatestComments = (\n args: any,\n { dispatch, getState }: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { patch } = args\n const entityId = args.entityId ?? patch?.entityId\n const activityId = patch?.activityId ?? args.activityId\n if (!entityId || !activityId) return []\n\n // Only top-level comments appear in latestComments; ignore replies and non-comment activities.\n if (method === 'create' && !(patch?.activityType === 'comment' && patch?.referenceType === 'origin'))\n return []\n if (method === 'update' && patch?.activityType && patch.activityType !== 'comment') return []\n\n const comment: EntityComment = {\n __typename: 'EntityComment',\n activityId,\n body: patch?.body ?? '',\n author: patch?.authorName ?? null,\n createdAt: patch?.createdAt ?? '',\n }\n\n // tasks → overviewTask; versions + products(via featuredVersion) → version; list rows → entityListItem\n const state = getState()\n const target = normalizeId(entityId)\n const patches: any[] = []\n\n for (const { api: sliceApi, tag, selectors } of COMMENT_CACHE_GROUPS) {\n const entries = sliceApi.util.selectInvalidatedBy(state, [{ type: tag, id: entityId }])\n for (const { endpointName, originalArgs } of entries) {\n const selectNodes = selectors[endpointName]\n if (!selectNodes) continue // skip caches the table never renders (raw sub-queries)\n patches.push(\n dispatch(\n sliceApi.util.updateQueryData(endpointName, originalArgs, (draft: any) => {\n for (const node of selectNodes(draft)) {\n if (normalizeId(node?.id) === target || normalizeId(node?.entityId) === target) {\n applyCommentToNode(node, comment, method)\n }\n }\n }),\n ),\n )\n }\n }\n\n return patches\n}\n"],"names":["LATEST_COMMENTS_LIMIT","normalizeId","id","applyCommentToNode","node","comment","method","list","target","idx","c","COMMENT_CACHE_GROUPS","getOverviewApi","d","p","entityListsQueriesGql","injectedVersionsPageApi","patchTableLatestComments","args","dispatch","getState","patch","entityId","activityId","state","patches","sliceApi","tag","selectors","entries","endpointName","originalArgs","selectNodes","draft"],"mappings":"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"}
1
+ {"version":3,"file":"patchTableLatestComments.es.js","sources":["../../../../../../src/api/queries/activities/patchTableLatestComments.ts"],"sourcesContent":["import type { EntityComment } from '@shared/api/generated/graphql'\nimport getOverviewApi from '../overview/getOverview'\nimport { entityListsQueriesGql } from '../entityLists/updateLists'\nimport { injectedVersionsPageApi } from '../versions/getVersionsProducts'\n\n// Backend's latestComments returns the 5 newest top-level (origin) comments, newest first.\nconst LATEST_COMMENTS_LIMIT = 5\n\n// latestComments serializes uuids with dashes, but the feed/entity uuids are dashless;\n// compare normalized so the same id matches across both shapes.\nconst normalizeId = (id?: string | null) => (id || '').replace(/-/g, '')\n\n// Update one cached table node's latestComments. Mutates the immer draft array in\n// place — reassigning it to a new array that still holds existing draft elements\n// breaks immer finalization, so the patch would silently fail to apply.\nconst applyCommentToNode = (\n node: any,\n comment: EntityComment,\n method: 'create' | 'update' | 'delete',\n) => {\n if (!Array.isArray(node.latestComments)) node.latestComments = []\n const list: EntityComment[] = node.latestComments\n const target = normalizeId(comment.activityId)\n const idx = list.findIndex((c) => normalizeId(c.activityId) === target)\n if (method === 'delete') {\n if (idx !== -1) list.splice(idx, 1)\n } else if (method === 'update') {\n if (idx !== -1) list[idx].body = comment.body\n } else {\n if (idx !== -1) list.splice(idx, 1)\n list.unshift(comment)\n if (list.length > LATEST_COMMENTS_LIMIT) list.splice(LATEST_COMMENTS_LIMIT)\n }\n}\n\n// The table caches that show latestComments, grouped by the owning api slice (so we\n// patch through each slice's own util, like the other patchers do). For every slice:\n// the tag to find its caches by entity, and where each rendered endpoint keeps its\n// comment-bearing nodes. Raw GraphQL sub-queries (GetTasksList/GetTasksByParent) are\n// omitted — the UI renders from the aggregating endpoints, which copy the data out.\n// Add an endpoint here when a new table starts showing latestComments.\nconst COMMENT_CACHE_GROUPS: {\n api: { util: any }\n tag: string\n selectors: Record<string, (draft: any) => any[]>\n}[] = [\n {\n api: getOverviewApi,\n tag: 'overviewTask',\n selectors: {\n getOverviewTasksByFolders: (d) => d ?? [],\n getTasksListInfinite: (d) => d?.pages?.flatMap((p: any) => p.tasks ?? []) ?? [],\n getGroupedTasksList: (d) => d?.tasks ?? [],\n },\n },\n {\n api: entityListsQueriesGql,\n tag: 'entityListItem',\n selectors: {\n getListItemsInfinite: (d) => d?.pages?.flatMap((p: any) => p.items ?? []) ?? [],\n },\n },\n {\n api: injectedVersionsPageApi,\n tag: 'version',\n selectors: {\n getVersionsInfinite: (d) => d?.pages?.flatMap((p: any) => p.versions ?? []) ?? [],\n getVersionsByProducts: (d) => d?.versions ?? [],\n getGroupedVersionsList: (d) => d?.versions ?? [],\n getProductsInfinite: (d) =>\n (d?.pages?.flatMap((p: any) => p.products ?? []) ?? [])\n .map((p: any) => p.featuredVersion)\n .filter(Boolean),\n },\n },\n]\n\n// Optimistically patch latestComments in the overview/versions/products/lists table caches\n// instead of refetching them. Returns the patch handles so they can be undone on failure.\nexport const patchTableLatestComments = (\n args: any,\n { dispatch, getState }: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { patch } = args\n const entityId = args.entityId ?? patch?.entityId\n const activityId = patch?.activityId ?? args.activityId\n if (!entityId || !activityId) return []\n\n // Only top-level comments appear in latestComments; ignore replies and non-comment activities.\n if (\n method === 'create' &&\n !(patch?.activityType === 'comment' && patch?.referenceType === 'origin')\n )\n return []\n if (method === 'update' && patch?.activityType && patch.activityType !== 'comment') return []\n\n const comment: EntityComment = {\n __typename: 'EntityComment',\n activityId,\n body: patch?.body ?? '',\n author: patch?.authorName ?? null,\n createdAt: patch?.createdAt ?? '',\n }\n\n // tasks → overviewTask; versions + products(via featuredVersion) → version; list rows → entityListItem\n const state = getState()\n const target = normalizeId(entityId)\n const patches: any[] = []\n\n for (const { api: sliceApi, tag, selectors } of COMMENT_CACHE_GROUPS) {\n const entries = sliceApi.util.selectInvalidatedBy(state, [{ type: tag, id: entityId }])\n for (const { endpointName, originalArgs } of entries) {\n const selectNodes = selectors[endpointName]\n if (!selectNodes) continue // skip caches the table never renders (raw sub-queries)\n patches.push(\n dispatch(\n sliceApi.util.updateQueryData(endpointName, originalArgs, (draft: any) => {\n for (const node of selectNodes(draft)) {\n if (normalizeId(node?.id) === target || normalizeId(node?.entityId) === target) {\n applyCommentToNode(node, comment, method)\n }\n }\n }),\n ),\n )\n }\n }\n\n return patches\n}\n"],"names":["LATEST_COMMENTS_LIMIT","normalizeId","id","applyCommentToNode","node","comment","method","list","target","idx","c","COMMENT_CACHE_GROUPS","getOverviewApi","d","p","entityListsQueriesGql","injectedVersionsPageApi","patchTableLatestComments","args","dispatch","getState","patch","entityId","activityId","state","patches","sliceApi","tag","selectors","entries","endpointName","originalArgs","selectNodes","draft"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"activitiesHelpers.cjs.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\n/**\n * Shared helper to generate activity tags for both standard and infinite queries.\n */\nexport const provideSharedActivityTags = (\n result: { activities?: any[]; pages?: Array<{ activities: any[] }> } | undefined,\n _error: unknown,\n // Widened type signatures to allow string[] | string | null | undefined\n arg: {\n entityIds?: string | string[] | null\n activityTypes?: string | string[] | null\n filter?: any\n },\n) => {\n if (!result) {\n return [{ type: 'activity' as const, id: 'LIST' }]\n }\n\n const { entityIds, activityTypes, filter } = arg\n\n // Helper now safely skips null/undefined values\n const normalizeIds = (ids: unknown): string[] =>\n (Array.isArray(ids) ? ids : [ids]).filter(Boolean) as string[]\n\n const cleanEntityIds = normalizeIds(entityIds)\n const cleanActivityTypes = normalizeIds(activityTypes)\n\n const activities = result.pages\n ? result.pages.flatMap((page) => page.activities)\n : result.activities || []\n\n return [\n // Individual Activity Tags\n ...activities.map((a) => ({ type: 'activity' as const, id: a.activityId })),\n { type: 'activity' as const, id: 'LIST' },\n\n // Base Entity Activity Tags\n ...cleanEntityIds.map((id) => ({ type: 'entityActivities' as const, id })),\n { type: 'entityActivities' as const, id: 'LIST' },\n\n // Activity Type Tags\n ...cleanActivityTypes.map((type) => ({ type: 'entityActivities' as const, id: type })),\n\n // Filtered Entity Activity Tags\n ...cleanEntityIds.map((id) => ({\n type: 'entityActivities' as const,\n id: `${id}-${filterKey(filter)}`,\n })),\n\n // Published Version Tags\n ...activities\n .filter((a) => a.activityType === 'version.publish')\n .map((a) => ({\n type: 'entityActivities' as const,\n id: `version.publish-${a.origin.id}`,\n })),\n ]\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: [\n 'comment',\n 'version.publish',\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'version.review',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: [\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","provideSharedActivityTags","_error","arg","entityIds","activityTypes","normalizeIds","cleanEntityIds","cleanActivityTypes","page","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
1
+ {"version":3,"file":"activitiesHelpers.cjs.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport type { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\n/**\n * Shared helper to generate activity tags for both standard and infinite queries.\n */\nexport const provideSharedActivityTags = (\n result: { activities?: any[]; pages?: Array<{ activities: any[] }> } | undefined,\n _error: unknown,\n // Widened type signatures to allow string[] | string | null | undefined\n arg: {\n entityIds?: string | string[] | null\n activityTypes?: string | string[] | null\n filter?: any\n },\n) => {\n if (!result) {\n return [{ type: 'activity' as const, id: 'LIST' }]\n }\n\n const { entityIds, activityTypes, filter } = arg\n\n // Helper now safely skips null/undefined values\n const normalizeIds = (ids: unknown): string[] =>\n (Array.isArray(ids) ? ids : [ids]).filter(Boolean) as string[]\n\n const cleanEntityIds = normalizeIds(entityIds)\n const cleanActivityTypes = normalizeIds(activityTypes)\n\n const activities = result.pages\n ? result.pages.flatMap((page) => page.activities)\n : result.activities || []\n\n return [\n // Individual Activity Tags\n ...activities.map((a) => ({ type: 'activity' as const, id: a.activityId })),\n { type: 'activity' as const, id: 'LIST' },\n\n // Base Entity Activity Tags\n ...cleanEntityIds.map((id) => ({ type: 'entityActivities' as const, id })),\n { type: 'entityActivities' as const, id: 'LIST' },\n\n // Activity Type Tags\n ...cleanActivityTypes.map((type) => ({ type: 'entityActivities' as const, id: type })),\n\n // Filtered Entity Activity Tags\n ...cleanEntityIds.map((id) => ({\n type: 'entityActivities' as const,\n id: `${id}-${filterKey(filter)}`,\n })),\n\n // Published Version Tags\n ...activities\n .filter((a) => a.activityType === 'version.publish')\n .map((a) => ({\n type: 'entityActivities' as const,\n id: `version.publish-${a.origin.id}`,\n })),\n ]\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: [\n 'comment',\n 'version.publish',\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'version.review',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: [\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","provideSharedActivityTags","_error","arg","entityIds","activityTypes","normalizeIds","cleanEntityIds","cleanActivityTypes","page","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"activitiesHelpers.es.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\n/**\n * Shared helper to generate activity tags for both standard and infinite queries.\n */\nexport const provideSharedActivityTags = (\n result: { activities?: any[]; pages?: Array<{ activities: any[] }> } | undefined,\n _error: unknown,\n // Widened type signatures to allow string[] | string | null | undefined\n arg: {\n entityIds?: string | string[] | null\n activityTypes?: string | string[] | null\n filter?: any\n },\n) => {\n if (!result) {\n return [{ type: 'activity' as const, id: 'LIST' }]\n }\n\n const { entityIds, activityTypes, filter } = arg\n\n // Helper now safely skips null/undefined values\n const normalizeIds = (ids: unknown): string[] =>\n (Array.isArray(ids) ? ids : [ids]).filter(Boolean) as string[]\n\n const cleanEntityIds = normalizeIds(entityIds)\n const cleanActivityTypes = normalizeIds(activityTypes)\n\n const activities = result.pages\n ? result.pages.flatMap((page) => page.activities)\n : result.activities || []\n\n return [\n // Individual Activity Tags\n ...activities.map((a) => ({ type: 'activity' as const, id: a.activityId })),\n { type: 'activity' as const, id: 'LIST' },\n\n // Base Entity Activity Tags\n ...cleanEntityIds.map((id) => ({ type: 'entityActivities' as const, id })),\n { type: 'entityActivities' as const, id: 'LIST' },\n\n // Activity Type Tags\n ...cleanActivityTypes.map((type) => ({ type: 'entityActivities' as const, id: type })),\n\n // Filtered Entity Activity Tags\n ...cleanEntityIds.map((id) => ({\n type: 'entityActivities' as const,\n id: `${id}-${filterKey(filter)}`,\n })),\n\n // Published Version Tags\n ...activities\n .filter((a) => a.activityType === 'version.publish')\n .map((a) => ({\n type: 'entityActivities' as const,\n id: `version.publish-${a.origin.id}`,\n })),\n ]\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: [\n 'comment',\n 'version.publish',\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'version.review',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: [\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","provideSharedActivityTags","_error","arg","entityIds","activityTypes","normalizeIds","cleanEntityIds","cleanActivityTypes","page","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
1
+ {"version":3,"file":"activitiesHelpers.es.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport type { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\n/**\n * Shared helper to generate activity tags for both standard and infinite queries.\n */\nexport const provideSharedActivityTags = (\n result: { activities?: any[]; pages?: Array<{ activities: any[] }> } | undefined,\n _error: unknown,\n // Widened type signatures to allow string[] | string | null | undefined\n arg: {\n entityIds?: string | string[] | null\n activityTypes?: string | string[] | null\n filter?: any\n },\n) => {\n if (!result) {\n return [{ type: 'activity' as const, id: 'LIST' }]\n }\n\n const { entityIds, activityTypes, filter } = arg\n\n // Helper now safely skips null/undefined values\n const normalizeIds = (ids: unknown): string[] =>\n (Array.isArray(ids) ? ids : [ids]).filter(Boolean) as string[]\n\n const cleanEntityIds = normalizeIds(entityIds)\n const cleanActivityTypes = normalizeIds(activityTypes)\n\n const activities = result.pages\n ? result.pages.flatMap((page) => page.activities)\n : result.activities || []\n\n return [\n // Individual Activity Tags\n ...activities.map((a) => ({ type: 'activity' as const, id: a.activityId })),\n { type: 'activity' as const, id: 'LIST' },\n\n // Base Entity Activity Tags\n ...cleanEntityIds.map((id) => ({ type: 'entityActivities' as const, id })),\n { type: 'entityActivities' as const, id: 'LIST' },\n\n // Activity Type Tags\n ...cleanActivityTypes.map((type) => ({ type: 'entityActivities' as const, id: type })),\n\n // Filtered Entity Activity Tags\n ...cleanEntityIds.map((id) => ({\n type: 'entityActivities' as const,\n id: `${id}-${filterKey(filter)}`,\n })),\n\n // Published Version Tags\n ...activities\n .filter((a) => a.activityType === 'version.publish')\n .map((a) => ({\n type: 'entityActivities' as const,\n id: `version.publish-${a.origin.id}`,\n })),\n ]\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: [\n 'comment',\n 'version.publish',\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'version.review',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: [\n 'status.change',\n 'assignee.add',\n 'assignee.remove',\n 'attrib.change',\n 'tags.change',\n 'subtype.change',\n ],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","provideSharedActivityTags","_error","arg","entityIds","activityTypes","normalizeIds","cleanEntityIds","cleanActivityTypes","page","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}