@ynput/ayon-frontend-shared 0.3.41 → 0.3.43

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 (928) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +6 -6
  3. package/dist/ProjectTreeTable.cjs.js +1 -1
  4. package/dist/ProjectTreeTable.es.js +6 -6
  5. package/dist/Slicer.cjs.js +1 -1
  6. package/dist/Slicer.es.js +22 -16
  7. package/dist/Slicer.es.js.map +1 -1
  8. package/dist/_virtual/index.cjs22.js +1 -1
  9. package/dist/_virtual/index.cjs23.js +1 -1
  10. package/dist/_virtual/index.cjs24.js +1 -1
  11. package/dist/_virtual/index.es22.js +3 -3
  12. package/dist/_virtual/index.es23.js +5 -5
  13. package/dist/_virtual/index.es24.js +5 -5
  14. package/dist/api.cjs.js +1 -1
  15. package/dist/api.es.js +376 -374
  16. package/dist/api.es.js.map +1 -1
  17. package/dist/hooks.cjs.js +1 -1
  18. package/dist/hooks.es.js +34 -30
  19. package/dist/hooks.es.js.map +1 -1
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.es.js +6 -6
  22. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  23. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  24. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  25. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  26. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  27. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  28. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  29. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  30. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  31. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  32. package/dist/shared/src/api/generated/graphql.cjs.js +54 -35
  33. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  34. package/dist/shared/src/api/generated/graphql.es.js +106 -82
  35. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  36. package/dist/shared/src/api/generated/graphqlLinks.cjs.js +12 -12
  37. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  38. package/dist/shared/src/api/generated/graphqlLinks.es.js +9 -8
  39. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  41. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  42. package/dist/shared/src/api/queries/activities/getActivities.es.js +176 -73
  43. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  44. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  45. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +8 -1
  46. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  47. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  48. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  49. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +155 -61
  50. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  51. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
  52. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +32 -28
  54. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  56. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +104 -51
  58. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  60. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  62. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/entityLists/getLists.es.js +173 -124
  64. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  65. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  66. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +93 -40
  68. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  70. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/folders/getFolders.es.js +108 -55
  72. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  73. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  74. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +116 -63
  76. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  77. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  78. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/links/getLinks.es.js +15 -20
  80. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  81. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  82. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  83. package/dist/shared/src/api/queries/overview/getOverview.es.js +284 -227
  84. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  85. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  86. package/dist/shared/src/api/queries/overview/updateOverview.es.js +1 -3
  87. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  88. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  89. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  90. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +132 -80
  91. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/review/getReview.es.js +17 -20
  95. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/review/updateReview.es.js +1 -1
  99. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  101. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  102. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +142 -91
  103. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -2
  105. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  107. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +541 -334
  111. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  112. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  113. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  114. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +123 -29
  115. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  116. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  117. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  118. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +2 -3
  119. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  120. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  121. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  122. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -3
  123. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  124. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  125. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  126. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +139 -45
  127. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  128. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  129. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  130. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -6
  131. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  132. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  133. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +6 -7
  134. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  135. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  136. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  137. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +2 -3
  138. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  139. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  140. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +112 -18
  142. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  143. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  144. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  145. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +107 -13
  146. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  147. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  149. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -6
  150. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  151. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  152. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  153. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +118 -24
  154. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +96 -2
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  159. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  160. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  161. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +2 -3
  162. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  163. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  164. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  165. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -6
  166. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  167. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  168. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -6
  169. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  170. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  171. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +7 -8
  172. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  173. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  174. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  175. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +4 -5
  176. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  177. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  178. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  179. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +2 -3
  180. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  181. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  182. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  183. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +2 -3
  184. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  185. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  186. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  187. package/dist/shared/src/components/LinksManager/LinksManager.es.js +11 -12
  188. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  189. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  190. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  191. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -6
  192. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  193. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  194. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -3
  195. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  196. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  197. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  198. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +6 -7
  199. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  200. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  201. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  202. package/dist/shared/src/components/Menu/Menu.es.js +9 -10
  203. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  204. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  205. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  206. package/dist/shared/src/components/Menu/MenuItem.es.js +0 -1
  207. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  208. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  209. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  210. package/dist/shared/src/components/Menu/MenuList.es.js +2 -3
  211. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  212. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  213. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  214. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +2 -3
  215. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  216. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  217. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  218. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +2 -3
  219. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  220. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
  221. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
  222. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +2 -3
  223. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
  224. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  225. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  226. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +20 -20
  227. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  228. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  229. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +52 -52
  230. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  231. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  232. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  233. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +2 -3
  234. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  235. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  236. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  237. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +18 -17
  238. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  239. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  240. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  241. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +7 -7
  242. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  243. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  244. package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -6
  245. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  246. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  247. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -3
  248. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  249. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -6
  252. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  253. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  254. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -6
  255. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  256. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  257. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -6
  258. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  259. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +2 -3
  261. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  263. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  264. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -6
  265. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +7 -8
  268. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  269. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  270. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +2 -3
  272. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  273. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  274. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +6 -6
  276. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  277. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  278. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -6
  279. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  280. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  281. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +2 -3
  282. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  283. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  284. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  285. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +2 -3
  286. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  287. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  288. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  289. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +121 -27
  290. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  291. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  292. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  293. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +116 -22
  294. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  295. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  296. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  297. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -6
  298. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  299. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  300. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -6
  301. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  302. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  303. package/dist/shared/src/components/Watchers/Watchers.es.js +2 -3
  304. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  305. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  306. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -6
  308. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  309. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/Actions/Actions.es.js +44 -45
  311. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  312. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +2 -2
  313. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +28 -28
  315. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  316. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +22 -19
  317. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +25 -22
  319. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  320. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  321. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -6
  323. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +6 -6
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -6
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -6
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +28 -28
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +2 -3
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +10 -10
  343. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  344. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +114 -20
  346. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -6
  350. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -3
  353. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +6 -6
  357. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +6 -6
  360. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +6 -6
  363. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  364. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +2 -3
  366. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  368. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +104 -10
  370. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  372. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -5
  374. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  375. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +28 -28
  378. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  379. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -6
  381. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  382. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -6
  384. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  385. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -6
  387. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  388. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +105 -11
  390. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  391. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  392. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +2 -3
  394. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  395. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  396. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  397. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +121 -27
  398. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  399. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  400. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/Feed/Feed.es.js +3 -4
  402. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  403. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -6
  406. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  407. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  408. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +90 -81
  409. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  410. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  411. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -6
  413. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  414. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +118 -24
  416. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  417. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  418. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +28 -30
  420. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  421. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  422. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +2 -3
  424. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  425. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +6 -6
  428. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  429. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +6 -6
  431. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +2 -3
  434. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  435. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  436. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +103 -9
  438. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  439. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  440. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +2 -3
  442. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  443. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  444. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +3 -4
  446. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  447. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  448. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +2 -3
  450. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  451. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  452. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +6 -6
  454. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  455. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +2 -3
  457. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  458. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  459. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +9 -10
  461. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  462. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
  463. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +2 -3
  465. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
  466. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js +2 -0
  467. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.cjs.js.map +1 -0
  468. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js +5 -0
  469. package/dist/shared/src/containers/Feed/helpers/getActivityUserName.es.js.map +1 -0
  470. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  471. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +184 -87
  473. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  474. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  475. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -3
  477. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  478. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +1 -1
  479. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +2 -3
  481. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  482. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  483. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +104 -10
  485. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  486. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  487. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +107 -13
  489. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  490. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  491. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ListTable/ListTable.es.js +19 -19
  493. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  494. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +6 -6
  496. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  497. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -6
  499. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +582 -581
  502. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +6 -6
  506. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -6
  509. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -6
  512. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -6
  515. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +24 -5
  516. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +183 -41
  518. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -6
  522. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  523. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +116 -113
  525. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +20 -20
  529. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -5
  532. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  533. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +2 -3
  536. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  537. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -6
  540. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  541. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +177 -83
  543. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -3
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +25 -25
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +83 -80
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -6
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -6
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +23 -23
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -6
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +203 -216
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +23 -23
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +22 -22
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -6
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -6
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +7 -7
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +21 -21
  590. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +12 -15
  593. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +47 -43
  597. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +2 -3
  601. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +24 -24
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -6
  610. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +6 -6
  613. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  614. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +6 -6
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -6
  619. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +6 -7
  622. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +22 -22
  626. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -6
  629. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +6 -7
  632. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  634. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +174 -80
  636. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  638. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +106 -12
  640. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  641. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  642. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  643. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +39 -39
  644. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  645. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  646. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -6
  647. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  648. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +57 -70
  650. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  651. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  652. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +2 -3
  654. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  655. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  656. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -6
  658. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  659. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +130 -132
  661. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js +2 -0
  663. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.cjs.js.map +1 -0
  664. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js +6 -0
  665. package/dist/shared/src/containers/Slicer/context/SlicerContextInstance.es.js.map +1 -0
  666. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  667. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +2 -3
  669. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  670. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js +1 -1
  671. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js +11 -14
  673. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js.map +1 -1
  674. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  675. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +2 -3
  677. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  678. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  679. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  680. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +40 -50
  681. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  682. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  683. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  684. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +2 -3
  685. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  686. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +2 -0
  687. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -0
  688. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +155 -0
  689. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -0
  690. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +2 -0
  691. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -0
  692. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +170 -0
  693. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -0
  694. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +2 -0
  695. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -0
  696. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +142 -0
  697. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -0
  698. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  699. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  700. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +47 -44
  701. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  702. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  703. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  704. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +2 -3
  705. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  706. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
  707. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  708. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +11 -16
  709. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  710. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  711. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  712. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +123 -29
  713. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  714. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  715. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  716. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -5
  717. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  718. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  719. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -5
  721. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  722. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  723. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +2 -3
  724. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  725. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  726. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  727. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +4 -5
  728. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  729. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  730. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +112 -18
  732. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  733. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  734. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +139 -45
  736. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  737. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  738. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +2 -3
  740. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  741. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  742. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +7 -8
  744. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  745. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  746. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +2 -3
  748. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  749. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  750. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  751. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +2 -3
  752. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  753. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  754. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  755. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +2 -3
  756. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  757. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  758. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  759. package/dist/shared/src/context/AddonProjectContext.es.js +4 -5
  760. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  761. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  762. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  763. package/dist/shared/src/context/DetailsPanelContext.es.js +68 -67
  764. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  765. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  766. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  767. package/dist/shared/src/context/GlobalContext.es.js +4 -5
  768. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  769. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  770. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  771. package/dist/shared/src/context/PowerpackContext.es.js +8 -9
  772. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  773. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  774. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  775. package/dist/shared/src/context/ProjectContext.es.js +4 -5
  776. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  777. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  778. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  779. package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -7
  780. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  781. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  782. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  783. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -5
  784. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  785. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  786. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  787. package/dist/shared/src/context/SubtasksModulesContext.es.js +6 -7
  788. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  789. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  790. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  791. package/dist/shared/src/context/UriContext.es.js +6 -7
  792. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  793. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  794. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  795. package/dist/shared/src/context/WebsocketContext.es.js +44 -41
  796. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  797. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  798. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  799. package/dist/shared/src/hooks/useActionTriggers.es.js +2 -3
  800. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  801. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  802. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  803. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -3
  804. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  805. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  806. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  807. package/dist/shared/src/hooks/useGetEntityGroups.es.js +2 -3
  808. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  809. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +1 -1
  810. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -1
  811. package/dist/shared/src/hooks/useGetProductionAddon.es.js +2 -3
  812. package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -1
  813. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  814. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  815. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -5
  816. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  817. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  818. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  819. package/dist/shared/src/hooks/useHierarchyTable.es.js +2 -3
  820. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  821. package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
  822. package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
  823. package/dist/shared/src/hooks/useLocalStorage.es.js +3 -1
  824. package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
  825. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  826. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  827. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +114 -20
  828. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  829. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  830. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  831. package/dist/shared/src/hooks/useScopedStatuses.es.js +4 -5
  832. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  833. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  834. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  835. package/dist/shared/src/hooks/useScopedTypes.es.js +2 -3
  836. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  837. package/dist/shared/src/hooks/useSessionStorage.cjs.js +2 -0
  838. package/dist/shared/src/hooks/useSessionStorage.cjs.js.map +1 -0
  839. package/dist/shared/src/hooks/useSessionStorage.es.js +60 -0
  840. package/dist/shared/src/hooks/useSessionStorage.es.js.map +1 -0
  841. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  842. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  843. package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -3
  844. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  845. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  846. package/dist/shared/src/util/checkName.es.js.map +1 -1
  847. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  848. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  849. package/dist/shared/src/util/getBundleMode.cjs.js +2 -0
  850. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -0
  851. package/dist/shared/src/util/getBundleMode.es.js +117 -0
  852. package/dist/shared/src/util/getBundleMode.es.js.map +1 -0
  853. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  854. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  855. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  856. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  857. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  858. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  859. package/dist/types/api/generated/graphql.d.ts +845 -1124
  860. package/dist/types/api/generated/graphqlLinks.d.ts +201 -291
  861. package/dist/types/api/queries/activities/getActivities.d.ts +2326 -1470
  862. package/dist/types/api/queries/activities/index.d.ts +0 -1
  863. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +21 -1
  864. package/dist/types/api/queries/columnStats/columnStats.d.ts +4 -21
  865. package/dist/types/api/queries/entities/getEntity.d.ts +327 -315
  866. package/dist/types/api/queries/entities/getEntityPanel.d.ts +263 -251
  867. package/dist/types/api/queries/entities/updateEntity.d.ts +263 -251
  868. package/dist/types/api/queries/entityLists/getLists.d.ts +1930 -1918
  869. package/dist/types/api/queries/entityLists/listItemsColumnStats.d.ts +96 -96
  870. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  871. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +131 -131
  872. package/dist/types/api/queries/overview/getOverview.d.ts +960 -866
  873. package/dist/types/api/queries/products/getFolderProducts.d.ts +64 -64
  874. package/dist/types/api/queries/project/getProject.d.ts +503 -491
  875. package/dist/types/api/queries/review/getReview.d.ts +2 -2
  876. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +375 -363
  877. package/dist/types/api/queries/users/getUsers.d.ts +457 -445
  878. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1118 -1094
  879. package/dist/types/api/queries/versions/updateVersions.d.ts +138 -175
  880. package/dist/types/containers/Actions/Actions.d.ts +3 -2
  881. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +3 -2
  882. package/dist/types/containers/Feed/helpers/getActivityUserName.d.ts +4 -0
  883. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +36 -36
  884. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
  885. package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +1 -0
  886. package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -4
  887. package/dist/types/containers/ProjectTreeTable/hooks/useSortBySettings.d.ts +6 -1
  888. package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +0 -29
  889. package/dist/types/containers/Slicer/components/Slicer.d.ts +1 -1
  890. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +14 -20
  891. package/dist/types/containers/Slicer/context/SlicerContextInstance.d.ts +2 -0
  892. package/dist/types/containers/Slicer/hooks/index.d.ts +4 -1
  893. package/dist/types/containers/Slicer/hooks/useFiltersWithHierarchy.d.ts +2 -2
  894. package/dist/types/containers/Slicer/hooks/useSlicerRemotes.d.ts +6 -0
  895. package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +18 -0
  896. package/dist/types/containers/Slicer/hooks/useSlicerSplitter.d.ts +9 -0
  897. package/dist/types/containers/Slicer/types.d.ts +6 -9
  898. package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +7 -4
  899. package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +3 -0
  900. package/dist/types/context/DetailsPanelContext.d.ts +2 -1
  901. package/dist/types/hooks/index.d.ts +1 -0
  902. package/dist/types/hooks/useSessionStorage.d.ts +4 -0
  903. package/dist/types/util/checkName.d.ts +1 -1
  904. package/dist/types/util/getAttributeIcon.d.ts +1 -1
  905. package/dist/types/util/getBundleMode.d.ts +4 -0
  906. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  907. package/dist/types/util/getPriorityOptions.d.ts +2 -1
  908. package/dist/types/util/iconUtils.d.ts +1 -1
  909. package/dist/types/util/index.d.ts +1 -0
  910. package/dist/util.cjs.js +1 -1
  911. package/dist/util.es.js +33 -30
  912. package/dist/util.es.js.map +1 -1
  913. package/package.json +3 -3
  914. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +0 -2
  915. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +0 -1
  916. package/dist/shared/src/api/queries/activities/updateActivities.es.js +0 -111
  917. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +0 -1
  918. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js +0 -2
  919. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js.map +0 -1
  920. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js +0 -27
  921. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js.map +0 -1
  922. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +0 -2
  923. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +0 -1
  924. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +0 -22
  925. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +0 -1
  926. package/dist/types/api/queries/activities/updateActivities.d.ts +0 -1322
  927. package/dist/types/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.d.ts +0 -4
  928. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getUserDashboard.cjs.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '../project'\nimport PubSub from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
@@ -40,64 +40,115 @@ import "../../generated/grouping.es.js";
40
40
  import "../../generated/views.es.js";
41
41
  import I from "../project/getProject.es.js";
42
42
  import "../project/updateProject.es.js";
43
+ import S from "../../../util/pubsub.es.js";
43
44
  import "lodash";
44
45
  import "react-toastify";
45
46
  import "uuid";
46
47
  import { subscribeToThumbnailUpdates as M } from "../../../util/thumbnailWebsocket.es.js";
47
- import S from "../../../util/pubsub.es.js";
48
+ import "../actions/getActions.es.js";
49
+ import "../activities/getActivities.es.js";
50
+ import "../activities/updateReaction.es.js";
51
+ import "../activities/getMentions.es.js";
52
+ import "../activities/getCategories.es.js";
53
+ import "../addons/getAddons.es.js";
54
+ import "../addons/updateAddons.es.js";
55
+ import "../attributes/getAttributes.es.js";
56
+ import "../attributes/updateAttributes.es.js";
57
+ import "../authentication/getAuthentication.es.js";
58
+ import "../cloud/cloud.es.js";
59
+ import "../columnStats/metricTargets.es.js";
60
+ import "../config/getConfig.es.js";
61
+ import "../config/updateConfig.es.js";
62
+ import "../entities/getEntity.es.js";
63
+ import "../entities/getEntityPanel.es.js";
64
+ import "../overview/getOverview.es.js";
65
+ import "../overview/updateOverview.es.js";
66
+ import "../versions/getVersionsProducts.es.js";
67
+ import "../links/getEntityLinks.es.js";
68
+ import "../entities/updateEntity.es.js";
69
+ import "../entityLists/getLists.es.js";
70
+ import "../entityLists/updateLists.es.js";
71
+ import "../entityLists/getListsAttributes.es.js";
72
+ import "../entityLists/listItemsColumnStats.es.js";
73
+ import "../entityLists/updateListsAttributes.es.js";
74
+ import "../entityLists/listFolders.es.js";
75
+ import "../folders/getFolders.es.js";
76
+ import "../folders/getFolderDeleteInfo.es.js";
77
+ import "../grouping/getGrouping.es.js";
78
+ import "../links/updateLinks.es.js";
79
+ import "../links/getLinks.es.js";
80
+ import "../permissions/getPermissions.es.js";
81
+ import "../products/createProduct.es.js";
82
+ import "../products/getFolderProducts.es.js";
83
+ import "../projectFolders/projectFolders.es.js";
84
+ import "../review/getReview.es.js";
85
+ import "../review/updateReview.es.js";
86
+ import "../share/share.es.js";
87
+ import "../system/getSystem.es.js";
88
+ import "../tasks/getTasks.es.js";
89
+ import "../tasks/updateTasks.es.js";
90
+ import "../teams/getTeams.es.js";
91
+ import "../users/getUsers.es.js";
92
+ import "../users/updateUsers.es.js";
93
+ import "../users/guests.es.js";
94
+ import "../versions/updateVersions.es.js";
95
+ import "../views/getViews.es.js";
96
+ import "../views/updateViews.es.js";
97
+ import "../watchers/getWatchers.es.js";
98
+ import "../uris/getUris.es.js";
48
99
  import E from "./convertAccessGroupsData.es.js";
49
100
  import R from "./getUserProjectsAccess.es.js";
50
- const w = (s) => s.kanban.edges.map(({ node: r }) => r).sort((r, a) => {
51
- const e = r.label || r.name, n = a.label || a.name;
52
- return e.localeCompare(n);
53
- }), G = (s, r, a) => s?.length ? [
101
+ const w = (r) => r.kanban.edges.map(({ node: i }) => i).sort((i, a) => {
102
+ const o = i.label || i.name, s = a.label || a.name;
103
+ return o.localeCompare(s);
104
+ }), G = (r, i, a) => r?.length ? [
54
105
  { type: "kanBanTask", id: "LIST" },
55
- ...s.flatMap(({ id: e, projectName: n, assignees: y }) => [
56
- { type: "task", id: e },
57
- { type: "kanban", id: "project-" + n },
58
- ...y.map((p) => ({ type: "kanban", id: "user-" + p })),
59
- ...y.map((p) => ({
106
+ ...r.flatMap(({ id: o, projectName: s, assignees: y }) => [
107
+ { type: "task", id: o },
108
+ { type: "kanban", id: "project-" + s },
109
+ ...y.map((m) => ({ type: "kanban", id: "user-" + m })),
110
+ ...y.map((m) => ({
60
111
  type: "kanban",
61
- id: "user-" + p + "-project-" + n
112
+ id: "user-" + m + "-project-" + s
62
113
  })),
63
114
  { type: "kanban", id: JSON.stringify(a) }
64
115
  ])
65
116
  ] : [{ type: "kanBanTask", id: "LIST" }], U = async ({
66
- projects: s = [],
67
- taskIds: r = []
117
+ projects: r = [],
118
+ taskIds: i = []
68
119
  }, a) => {
69
120
  try {
70
- const e = await a(
121
+ const o = await a(
71
122
  v.endpoints.GetKanbanTasks.initiate(
72
- { projects: s, taskIds: r },
123
+ { projects: r, taskIds: i },
73
124
  { forceRefetch: !0 }
74
125
  )
75
126
  );
76
- if (e.status === "rejected" || !e.data)
77
- throw console.error("No tasks found", r), new Error(`No tasks found ${r.join(", ")}`);
78
- return e.status !== "fulfilled" ? [] : e.data;
79
- } catch (e) {
80
- return console.error(e), [];
127
+ if (o.status === "rejected" || !o.data)
128
+ throw console.error("No tasks found", i), new Error(`No tasks found ${i.join(", ")}`);
129
+ return o.status !== "fulfilled" ? [] : o.data;
130
+ } catch (o) {
131
+ return console.error(o), [];
81
132
  }
82
133
  }, v = x.enhanceEndpoints({
83
134
  endpoints: {
84
135
  GetKanban: {
85
136
  transformResponse: w,
86
137
  providesTags: G,
87
- async onCacheEntryAdded({ assignees: s = [], projects: r = [] } = {}, { updateCachedData: a, cacheDataLoaded: e, cacheEntryRemoved: n, dispatch: y, getCacheEntry: p }) {
138
+ async onCacheEntryAdded({ assignees: r = [], projects: i = [] } = {}, { updateCachedData: a, cacheDataLoaded: o, cacheEntryRemoved: s, dispatch: y, getCacheEntry: m }) {
88
139
  let j, h, g = [], f = null;
89
140
  try {
90
- await e, h = M(
141
+ await o, h = M(
91
142
  (b) => {
92
- const m = p().data ?? [];
93
- if (!m.length) return;
143
+ const c = m().data ?? [];
144
+ if (!c.length) return;
94
145
  const u = b.filter(
95
- (i) => m.some((c) => c.id === i.summary.entityId && c.projectName === i.project)
146
+ (n) => c.some((p) => p.id === n.summary.entityId && p.projectName === n.project)
96
147
  );
97
- u.length !== 0 && a((i) => {
98
- u.forEach((c) => {
99
- const d = i.findIndex((t) => t.id === c.summary.entityId);
100
- d !== -1 && i[d] && c.summary.thumbnailHash && (i[d].thumbnailHash = c.summary.thumbnailHash);
148
+ u.length !== 0 && a((n) => {
149
+ u.forEach((p) => {
150
+ const d = n.findIndex((t) => t.id === p.summary.entityId);
151
+ d !== -1 && n[d] && p.summary.thumbnailHash && (n[d].thumbnailHash = p.summary.thumbnailHash);
101
152
  });
102
153
  });
103
154
  },
@@ -106,59 +157,59 @@ const w = (s) => s.kanban.edges.map(({ node: r }) => r).sort((r, a) => {
106
157
  const k = async () => {
107
158
  const b = [...g];
108
159
  g = [], f = null;
109
- const m = Array.from(new Set(b.flatMap((t) => t.taskIds))), u = Array.from(new Set(b.flatMap((t) => t.projects)));
110
- if (m.length === 0) return;
111
- const i = await U({ projects: u, taskIds: m }, y), c = i.filter(
112
- (t) => t.assignees.some((o) => s?.includes(o))
113
- ), d = i.filter(
114
- (t) => !t.assignees.some((o) => s?.includes(o))
160
+ const c = Array.from(new Set(b.flatMap((t) => t.taskIds))), u = Array.from(new Set(b.flatMap((t) => t.projects)));
161
+ if (c.length === 0) return;
162
+ const n = await U({ projects: u, taskIds: c }, y), p = n.filter(
163
+ (t) => t.assignees.some((e) => r?.includes(e))
164
+ ), d = n.filter(
165
+ (t) => !t.assignees.some((e) => r?.includes(e))
115
166
  );
116
167
  a((t) => {
117
- c.forEach((o) => {
118
- const l = t.findIndex((T) => T.id === o.id);
119
- l === -1 ? t.push(o) : t[l] = o;
120
- }), d.forEach((o) => {
121
- const l = t.findIndex((T) => T.id === o.id);
168
+ p.forEach((e) => {
169
+ const l = t.findIndex((T) => T.id === e.id);
170
+ l === -1 ? t.push(e) : t[l] = e;
171
+ }), d.forEach((e) => {
172
+ const l = t.findIndex((T) => T.id === e.id);
122
173
  l !== -1 && t.splice(l, 1);
123
174
  });
124
175
  });
125
176
  }, P = ({
126
177
  projects: b = [],
127
- taskIds: m = [],
178
+ taskIds: c = [],
128
179
  payload: u
129
180
  }) => {
130
- let i = !1;
131
- if (u ? a((c) => {
132
- m.forEach((d) => {
133
- const t = c.findIndex((o) => o.id === d);
134
- t !== -1 ? (Object.assign(c[t], u), u.assignees && (!s?.length || u.assignees.some((l) => s?.includes(l)) || c.splice(t, 1))) : u.assignees?.some((o) => s?.includes(o)) && (i = !0);
181
+ let n = !1;
182
+ if (u ? a((p) => {
183
+ c.forEach((d) => {
184
+ const t = p.findIndex((e) => e.id === d);
185
+ t !== -1 ? (Object.assign(p[t], u), u.assignees && (!r?.length || u.assignees.some((l) => r?.includes(l)) || p.splice(t, 1))) : u.assignees?.some((e) => r?.includes(e)) && (n = !0);
135
186
  });
136
- }) : i = !0, !!i && (g.push({ projects: b, taskIds: m }), !f)) {
137
- const c = Math.random() * 5e3;
138
- f = setTimeout(k, c);
187
+ }) : n = !0, !!n && (g.push({ projects: b, taskIds: c }), !f)) {
188
+ const p = Math.random() * 5e3;
189
+ f = setTimeout(k, p);
139
190
  }
140
- }, K = async (b, m) => {
141
- const u = m.project;
142
- if (!r?.includes(u)) return console.log("project not selected");
143
- const i = m.summary.entityId;
144
- if (!i) return console.log("no entity id found");
145
- const c = p().data ?? [], d = m.topic.split(".")[2].split("_changed")[0];
191
+ }, K = async (b, c) => {
192
+ const u = c.project;
193
+ if (!i?.includes(u)) return console.log("project not selected");
194
+ const n = c.summary.entityId;
195
+ if (!n) return console.log("no entity id found");
196
+ const p = m().data ?? [], d = c.topic.split(".")[2].split("_changed")[0];
146
197
  if (!["status", "assignees"].includes(d)) return;
147
- const t = m.summary.value;
148
- let o = t;
149
- d === "status" ? o = String(t) : d === "assignees" && (o = Array.isArray(t) ? t : []);
150
- const l = c.some((A) => A.id === i), T = d === "assignees" && o.some((A) => s?.includes(A));
198
+ const t = c.summary.value;
199
+ let e = t;
200
+ d === "status" ? e = String(t) : d === "assignees" && (e = Array.isArray(t) ? t : []);
201
+ const l = p.some((A) => A.id === n), T = d === "assignees" && e.some((A) => r?.includes(A));
151
202
  !l && !T || P({
152
- taskIds: [i],
203
+ taskIds: [n],
153
204
  projects: [u],
154
- payload: { [d]: o }
205
+ payload: { [d]: e }
155
206
  });
156
207
  };
157
208
  j = S.subscribe("entity.task", K);
158
209
  } catch (k) {
159
210
  console.error(k);
160
211
  }
161
- await n, S.unsubscribe(j), h && h(), f && clearTimeout(f);
212
+ await s, S.unsubscribe(j), h && h(), f && clearTimeout(f);
162
213
  }
163
214
  // // there is only one cache for kanban
164
215
  // serializeQueryArgs: () => '',
@@ -180,58 +231,58 @@ const w = (s) => s.kanban.edges.map(({ node: r }) => r).sort((r, a) => {
180
231
  },
181
232
  // get all users on all selected projects
182
233
  GetKanbanProjectUsers: {
183
- transformResponse: (s, r, { projects: a } = {}) => s.users.edges.map(({ node: e }) => {
184
- const n = E(e.accessGroups);
185
- let p = !e.isManager && !e.isAdmin ? R(n) : a;
186
- (typeof p == "string" || !p) && (p = []);
187
- const j = `/api/users/${e.name}/avatar`;
234
+ transformResponse: (r, i, { projects: a } = {}) => r.users.edges.map(({ node: o }) => {
235
+ const s = E(o.accessGroups);
236
+ let m = !o.isManager && !o.isAdmin ? R(s) : a;
237
+ (typeof m == "string" || !m) && (m = []);
238
+ const j = `/api/users/${o.name}/avatar`;
188
239
  return {
189
- ...e,
190
- accessGroups: n,
191
- projects: p,
240
+ ...o,
241
+ accessGroups: s,
242
+ projects: m,
192
243
  avatarUrl: j
193
244
  };
194
245
  }),
195
- providesTags: (s) => s?.length ? [
246
+ providesTags: (r) => r?.length ? [
196
247
  { type: "user", id: "LIST" },
197
- ...s.map(({ name: r }) => ({ type: "user", id: r }))
248
+ ...r.map(({ name: i }) => ({ type: "user", id: i }))
198
249
  ] : [{ type: "user", id: "LIST" }]
199
250
  }
200
251
  }
201
- }), { useGetKanbanQuery: Mt, useGetKanbanProjectUsersQuery: Et } = v, L = v.injectEndpoints({
202
- endpoints: (s) => ({
203
- getProjectsInfo: s.query({
204
- async queryFn({ projects: r = [], anatomy: a = !0 }, { dispatch: e }) {
252
+ }), { useGetKanbanQuery: Ko, useGetKanbanProjectUsersQuery: xo } = v, L = v.injectEndpoints({
253
+ endpoints: (r) => ({
254
+ getProjectsInfo: r.query({
255
+ async queryFn({ projects: i = [], anatomy: a = !0 }, { dispatch: o }) {
205
256
  try {
206
- const n = {};
207
- for (const y of r) {
208
- const p = y, j = [
209
- e(I.endpoints.getProject.initiate({ projectName: p })).unwrap(),
257
+ const s = {};
258
+ for (const y of i) {
259
+ const m = y, j = [
260
+ o(I.endpoints.getProject.initiate({ projectName: m })).unwrap(),
210
261
  ...a ? [
211
- e(
212
- I.endpoints.getProjectAnatomy.initiate({ projectName: p })
262
+ o(
263
+ I.endpoints.getProjectAnatomy.initiate({ projectName: m })
213
264
  ).unwrap()
214
265
  ] : []
215
266
  ], h = await Promise.allSettled(j), g = h[0], f = g.status === "fulfilled" ? g.value : void 0, k = a && h[1]?.status === "fulfilled" ? h[1].value : void 0;
216
- f && (n[p] = {
267
+ f && (s[m] = {
217
268
  ...f,
218
269
  anatomy: k
219
270
  });
220
271
  }
221
- return { data: n, meta: void 0, error: void 0 };
222
- } catch (n) {
223
- return console.error(n), { error: n, meta: void 0, data: void 0 };
272
+ return { data: s, meta: void 0, error: void 0 };
273
+ } catch (s) {
274
+ return console.error(s), { error: s, meta: void 0, data: void 0 };
224
275
  }
225
276
  },
226
- providesTags: (r, a, { projects: e }) => e.map((n) => ({ type: "project", id: n }))
277
+ providesTags: (i, a, { projects: o }) => o.map((s) => ({ type: "project", id: s }))
227
278
  })
228
279
  })
229
- }), { useGetProjectsInfoQuery: Rt } = L;
280
+ }), { useGetProjectsInfoQuery: Mo } = L;
230
281
  export {
231
282
  L as dashboardQueries,
232
283
  U as getKanbanTasks,
233
- Et as useGetKanbanProjectUsersQuery,
234
- Mt as useGetKanbanQuery,
235
- Rt as useGetProjectsInfoQuery
284
+ xo as useGetKanbanProjectUsersQuery,
285
+ Ko as useGetKanbanQuery,
286
+ Mo as useGetProjectsInfoQuery
236
287
  };
237
288
  //# sourceMappingURL=getUserDashboard.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,MAAMA,IAAkB,CAACC,MACvBA,EAAS,OAAO,MACb,IAAI,CAAC,EAAE,MAAAC,EAAA,MAAWA,CAAI,EACtB,KAAK,CAACC,GAAGC,MAAM;AACd,QAAMC,IAASF,EAAE,SAASA,EAAE,MACtBG,IAASF,EAAE,SAASA,EAAE;AAC5B,SAAOC,EAAO,cAAcC,CAAM;AACpC,CAAC,GAECC,IAAoB,CAACC,GAAuCC,GAAaC,MAC7EF,GAAQ,SACJ;AAAA,EACE,EAAE,MAAM,cAAc,IAAI,OAAA;AAAA,EAC1B,GAAGA,EAAO,QAAQ,CAAC,EAAE,IAAAG,GAAI,aAAAC,GAAa,WAAAC,QAAgB;AAAA,IACpD,EAAE,MAAM,QAAQ,IAAAF,EAAA;AAAA,IAChB,EAAE,MAAM,UAAU,IAAI,aAAaC,EAAA;AAAA,IACnC,GAAGC,EAAU,IAAI,CAACC,OAAc,EAAE,MAAM,UAAU,IAAI,UAAUA,EAAA,EAAW;AAAA,IAC3E,GAAGD,EAAU,IAAI,CAACC,OAAc;AAAA,MAC9B,MAAM;AAAA,MACN,IAAI,UAAUA,IAAW,cAAcF;AAAA,IAAA,EACvC;AAAA,IACF,EAAE,MAAM,UAAU,IAAI,KAAK,UAAUF,CAAI,EAAA;AAAA,EAAE,CAC5C;AACH,IACA,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ,GAE5BK,IAAiB,OAC5B;AAAA,EACE,UAAAC,IAAW,CAAA;AAAA,EACX,SAAAC,IAAU,CAAA;AACZ,GAIAC,MACG;AACH,MAAI;AAEF,UAAMjB,IAAW,MAAMiB;AAAA,MACrBC,EAA4B,UAAU,eAAe;AAAA,QACnD,EAAE,UAAAH,GAAU,SAAAC,EAAA;AAAA,QACZ,EAAE,cAAc,GAAA;AAAA,MAAK;AAAA,IACvB;AAGF,QAAIhB,EAAS,WAAW,cAAc,CAACA,EAAS;AAC9C,oBAAQ,MAAM,kBAAkBgB,CAAO,GACjC,IAAI,MAAM,kBAAkBA,EAAQ,KAAK,IAAI,CAAC,EAAE;AAGxD,WAAIhB,EAAS,WAAW,cAAoB,CAAA,IAErCA,EAAS;AAAA,EAClB,SAASmB,GAAO;AACd,mBAAQ,MAAMA,CAAK,GACZ,CAAA;AAAA,EACT;AACF,GAEMD,IAA8BE,EAAO,iBAA+C;AAAA,EACxF,WAAW;AAAA,IACT,WAAW;AAAA,MACT,mBAAmBrB;AAAA,MACnB,cAAcO;AAAA,MACd,MAAM,kBACJ,EAAE,WAAAM,IAAY,CAAA,GAAI,UAAAG,IAAW,CAAA,EAAC,IAAM,IACpC,EAAE,kBAAAM,GAAkB,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAN,GAAU,eAAAO,KAClE;AACA,YAAIC,GACAC,GACAC,IAA0D,CAAA,GAC1DC,IAAoB;AACxB,YAAI;AAEF,gBAAMN,GAENI,IAAwBG;AAAA,YACtB,CAACC,MAAuC;AACtC,oBAAMC,IAAaP,IAAgB,QAAQ,CAAA;AAC3C,kBAAI,CAACO,EAAW,OAAQ;AAExB,oBAAMC,IAAkBF,EAAS;AAAA,gBAAO,CAACG,MACvCF,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOD,EAAE,QAAQ,YAAYC,EAAE,gBAAgBD,EAAE,OAAO;AAAA,cAAA;AAEnF,cAAID,EAAgB,WAAW,KAE/BX,EAAiB,CAACc,MAAU;AAC1B,gBAAAH,EAAgB,QAAQ,CAACI,MAAY;AACnC,wBAAMC,IAAcF,EAAM,UAAU,CAAC,MAAM,EAAE,OAAOC,EAAQ,QAAQ,QAAQ;AAC5E,kBAAIC,MAAgB,MAAMF,EAAME,CAAW,KAAKD,EAAQ,QAAQ,kBAC9DD,EAAME,CAAW,EAAE,gBAAgBD,EAAQ,QAAQ;AAAA,gBAEvD,CAAC;AAAA,cACH,CAAC;AAAA,YACH;AAAA,YACA,CAAC,MAAM;AAAA,UAAA;AAGT,gBAAME,IAAoB,YAAY;AACpC,kBAAMC,IAAQ,CAAC,GAAGZ,CAAU;AAC5B,YAAAA,IAAa,CAAA,GACbC,IAAe;AAEf,kBAAMZ,IAAU,MAAM,KAAK,IAAI,IAAIuB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,OAAO,CAAC,CAAC,GAC7DY,IAAW,MAAM,KAAK,IAAI,IAAIwB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,QAAQ,CAAC,CAAC;AAErE,gBAAIa,EAAQ,WAAW,EAAG;AAE1B,kBAAMwB,IAAQ,MAAM1B,EAAe,EAAE,UAAAC,GAAU,SAAAC,EAAA,GAAWC,CAAQ,GAG5DwB,IAAwBD,EAAM;AAAA,cAAO,CAACE,MAC1CA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA,GAG3D8B,IAA2BH,EAAM;AAAA,cACrC,CAACE,MAAS,CAACA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA;AAI5E,YAAAQ,EAAiB,CAACc,MAAU;AAE1B,cAAAM,EAAsB,QAAQ,CAACC,MAAS;AACtC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,KACZT,EAAM,KAAKO,CAAI,IAGfP,EAAMS,CAAK,IAAIF;AAAA,cAEnB,CAAC,GAEDC,EAAyB,QAAQ,CAACD,MAAS;AACzC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,MACZT,EAAM,OAAOS,GAAO,CAAC;AAAA,cAEzB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,GAEMC,IAAkB,CAAC;AAAA,YACvB,UAAA9B,IAAW,CAAA;AAAA,YACX,SAAAC,IAAU,CAAA;AAAA,YACV,SAAA8B;AAAA,UAAA,MAKI;AACJ,gBAAIC,IAAa;AA8BjB,gBA5BID,IACFzB,EAAiB,CAACc,MAAU;AAC1B,cAAAnB,EAAQ,QAAQ,CAACN,MAAO;AACtB,sBAAMkC,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOxB,CAAE;AAChD,gBAAIkC,MAAU,MAEZ,OAAO,OAAOT,EAAMS,CAAK,GAAGE,CAAO,GAG/BA,EAAQ,cAER,CAAClC,GAAW,UAAUkC,EAAQ,UAAU,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,KAE1EiC,EAAM,OAAOS,GAAO,CAAC,MAKrBE,EAAQ,WAAW,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,MACvD6C,IAAa;AAAA,cAGnB,CAAC;AAAA,YACH,CAAC,IAEDA,IAAa,IAGX,EAACA,MAGLpB,EAAW,KAAK,EAAE,UAAAZ,GAAU,SAAAC,GAAS,GAGjC,CAACY,IAAc;AACjB,oBAAMoB,IAAQ,KAAK,OAAA,IAAW;AAC9B,cAAApB,IAAe,WAAWU,GAAmBU,CAAK;AAAA,YACpD;AAAA,UACF,GAEMC,IAAe,OAAOC,GAAgBd,MAAqB;AAC/D,kBAAMe,IAAUf,EAAQ;AAExB,gBAAI,CAACrB,GAAU,SAASoC,CAAO,EAAG,QAAO,QAAQ,IAAI,sBAAsB;AAE3E,kBAAMC,IAAWhB,EAAQ,QAAQ;AACjC,gBAAI,CAACgB,EAAU,QAAO,QAAQ,IAAI,oBAAoB;AAGtD,kBAAMrB,IAAaP,IAAgB,QAAQ,CAAA,GAErC6B,IAAQjB,EAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;AAG7D,gBAAI,CAAC,CAAC,UAAU,WAAW,EAAE,SAASiB,CAAK,EAAG;AAE9C,kBAAMC,IAAQlB,EAAQ,QAAQ;AAE9B,gBAAImB,IAAiBD;AACrB,YAAID,MAAU,WACZE,IAAY,OAAOD,CAAK,IACfD,MAAU,gBACnBE,IAAY,MAAM,QAAQD,CAAK,IAAKA,IAAqB,CAAA;AAI3D,kBAAME,IAAkBzB,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOkB,CAAQ,GAE1DK,IACJJ,MAAU,eAAgBE,EAAuB,KAAK,CAACrD,MAAMU,GAAW,SAASV,CAAC,CAAC;AAErF,YAAI,CAACsD,KAAmB,CAACC,KAEzBZ,EAAgB;AAAA,cACd,SAAS,CAACO,CAAQ;AAAA,cAClB,UAAU,CAACD,CAAO;AAAA,cAClB,SAAS,EAAE,CAACE,CAAK,GAAGE,EAAA;AAAA,YAAU,CAC/B;AAAA,UACH;AAGA,UAAA9B,IAAQiC,EAAO,UAAU,eAAeT,CAAY;AAAA,QACtD,SAAS9B,GAAO;AACd,kBAAQ,MAAMA,CAAK;AAAA,QAGrB;AAEA,cAAMI,GAENmC,EAAO,YAAYjC,CAAK,GACpBC,KACFA,EAAA,GAEEE,kBAA2BA,CAAY;AAAA,MAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA;AAAA;AAAA,IAeF,gBAAgB;AAAA,MACd,mBAAmB7B;AAAA,MACnB,cAAcO;AAAA,IAAA;AAAA;AAAA,IAGhB,uBAAuB;AAAA,MACrB,mBAAmB,CAACN,GAAsC2D,GAAO,EAAE,UAAA5C,MAAa,CAAA,MAC9Ef,EAAS,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM4D,QAAW;AAC3C,cAAMC,IAAeC,EAAwBF,EAAK,YAAY;AAI9D,YAAIG,IAFW,CAACH,EAAK,aAAa,CAACA,EAAK,UAEVI,EAAsBH,CAAY,IAAI9C;AACpE,SAAI,OAAOgD,KAAmB,YAAY,CAACA,WAAiC,CAAA;AAG5E,cAAME,IAAY,cAAcL,EAAK,IAAI;AAEzC,eAAO;AAAA,UACL,GAAGA;AAAA,UACH,cAAAC;AAAA,UACA,UAAUE;AAAA,UACV,WAAAE;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,MACH,cAAc,CAAC1D,MACbA,GAAQ,SACJ;AAAA,QACE,EAAE,MAAM,QAAQ,IAAI,OAAA;AAAA,QACpB,GAAGA,EAAO,IAAI,CAAC,EAAE,MAAA2D,EAAA,OAAY,EAAE,MAAM,QAAQ,IAAIA,IAAO;AAAA,MAAA,IAE1D,CAAC,EAAE,MAAM,QAAQ,IAAI,QAAQ;AAAA,IAAA;AAAA,EACrC;AAEJ,CAAC,GAEY,EAAE,mBAAAC,IAAmB,+BAAAC,OAAkClD,GAW9DmD,IAA2BnD,EAA4B,gBAAgB;AAAA,EAC3E,WAAW,CAACoD,OAAW;AAAA,IACrB,iBAAiBA,EAAM,MAAsD;AAAA,MAC3E,MAAM,QAAQ,EAAE,UAAAvD,IAAW,CAAA,GAAI,SAAAwD,IAAU,GAAA,GAAQ,EAAE,UAAAtD,KAAY;AAC7D,YAAI;AAEF,gBAAMuD,IAAkE,CAAA;AACxE,qBAAWrB,KAAWpC,GAAU;AAC9B,kBAAMJ,IAAcwC,GAGdsB,IAAY;AAAA,cAChBxD,EAASyD,EAAe,UAAU,WAAW,SAAS,EAAE,aAAA/D,EAAA,CAAa,CAAC,EAAE,OAAA;AAAA,cACxE,GAAI4D,IACA;AAAA,gBACEtD;AAAA,kBACEyD,EAAe,UAAU,kBAAkB,SAAS,EAAE,aAAA/D,GAAa;AAAA,gBAAA,EACnE,OAAA;AAAA,cAAO,IAEX,CAAA;AAAA,YAAC,GAGDgE,IAAU,MAAM,QAAQ,WAAWF,CAAS,GAE5CG,IAAoBD,EAAQ,CAAC,GAC7BE,IACJD,EAAkB,WAAW,cACxBA,EAAkB,QACnB,QACAE,IACJP,KAAWI,EAAQ,CAAC,GAAG,WAAW,cAC7BA,EAAQ,CAAC,EAAE,QACZ;AAEN,YAAIE,MACFL,EAAY7D,CAAW,IAAI;AAAA,cACzB,GAAGkE;AAAA,cACH,SAASC;AAAA,YAAA;AAAA,UAGf;AAEA,iBAAO,EAAE,MAAMN,GAAa,MAAM,QAAW,OAAO,OAAA;AAAA,QACtD,SAASrD,GAAY;AACnB,yBAAQ,MAAMA,CAAK,GACZ,EAAE,OAAAA,GAAO,MAAM,QAAW,MAAM,OAAA;AAAA,QACzC;AAAA,MACF;AAAA,MACA,cAAc,CAAC4D,GAAMvE,GAAQ,EAAE,UAAAO,QAC7BA,EAAS,IAAI,CAACJ,OAAiB,EAAE,MAAM,WAAW,IAAIA,IAAc;AAAA,IAAA,CACvE;AAAA,EAAA;AAEL,CAAC,GAEY,EAAE,yBAAAqE,OAA4BX;"}
1
+ {"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '../project'\nimport PubSub from '@shared/util/pubsub'\nimport { subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nexport interface MessageSummary {\n entityId: string\n entityPath: string\n parentId: string\n value: any\n}\n\nexport interface Message {\n id: string\n topic: string\n project: string\n user: string\n sender: string\n senderType: string\n description: string\n status: string\n progress: number\n store: boolean\n createdAt: string\n updatedAt: string\n dependsOn: string | null\n summary: MessageSummary\n}\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n let unsubscribeThumbnails: (() => void) | undefined\n let fetchQueue: { taskIds: string[]; projects: string[] }[] = []\n let fetchTimeout: any = null\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const cacheTasks = getCacheEntry().data ?? []\n if (!cacheTasks.length) return\n\n const matchedMessages = messages.filter((m) =>\n cacheTasks.some((t) => t.id === m.summary.entityId && t.projectName === m.project),\n )\n if (matchedMessages.length === 0) return\n\n updateCachedData((draft) => {\n matchedMessages.forEach((message) => {\n const entityIndex = draft.findIndex((t) => t.id === message.summary.entityId)\n if (entityIndex !== -1 && draft[entityIndex] && message.summary.thumbnailHash) {\n draft[entityIndex].thumbnailHash = message.summary.thumbnailHash\n }\n })\n })\n },\n ['task'],\n )\n\n const processFetchQueue = async () => {\n const batch = [...fetchQueue]\n fetchQueue = []\n fetchTimeout = null\n\n const taskIds = Array.from(new Set(batch.flatMap((b) => b.taskIds)))\n const projects = Array.from(new Set(batch.flatMap((b) => b.projects)))\n\n if (taskIds.length === 0) return\n\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const patchKanbanTask = ({\n projects = [],\n taskIds = [],\n payload,\n }: {\n projects: string[]\n taskIds: string[]\n payload?: Partial<KanbanNode>\n }) => {\n let needsFetch = false\n\n if (payload) {\n updateCachedData((draft) => {\n taskIds.forEach((id) => {\n const index = draft.findIndex((t) => t.id === id)\n if (index !== -1) {\n // update the task\n Object.assign(draft[index], payload)\n\n // if assignees changed, check if it should be removed\n if (payload.assignees) {\n const isStillAssigned =\n !assignees?.length || payload.assignees.some((a) => assignees?.includes(a))\n if (!isStillAssigned) {\n draft.splice(index, 1)\n }\n }\n } else {\n // task not in cache, if it's now assigned to us, we need to fetch\n if (payload.assignees?.some((a) => assignees?.includes(a))) {\n needsFetch = true\n }\n }\n })\n })\n } else {\n needsFetch = true\n }\n\n if (!needsFetch) return\n\n // add to queue\n fetchQueue.push({ projects, taskIds })\n\n // debounce the fetch with a random offset\n if (!fetchTimeout) {\n const delay = Math.random() * 5000\n fetchTimeout = setTimeout(processFetchQueue, delay)\n }\n }\n\n const handlePubSub = async (_topic: string, message: Message) => {\n const project = message.project\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // current tasks on the board\n const cacheTasks = getCacheEntry().data ?? []\n // entity.task.status_changed\n const field = message.topic.split('.')[2].split('_changed')[0]\n\n // Only patch the task for the fields status and assignees.\n if (!['status', 'assignees'].includes(field)) return\n\n const value = message.summary.value\n // cast the correct type onto value based on the field\n let castValue: any = value\n if (field === 'status') {\n castValue = String(value)\n } else if (field === 'assignees') {\n castValue = Array.isArray(value) ? (value as string[]) : []\n }\n\n // check this task is actually on the board\n const isTaskOnMyBoard = cacheTasks.some((t) => t.id === entityId)\n // if the field is assignees AND the value includes current assignees then we patch\n const isValueMe =\n field === 'assignees' && (castValue as string[]).some((a) => assignees?.includes(a))\n\n if (!isTaskOnMyBoard && !isValueMe) return\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n payload: { [field]: castValue } as Partial<KanbanNode>,\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n if (fetchTimeout) clearTimeout(fetchTimeout)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(projectQueries.endpoints.getProject.initiate({ projectName })).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate({ projectName }),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","getCacheEntry","token","unsubscribeThumbnails","fetchQueue","fetchTimeout","subscribeToThumbnailUpdates","messages","cacheTasks","matchedMessages","m","t","draft","message","entityIndex","processFetchQueue","batch","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","index","patchKanbanTask","payload","needsFetch","delay","handlePubSub","_topic","project","entityId","field","value","castValue","isTaskOnMyBoard","isValueMe","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,MAAMA,IAAkB,CAACC,MACvBA,EAAS,OAAO,MACb,IAAI,CAAC,EAAE,MAAAC,EAAA,MAAWA,CAAI,EACtB,KAAK,CAACC,GAAGC,MAAM;AACd,QAAMC,IAASF,EAAE,SAASA,EAAE,MACtBG,IAASF,EAAE,SAASA,EAAE;AAC5B,SAAOC,EAAO,cAAcC,CAAM;AACpC,CAAC,GAECC,IAAoB,CAACC,GAAuCC,GAAaC,MAC7EF,GAAQ,SACJ;AAAA,EACE,EAAE,MAAM,cAAc,IAAI,OAAA;AAAA,EAC1B,GAAGA,EAAO,QAAQ,CAAC,EAAE,IAAAG,GAAI,aAAAC,GAAa,WAAAC,QAAgB;AAAA,IACpD,EAAE,MAAM,QAAQ,IAAAF,EAAA;AAAA,IAChB,EAAE,MAAM,UAAU,IAAI,aAAaC,EAAA;AAAA,IACnC,GAAGC,EAAU,IAAI,CAACC,OAAc,EAAE,MAAM,UAAU,IAAI,UAAUA,EAAA,EAAW;AAAA,IAC3E,GAAGD,EAAU,IAAI,CAACC,OAAc;AAAA,MAC9B,MAAM;AAAA,MACN,IAAI,UAAUA,IAAW,cAAcF;AAAA,IAAA,EACvC;AAAA,IACF,EAAE,MAAM,UAAU,IAAI,KAAK,UAAUF,CAAI,EAAA;AAAA,EAAE,CAC5C;AACH,IACA,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ,GAE5BK,IAAiB,OAC5B;AAAA,EACE,UAAAC,IAAW,CAAA;AAAA,EACX,SAAAC,IAAU,CAAA;AACZ,GAIAC,MACG;AACH,MAAI;AAEF,UAAMjB,IAAW,MAAMiB;AAAA,MACrBC,EAA4B,UAAU,eAAe;AAAA,QACnD,EAAE,UAAAH,GAAU,SAAAC,EAAA;AAAA,QACZ,EAAE,cAAc,GAAA;AAAA,MAAK;AAAA,IACvB;AAGF,QAAIhB,EAAS,WAAW,cAAc,CAACA,EAAS;AAC9C,oBAAQ,MAAM,kBAAkBgB,CAAO,GACjC,IAAI,MAAM,kBAAkBA,EAAQ,KAAK,IAAI,CAAC,EAAE;AAGxD,WAAIhB,EAAS,WAAW,cAAoB,CAAA,IAErCA,EAAS;AAAA,EAClB,SAASmB,GAAO;AACd,mBAAQ,MAAMA,CAAK,GACZ,CAAA;AAAA,EACT;AACF,GAEMD,IAA8BE,EAAO,iBAA+C;AAAA,EACxF,WAAW;AAAA,IACT,WAAW;AAAA,MACT,mBAAmBrB;AAAA,MACnB,cAAcO;AAAA,MACd,MAAM,kBACJ,EAAE,WAAAM,IAAY,CAAA,GAAI,UAAAG,IAAW,CAAA,EAAC,IAAM,IACpC,EAAE,kBAAAM,GAAkB,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAN,GAAU,eAAAO,KAClE;AACA,YAAIC,GACAC,GACAC,IAA0D,CAAA,GAC1DC,IAAoB;AACxB,YAAI;AAEF,gBAAMN,GAENI,IAAwBG;AAAA,YACtB,CAACC,MAAuC;AACtC,oBAAMC,IAAaP,IAAgB,QAAQ,CAAA;AAC3C,kBAAI,CAACO,EAAW,OAAQ;AAExB,oBAAMC,IAAkBF,EAAS;AAAA,gBAAO,CAACG,MACvCF,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOD,EAAE,QAAQ,YAAYC,EAAE,gBAAgBD,EAAE,OAAO;AAAA,cAAA;AAEnF,cAAID,EAAgB,WAAW,KAE/BX,EAAiB,CAACc,MAAU;AAC1B,gBAAAH,EAAgB,QAAQ,CAACI,MAAY;AACnC,wBAAMC,IAAcF,EAAM,UAAU,CAAC,MAAM,EAAE,OAAOC,EAAQ,QAAQ,QAAQ;AAC5E,kBAAIC,MAAgB,MAAMF,EAAME,CAAW,KAAKD,EAAQ,QAAQ,kBAC9DD,EAAME,CAAW,EAAE,gBAAgBD,EAAQ,QAAQ;AAAA,gBAEvD,CAAC;AAAA,cACH,CAAC;AAAA,YACH;AAAA,YACA,CAAC,MAAM;AAAA,UAAA;AAGT,gBAAME,IAAoB,YAAY;AACpC,kBAAMC,IAAQ,CAAC,GAAGZ,CAAU;AAC5B,YAAAA,IAAa,CAAA,GACbC,IAAe;AAEf,kBAAMZ,IAAU,MAAM,KAAK,IAAI,IAAIuB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,OAAO,CAAC,CAAC,GAC7DY,IAAW,MAAM,KAAK,IAAI,IAAIwB,EAAM,QAAQ,CAACpC,MAAMA,EAAE,QAAQ,CAAC,CAAC;AAErE,gBAAIa,EAAQ,WAAW,EAAG;AAE1B,kBAAMwB,IAAQ,MAAM1B,EAAe,EAAE,UAAAC,GAAU,SAAAC,EAAA,GAAWC,CAAQ,GAG5DwB,IAAwBD,EAAM;AAAA,cAAO,CAACE,MAC1CA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA,GAG3D8B,IAA2BH,EAAM;AAAA,cACrC,CAACE,MAAS,CAACA,EAAK,UAAU,KAAK,CAAC7B,MAAaD,GAAW,SAASC,CAAQ,CAAC;AAAA,YAAA;AAI5E,YAAAQ,EAAiB,CAACc,MAAU;AAE1B,cAAAM,EAAsB,QAAQ,CAACC,MAAS;AACtC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,KACZT,EAAM,KAAKO,CAAI,IAGfP,EAAMS,CAAK,IAAIF;AAAA,cAEnB,CAAC,GAEDC,EAAyB,QAAQ,CAACD,MAAS;AACzC,sBAAME,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOQ,EAAK,EAAE;AACrD,gBAAIE,MAAU,MACZT,EAAM,OAAOS,GAAO,CAAC;AAAA,cAEzB,CAAC;AAAA,YACH,CAAC;AAAA,UACH,GAEMC,IAAkB,CAAC;AAAA,YACvB,UAAA9B,IAAW,CAAA;AAAA,YACX,SAAAC,IAAU,CAAA;AAAA,YACV,SAAA8B;AAAA,UAAA,MAKI;AACJ,gBAAIC,IAAa;AA8BjB,gBA5BID,IACFzB,EAAiB,CAACc,MAAU;AAC1B,cAAAnB,EAAQ,QAAQ,CAACN,MAAO;AACtB,sBAAMkC,IAAQT,EAAM,UAAU,CAACD,MAAMA,EAAE,OAAOxB,CAAE;AAChD,gBAAIkC,MAAU,MAEZ,OAAO,OAAOT,EAAMS,CAAK,GAAGE,CAAO,GAG/BA,EAAQ,cAER,CAAClC,GAAW,UAAUkC,EAAQ,UAAU,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,KAE1EiC,EAAM,OAAOS,GAAO,CAAC,MAKrBE,EAAQ,WAAW,KAAK,CAAC5C,MAAMU,GAAW,SAASV,CAAC,CAAC,MACvD6C,IAAa;AAAA,cAGnB,CAAC;AAAA,YACH,CAAC,IAEDA,IAAa,IAGX,EAACA,MAGLpB,EAAW,KAAK,EAAE,UAAAZ,GAAU,SAAAC,GAAS,GAGjC,CAACY,IAAc;AACjB,oBAAMoB,IAAQ,KAAK,OAAA,IAAW;AAC9B,cAAApB,IAAe,WAAWU,GAAmBU,CAAK;AAAA,YACpD;AAAA,UACF,GAEMC,IAAe,OAAOC,GAAgBd,MAAqB;AAC/D,kBAAMe,IAAUf,EAAQ;AAExB,gBAAI,CAACrB,GAAU,SAASoC,CAAO,EAAG,QAAO,QAAQ,IAAI,sBAAsB;AAE3E,kBAAMC,IAAWhB,EAAQ,QAAQ;AACjC,gBAAI,CAACgB,EAAU,QAAO,QAAQ,IAAI,oBAAoB;AAGtD,kBAAMrB,IAAaP,IAAgB,QAAQ,CAAA,GAErC6B,IAAQjB,EAAQ,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;AAG7D,gBAAI,CAAC,CAAC,UAAU,WAAW,EAAE,SAASiB,CAAK,EAAG;AAE9C,kBAAMC,IAAQlB,EAAQ,QAAQ;AAE9B,gBAAImB,IAAiBD;AACrB,YAAID,MAAU,WACZE,IAAY,OAAOD,CAAK,IACfD,MAAU,gBACnBE,IAAY,MAAM,QAAQD,CAAK,IAAKA,IAAqB,CAAA;AAI3D,kBAAME,IAAkBzB,EAAW,KAAK,CAACG,MAAMA,EAAE,OAAOkB,CAAQ,GAE1DK,IACJJ,MAAU,eAAgBE,EAAuB,KAAK,CAACrD,MAAMU,GAAW,SAASV,CAAC,CAAC;AAErF,YAAI,CAACsD,KAAmB,CAACC,KAEzBZ,EAAgB;AAAA,cACd,SAAS,CAACO,CAAQ;AAAA,cAClB,UAAU,CAACD,CAAO;AAAA,cAClB,SAAS,EAAE,CAACE,CAAK,GAAGE,EAAA;AAAA,YAAU,CAC/B;AAAA,UACH;AAGA,UAAA9B,IAAQiC,EAAO,UAAU,eAAeT,CAAY;AAAA,QACtD,SAAS9B,GAAO;AACd,kBAAQ,MAAMA,CAAK;AAAA,QAGrB;AAEA,cAAMI,GAENmC,EAAO,YAAYjC,CAAK,GACpBC,KACFA,EAAA,GAEEE,kBAA2BA,CAAY;AAAA,MAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA;AAAA;AAAA,IAeF,gBAAgB;AAAA,MACd,mBAAmB7B;AAAA,MACnB,cAAcO;AAAA,IAAA;AAAA;AAAA,IAGhB,uBAAuB;AAAA,MACrB,mBAAmB,CAACN,GAAsC2D,GAAO,EAAE,UAAA5C,MAAa,CAAA,MAC9Ef,EAAS,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM4D,QAAW;AAC3C,cAAMC,IAAeC,EAAwBF,EAAK,YAAY;AAI9D,YAAIG,IAFW,CAACH,EAAK,aAAa,CAACA,EAAK,UAEVI,EAAsBH,CAAY,IAAI9C;AACpE,SAAI,OAAOgD,KAAmB,YAAY,CAACA,WAAiC,CAAA;AAG5E,cAAME,IAAY,cAAcL,EAAK,IAAI;AAEzC,eAAO;AAAA,UACL,GAAGA;AAAA,UACH,cAAAC;AAAA,UACA,UAAUE;AAAA,UACV,WAAAE;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,MACH,cAAc,CAAC1D,MACbA,GAAQ,SACJ;AAAA,QACE,EAAE,MAAM,QAAQ,IAAI,OAAA;AAAA,QACpB,GAAGA,EAAO,IAAI,CAAC,EAAE,MAAA2D,EAAA,OAAY,EAAE,MAAM,QAAQ,IAAIA,IAAO;AAAA,MAAA,IAE1D,CAAC,EAAE,MAAM,QAAQ,IAAI,QAAQ;AAAA,IAAA;AAAA,EACrC;AAEJ,CAAC,GAEY,EAAE,mBAAAC,IAAmB,+BAAAC,OAAkClD,GAW9DmD,IAA2BnD,EAA4B,gBAAgB;AAAA,EAC3E,WAAW,CAACoD,OAAW;AAAA,IACrB,iBAAiBA,EAAM,MAAsD;AAAA,MAC3E,MAAM,QAAQ,EAAE,UAAAvD,IAAW,CAAA,GAAI,SAAAwD,IAAU,GAAA,GAAQ,EAAE,UAAAtD,KAAY;AAC7D,YAAI;AAEF,gBAAMuD,IAAkE,CAAA;AACxE,qBAAWrB,KAAWpC,GAAU;AAC9B,kBAAMJ,IAAcwC,GAGdsB,IAAY;AAAA,cAChBxD,EAASyD,EAAe,UAAU,WAAW,SAAS,EAAE,aAAA/D,EAAA,CAAa,CAAC,EAAE,OAAA;AAAA,cACxE,GAAI4D,IACA;AAAA,gBACEtD;AAAA,kBACEyD,EAAe,UAAU,kBAAkB,SAAS,EAAE,aAAA/D,GAAa;AAAA,gBAAA,EACnE,OAAA;AAAA,cAAO,IAEX,CAAA;AAAA,YAAC,GAGDgE,IAAU,MAAM,QAAQ,WAAWF,CAAS,GAE5CG,IAAoBD,EAAQ,CAAC,GAC7BE,IACJD,EAAkB,WAAW,cACxBA,EAAkB,QACnB,QACAE,IACJP,KAAWI,EAAQ,CAAC,GAAG,WAAW,cAC7BA,EAAQ,CAAC,EAAE,QACZ;AAEN,YAAIE,MACFL,EAAY7D,CAAW,IAAI;AAAA,cACzB,GAAGkE;AAAA,cACH,SAASC;AAAA,YAAA;AAAA,UAGf;AAEA,iBAAO,EAAE,MAAMN,GAAa,MAAM,QAAW,OAAO,OAAA;AAAA,QACtD,SAASrD,GAAY;AACnB,yBAAQ,MAAMA,CAAK,GACZ,EAAE,OAAAA,GAAO,MAAM,QAAW,MAAM,OAAA;AAAA,QACzC;AAAA,MACF;AAAA,MACA,cAAc,CAAC4D,GAAMvE,GAAQ,EAAE,UAAAO,QAC7BA,EAAS,IAAI,CAACJ,OAAiB,EAAE,MAAM,WAAW,IAAIA,IAAc;AAAA,IAAA,CACvE;AAAA,EAAA;AAEL,CAAC,GAEY,EAAE,yBAAAqE,OAA4BX;"}