@ynput/ayon-frontend-shared 0.2.19 → 0.2.20

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 (522) hide show
  1. package/dist/DetailsPanel.cjs.js +10 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +10 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/api.cjs.js +16 -0
  6. package/dist/api.cjs.js.map +1 -1
  7. package/dist/api.es.js +17 -1
  8. package/dist/api.es.js.map +1 -1
  9. package/dist/components.cjs.js +22 -0
  10. package/dist/components.cjs.js.map +1 -1
  11. package/dist/components.es.js +23 -1
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +10 -0
  14. package/dist/index.cjs.js.map +1 -1
  15. package/dist/index.es.js +10 -0
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +5 -0
  18. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -0
  19. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +6 -0
  20. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -0
  21. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
  22. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
  23. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
  24. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
  25. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
  26. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
  27. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
  28. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
  29. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +58 -41
  30. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
  31. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +57 -41
  32. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
  33. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +20 -0
  34. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -0
  35. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +21 -0
  36. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -0
  37. package/dist/shared/src/api/base/client.cjs.js +2 -1
  38. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  39. package/dist/shared/src/api/base/client.es.js +2 -1
  40. package/dist/shared/src/api/base/client.es.js.map +1 -1
  41. package/dist/shared/src/api/generated/actions.cjs.js +6 -1
  42. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  43. package/dist/shared/src/api/generated/actions.es.js +6 -1
  44. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  45. package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
  47. package/dist/shared/src/api/generated/addons.cjs.js +2 -1
  48. package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/addons.es.js +2 -1
  50. package/dist/shared/src/api/generated/addons.es.js.map +1 -1
  51. package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/authentication.cjs.js.map +1 -1
  54. package/dist/shared/src/api/generated/authentication.es.js.map +1 -1
  55. package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
  56. package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/links.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/links.es.js.map +1 -1
  59. package/dist/shared/src/api/generated/onboarding.cjs.js.map +1 -1
  60. package/dist/shared/src/api/generated/onboarding.es.js.map +1 -1
  61. package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
  62. package/dist/shared/src/api/generated/operations.es.js.map +1 -1
  63. package/dist/shared/src/api/generated/projects.cjs.js +0 -8
  64. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  65. package/dist/shared/src/api/generated/projects.es.js +0 -8
  66. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  67. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  68. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  69. package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
  70. package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
  71. package/dist/shared/src/api/generated/views.cjs.js +53 -0
  72. package/dist/shared/src/api/generated/views.cjs.js.map +1 -0
  73. package/dist/shared/src/api/generated/views.es.js +53 -0
  74. package/dist/shared/src/api/generated/views.es.js.map +1 -0
  75. package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -0
  76. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/actions/getActions.es.js +1 -0
  78. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
  80. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
  82. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
  84. package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
  86. package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
  88. package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
  89. package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
  90. package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
  91. package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
  92. package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
  94. package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
  95. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
  96. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  97. package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
  98. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  99. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
  100. package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
  102. package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
  103. package/dist/shared/src/api/queries/cloud/cloud.cjs.js +67 -0
  104. package/dist/shared/src/api/queries/cloud/cloud.cjs.js.map +1 -0
  105. package/dist/shared/src/api/queries/cloud/cloud.es.js +67 -0
  106. package/dist/shared/src/api/queries/cloud/cloud.es.js.map +1 -0
  107. package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -0
  108. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  109. package/dist/shared/src/api/queries/entities/getEntity.es.js +1 -0
  110. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  111. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -0
  112. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -0
  114. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  115. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +4 -0
  116. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  117. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -0
  118. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  119. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +11 -1
  120. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  121. package/dist/shared/src/api/queries/entities/updateEntity.es.js +11 -1
  122. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  123. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -0
  124. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  125. package/dist/shared/src/api/queries/entityLists/getLists.es.js +1 -0
  126. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  127. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
  128. package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
  129. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
  130. package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
  131. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
  132. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
  134. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  135. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
  136. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  137. package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
  138. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  139. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -0
  140. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  141. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +1 -0
  142. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  143. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -0
  144. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  145. package/dist/shared/src/api/queries/overview/getOverview.es.js +1 -0
  146. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  147. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +17 -2
  148. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  149. package/dist/shared/src/api/queries/overview/updateOverview.es.js +17 -2
  150. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  151. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
  152. package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
  153. package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
  154. package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
  155. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -0
  156. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  157. package/dist/shared/src/api/queries/products/createProduct.es.js +1 -0
  158. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  159. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
  160. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  161. package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
  162. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  163. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -0
  164. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  165. package/dist/shared/src/api/queries/review/getReview.es.js +1 -0
  166. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  167. package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
  168. package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
  169. package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
  170. package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
  171. package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
  172. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  173. package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
  174. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  175. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -0
  176. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  177. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -0
  178. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  179. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
  180. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  181. package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
  182. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  183. package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
  184. package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
  185. package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
  186. package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
  187. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -0
  188. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  189. package/dist/shared/src/api/queries/versions/updateVersions.es.js +1 -0
  190. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  191. package/dist/shared/src/api/queries/views/getViews.cjs.js +72 -0
  192. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -0
  193. package/dist/shared/src/api/queries/views/getViews.es.js +72 -0
  194. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -0
  195. package/dist/shared/src/api/queries/views/updateViews.cjs.js +33 -0
  196. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -0
  197. package/dist/shared/src/api/queries/views/updateViews.es.js +33 -0
  198. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -0
  199. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
  200. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  201. package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
  202. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  203. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +4 -0
  204. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  205. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -0
  206. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  207. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +12 -1
  208. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  209. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +12 -1
  210. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  211. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +10 -0
  212. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  213. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +10 -0
  214. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  215. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +369 -0
  216. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -0
  217. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +369 -0
  218. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -0
  219. package/dist/shared/src/components/Feedback/SupportBubble.cjs.js +48 -0
  220. package/dist/shared/src/components/Feedback/SupportBubble.cjs.js.map +1 -0
  221. package/dist/shared/src/components/Feedback/SupportBubble.es.js +48 -0
  222. package/dist/shared/src/components/Feedback/SupportBubble.es.js.map +1 -0
  223. package/dist/shared/src/components/Powerpack/CTAButton.cjs.js +10 -0
  224. package/dist/shared/src/components/Powerpack/CTAButton.cjs.js.map +1 -0
  225. package/dist/shared/src/components/Powerpack/CTAButton.es.js +10 -0
  226. package/dist/shared/src/components/Powerpack/CTAButton.es.js.map +1 -0
  227. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +229 -28
  228. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  229. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +230 -29
  230. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  231. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +3 -0
  232. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
  233. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +3 -0
  234. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
  235. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +4 -0
  236. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  237. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +4 -0
  238. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  239. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +179 -0
  240. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  241. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +179 -0
  242. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  243. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +4 -0
  244. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  245. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -0
  246. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  247. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +10 -0
  248. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  249. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +10 -0
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +10 -0
  252. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  253. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -0
  254. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  255. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +10 -0
  256. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  257. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +10 -0
  258. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  259. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +4 -0
  260. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -0
  262. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  263. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +4 -0
  264. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  265. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +4 -0
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  267. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +10 -0
  268. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  269. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +10 -0
  270. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  271. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +10 -0
  272. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  273. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +10 -0
  274. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  275. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +4 -0
  276. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  277. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -0
  278. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  279. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +164 -0
  280. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +1 -0
  281. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +164 -0
  282. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +1 -0
  283. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +71 -0
  284. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +1 -0
  285. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +71 -0
  286. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +1 -0
  287. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js +189 -0
  288. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +1 -0
  289. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js +189 -0
  290. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +1 -0
  291. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +36 -0
  292. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +1 -0
  293. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +36 -0
  294. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +1 -0
  295. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js +63 -0
  296. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
  297. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js +63 -0
  298. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
  299. package/dist/shared/src/components/Views/Views.cjs.js +21 -0
  300. package/dist/shared/src/components/Views/Views.cjs.js.map +1 -0
  301. package/dist/shared/src/components/Views/Views.es.js +21 -0
  302. package/dist/shared/src/components/Views/Views.es.js.map +1 -0
  303. package/dist/shared/src/components/Views/Views.styled.cjs.js +44 -0
  304. package/dist/shared/src/components/Views/Views.styled.cjs.js.map +1 -0
  305. package/dist/shared/src/components/Views/Views.styled.es.js +44 -0
  306. package/dist/shared/src/components/Views/Views.styled.es.js.map +1 -0
  307. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js +32 -0
  308. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
  309. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js +32 -0
  310. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +1 -0
  311. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js +31 -0
  312. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
  313. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js +31 -0
  314. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
  315. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js +33 -0
  316. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -0
  317. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js +33 -0
  318. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -0
  319. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +132 -0
  320. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
  321. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +132 -0
  322. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
  323. package/dist/shared/src/components/Views/context/ViewsContext.cjs.js +145 -0
  324. package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +1 -0
  325. package/dist/shared/src/components/Views/context/ViewsContext.es.js +145 -0
  326. package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +1 -0
  327. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js +160 -0
  328. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
  329. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js +160 -0
  330. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
  331. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +13 -0
  332. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +1 -0
  333. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +13 -0
  334. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +1 -0
  335. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js +8 -0
  336. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
  337. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js +8 -0
  338. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +1 -0
  339. package/dist/shared/src/components/Views/utils/portalUtils.cjs.js +11 -0
  340. package/dist/shared/src/components/Views/utils/portalUtils.cjs.js.map +1 -0
  341. package/dist/shared/src/components/Views/utils/portalUtils.es.js +11 -0
  342. package/dist/shared/src/components/Views/utils/portalUtils.es.js.map +1 -0
  343. package/dist/shared/src/components/Watchers/Watchers.cjs.js +4 -0
  344. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  345. package/dist/shared/src/components/Watchers/Watchers.es.js +4 -0
  346. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  347. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +10 -0
  348. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +10 -0
  350. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  351. package/dist/shared/src/containers/Actions/Actions.cjs.js +4 -0
  352. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/Actions/Actions.es.js +4 -0
  354. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  355. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +10 -0
  356. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +10 -0
  358. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +10 -0
  360. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +10 -0
  362. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  363. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +10 -0
  364. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +10 -0
  366. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  367. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +10 -0
  368. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +10 -0
  370. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  371. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +10 -0
  372. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +10 -0
  374. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  375. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +4 -0
  376. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -0
  378. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  379. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +4 -0
  380. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -0
  382. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +4 -0
  384. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +4 -0
  386. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  388. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +4 -0
  390. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -0
  392. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +10 -2
  394. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +10 -2
  396. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +10 -0
  398. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +10 -0
  400. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +4 -0
  402. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -0
  404. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +4 -0
  406. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -0
  408. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +4 -0
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -0
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +4 -0
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -0
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +4 -0
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -0
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +4 -0
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -0
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +4 -0
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -0
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +4 -0
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -0
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +4 -0
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -0
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +4 -0
  438. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +4 -0
  440. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  441. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +10 -0
  442. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +10 -0
  444. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  445. package/dist/shared/src/context/AddonProjectContext.cjs.js +4 -0
  446. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  447. package/dist/shared/src/context/AddonProjectContext.es.js +4 -0
  448. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  449. package/dist/shared/src/context/DetailsPanelContext.cjs.js +4 -0
  450. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  451. package/dist/shared/src/context/DetailsPanelContext.es.js +4 -0
  452. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  453. package/dist/shared/src/context/PowerpackContext.cjs.js +9 -0
  454. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  455. package/dist/shared/src/context/PowerpackContext.es.js +9 -0
  456. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  457. package/dist/shared/src/context/RemoteModulesContext.cjs.js +4 -0
  458. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  459. package/dist/shared/src/context/RemoteModulesContext.es.js +4 -0
  460. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  461. package/dist/shared/src/hooks/useActionTriggers.cjs.js +4 -0
  462. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  463. package/dist/shared/src/hooks/useActionTriggers.es.js +4 -0
  464. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  465. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +4 -0
  466. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  467. package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -0
  468. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  469. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +4 -0
  470. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  471. package/dist/shared/src/hooks/useScopedStatuses.es.js +4 -0
  472. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  473. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +4 -0
  474. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  475. package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -0
  476. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  477. package/dist/types/api/generated/actions.d.ts +11 -4
  478. package/dist/types/api/generated/activityFeed.d.ts +3 -0
  479. package/dist/types/api/generated/addons.d.ts +1 -0
  480. package/dist/types/api/generated/anatomy.d.ts +0 -2
  481. package/dist/types/api/generated/authentication.d.ts +0 -1
  482. package/dist/types/api/generated/configuration.d.ts +6 -0
  483. package/dist/types/api/generated/index.d.ts +2 -0
  484. package/dist/types/api/generated/links.d.ts +7 -5
  485. package/dist/types/api/generated/onboarding.d.ts +0 -1
  486. package/dist/types/api/generated/operations.d.ts +2 -0
  487. package/dist/types/api/generated/projects.d.ts +0 -35
  488. package/dist/types/api/generated/system.d.ts +2 -0
  489. package/dist/types/api/generated/tasks.d.ts +0 -14
  490. package/dist/types/api/generated/views.d.ts +122 -0
  491. package/dist/types/api/queries/cloud/cloud.d.ts +593 -0
  492. package/dist/types/api/queries/cloud/index.d.ts +1 -0
  493. package/dist/types/api/queries/index.d.ts +2 -0
  494. package/dist/types/api/queries/project/getProject.d.ts +0 -2
  495. package/dist/types/api/queries/views/getViews.d.ts +412 -0
  496. package/dist/types/api/queries/views/index.d.ts +2 -0
  497. package/dist/types/api/queries/views/updateViews.d.ts +177 -0
  498. package/dist/types/components/Feedback/FeedbackContext.d.ts +17 -0
  499. package/dist/types/components/Feedback/SupportBubble.d.ts +4 -0
  500. package/dist/types/components/Feedback/index.d.ts +2 -0
  501. package/dist/types/components/Powerpack/CTAButton.d.ts +4 -0
  502. package/dist/types/components/Powerpack/PowerpackDialog.d.ts +8 -0
  503. package/dist/types/components/Views/ViewForm/ViewForm.d.ts +14 -0
  504. package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +9 -0
  505. package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +15 -0
  506. package/dist/types/components/Views/ViewItem/ViewItem.d.ts +15 -0
  507. package/dist/types/components/Views/ViewItem/ViewItem.styled.d.ts +4 -0
  508. package/dist/types/components/Views/Views.d.ts +8 -0
  509. package/dist/types/components/Views/Views.styled.d.ts +4 -0
  510. package/dist/types/components/Views/ViewsButton/ViewsButton.d.ts +2 -0
  511. package/dist/types/components/Views/ViewsMenu/ViewsMenu.d.ts +11 -0
  512. package/dist/types/components/Views/ViewsMenu/ViewsMenu.styled.d.ts +4 -0
  513. package/dist/types/components/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +4 -0
  514. package/dist/types/components/Views/context/ViewsContext.d.ts +31 -0
  515. package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +14 -0
  516. package/dist/types/components/Views/index.d.ts +11 -0
  517. package/dist/types/components/Views/utils/generatePersonalView.d.ts +3 -0
  518. package/dist/types/components/Views/utils/getCustomViewsFallback.d.ts +12 -0
  519. package/dist/types/components/Views/utils/portalUtils.d.ts +9 -0
  520. package/dist/types/components/index.d.ts +2 -0
  521. package/dist/types/context/PowerpackContext.d.ts +5 -5
  522. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getPermissions.cjs.js","sources":["../../../../../../src/api/queries/permissions/getPermissions.ts"],"sourcesContent":["import { usersApi } from '@shared/api/generated'\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getMyPermissions: {\n providesTags: (_result) => [{ type: 'userPermissions' }],\n },\n getMyProjectPermissions: {\n providesTags: (_result, _err, _args) => [{ type: 'userProjectPermissions' }],\n },\n },\n})\n\nexport const { useGetMyPermissionsQuery, useGetMyProjectPermissionsQuery } = enhancedApi\nexport { enhancedApi as permissionsQueries }\n"],"names":["usersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,UAAS,iBAAiB;AAAA,EAC5C,WAAW;AAAA,IACT,kBAAkB;AAAA,MAChB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,kBAAmB,CAAA;AAAA,IACzD;AAAA,IACA,yBAAyB;AAAA,MACvB,cAAc,CAAC,SAAS,MAAM,UAAU,CAAC,EAAE,MAAM,yBAA0B,CAAA;AAAA,IAAA;AAAA,EAC7E;AAEJ,CAAC;AAEY,MAAA,EAAE,0BAA0B,oCAAoC;;;;"}
1
+ {"version":3,"file":"getPermissions.cjs.js","sources":["../../../../../../src/api/queries/permissions/getPermissions.ts"],"sourcesContent":["import { usersApi } from '@shared/api/generated'\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getMyPermissions: {\n providesTags: (_result) => [{ type: 'userPermissions' }],\n },\n getMyProjectPermissions: {\n providesTags: (_result, _err, _args) => [{ type: 'userProjectPermissions' }],\n },\n },\n})\n\nexport const { useGetMyPermissionsQuery, useGetMyProjectPermissionsQuery } = enhancedApi\nexport { enhancedApi as permissionsQueries }\n"],"names":["usersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,UAAS,iBAAiB;AAAA,EAC5C,WAAW;AAAA,IACT,kBAAkB;AAAA,MAChB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,kBAAmB,CAAA;AAAA,IACzD;AAAA,IACA,yBAAyB;AAAA,MACvB,cAAc,CAAC,SAAS,MAAM,UAAU,CAAC,EAAE,MAAM,yBAA0B,CAAA;AAAA,IAAA;AAAA,EAC7E;AAEJ,CAAC;AAEY,MAAA,EAAE,0BAA0B,oCAAoC;;;;"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  const enhancedApi = injectedRtkApi.enhanceEndpoints({
38
39
  endpoints: {
39
40
  getMyPermissions: {
@@ -1 +1 @@
1
- {"version":3,"file":"getPermissions.es.js","sources":["../../../../../../src/api/queries/permissions/getPermissions.ts"],"sourcesContent":["import { usersApi } from '@shared/api/generated'\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getMyPermissions: {\n providesTags: (_result) => [{ type: 'userPermissions' }],\n },\n getMyProjectPermissions: {\n providesTags: (_result, _err, _args) => [{ type: 'userProjectPermissions' }],\n },\n },\n})\n\nexport const { useGetMyPermissionsQuery, useGetMyProjectPermissionsQuery } = enhancedApi\nexport { enhancedApi as permissionsQueries }\n"],"names":["usersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,eAAS,iBAAiB;AAAA,EAC5C,WAAW;AAAA,IACT,kBAAkB;AAAA,MAChB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,kBAAmB,CAAA;AAAA,IACzD;AAAA,IACA,yBAAyB;AAAA,MACvB,cAAc,CAAC,SAAS,MAAM,UAAU,CAAC,EAAE,MAAM,yBAA0B,CAAA;AAAA,IAAA;AAAA,EAC7E;AAEJ,CAAC;AAEY,MAAA,EAAE,0BAA0B,oCAAoC;"}
1
+ {"version":3,"file":"getPermissions.es.js","sources":["../../../../../../src/api/queries/permissions/getPermissions.ts"],"sourcesContent":["import { usersApi } from '@shared/api/generated'\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getMyPermissions: {\n providesTags: (_result) => [{ type: 'userPermissions' }],\n },\n getMyProjectPermissions: {\n providesTags: (_result, _err, _args) => [{ type: 'userProjectPermissions' }],\n },\n },\n})\n\nexport const { useGetMyPermissionsQuery, useGetMyProjectPermissionsQuery } = enhancedApi\nexport { enhancedApi as permissionsQueries }\n"],"names":["usersApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,cAAcA,eAAS,iBAAiB;AAAA,EAC5C,WAAW;AAAA,IACT,kBAAkB;AAAA,MAChB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,kBAAmB,CAAA;AAAA,IACzD;AAAA,IACA,yBAAyB;AAAA,MACvB,cAAc,CAAC,SAAS,MAAM,UAAU,CAAC,EAAE,MAAM,yBAA0B,CAAA;AAAA,IAAA;AAAA,EAC7E;AAEJ,CAAC;AAEY,MAAA,EAAE,0BAA0B,oCAAoC;"}
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
36
36
  require("../../generated/workfiles.cjs.js");
37
37
  require("../../generated/ynputCloud.cjs.js");
38
38
  require("../../generated/grouping.cjs.js");
39
+ require("../../generated/views.cjs.js");
39
40
  const enhancedProductsApi = products.api.enhanceEndpoints({
40
41
  endpoints: {
41
42
  createProduct: {
@@ -1 +1 @@
1
- {"version":3,"file":"createProduct.cjs.js","sources":["../../../../../../src/api/queries/products/createProduct.ts"],"sourcesContent":["import { productsApi } from '@shared/api/generated'\n\nconst enhancedProductsApi = productsApi.enhanceEndpoints({\n endpoints: {\n createProduct: {\n invalidatesTags: (_r, _e, { productPostModel }) => [\n { type: 'product', id: productPostModel.folderId },\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n },\n})\n\nexport const { useCreateProductMutation } = enhancedProductsApi\n"],"names":["productsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,sBAAsBA,aAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,eAAe;AAAA,MACb,iBAAiB,CAAC,IAAI,IAAI,EAAE,uBAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAI,iBAAiB,SAAS;AAAA,MACnD;AAAA,MACA,wBAAwB,CAAC,UAAgB;;AAAA,iBAAE,UAAS,WAAM,SAAN,mBAAY,OAAO;AAAA;AAAA,IAAA;AAAA,EACzE;AAEJ,CAAC;AAEY,MAAA,EAAE,6BAA6B;;"}
1
+ {"version":3,"file":"createProduct.cjs.js","sources":["../../../../../../src/api/queries/products/createProduct.ts"],"sourcesContent":["import { productsApi } from '@shared/api/generated'\n\nconst enhancedProductsApi = productsApi.enhanceEndpoints({\n endpoints: {\n createProduct: {\n invalidatesTags: (_r, _e, { productPostModel }) => [\n { type: 'product', id: productPostModel.folderId },\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n },\n})\n\nexport const { useCreateProductMutation } = enhancedProductsApi\n"],"names":["productsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,sBAAsBA,aAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,eAAe;AAAA,MACb,iBAAiB,CAAC,IAAI,IAAI,EAAE,uBAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAI,iBAAiB,SAAS;AAAA,MACnD;AAAA,MACA,wBAAwB,CAAC,UAAgB;;AAAA,iBAAE,UAAS,WAAM,SAAN,mBAAY,OAAO;AAAA;AAAA,IAAA;AAAA,EACzE;AAEJ,CAAC;AAEY,MAAA,EAAE,6BAA6B;;"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  const enhancedProductsApi = injectedRtkApi.enhanceEndpoints({
38
39
  endpoints: {
39
40
  createProduct: {
@@ -1 +1 @@
1
- {"version":3,"file":"createProduct.es.js","sources":["../../../../../../src/api/queries/products/createProduct.ts"],"sourcesContent":["import { productsApi } from '@shared/api/generated'\n\nconst enhancedProductsApi = productsApi.enhanceEndpoints({\n endpoints: {\n createProduct: {\n invalidatesTags: (_r, _e, { productPostModel }) => [\n { type: 'product', id: productPostModel.folderId },\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n },\n})\n\nexport const { useCreateProductMutation } = enhancedProductsApi\n"],"names":["productsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,sBAAsBA,eAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,eAAe;AAAA,MACb,iBAAiB,CAAC,IAAI,IAAI,EAAE,uBAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAI,iBAAiB,SAAS;AAAA,MACnD;AAAA,MACA,wBAAwB,CAAC,UAAgB;;AAAA,iBAAE,UAAS,WAAM,SAAN,mBAAY,OAAO;AAAA;AAAA,IAAA;AAAA,EACzE;AAEJ,CAAC;AAEY,MAAA,EAAE,6BAA6B;"}
1
+ {"version":3,"file":"createProduct.es.js","sources":["../../../../../../src/api/queries/products/createProduct.ts"],"sourcesContent":["import { productsApi } from '@shared/api/generated'\n\nconst enhancedProductsApi = productsApi.enhanceEndpoints({\n endpoints: {\n createProduct: {\n invalidatesTags: (_r, _e, { productPostModel }) => [\n { type: 'product', id: productPostModel.folderId },\n ],\n transformErrorResponse: (error: any) => ({ message: error.data?.detail }),\n },\n },\n})\n\nexport const { useCreateProductMutation } = enhancedProductsApi\n"],"names":["productsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,sBAAsBA,eAAY,iBAAiB;AAAA,EACvD,WAAW;AAAA,IACT,eAAe;AAAA,MACb,iBAAiB,CAAC,IAAI,IAAI,EAAE,uBAAuB;AAAA,QACjD,EAAE,MAAM,WAAW,IAAI,iBAAiB,SAAS;AAAA,MACnD;AAAA,MACA,wBAAwB,CAAC,UAAgB;;AAAA,iBAAE,UAAS,WAAM,SAAN,mBAAY,OAAO;AAAA;AAAA,IAAA;AAAA,EACzE;AAEJ,CAAC;AAEY,MAAA,EAAE,6BAA6B;"}
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
36
36
  require("../../generated/workfiles.cjs.js");
37
37
  require("../../generated/ynputCloud.cjs.js");
38
38
  require("../../generated/grouping.cjs.js");
39
+ require("../../generated/views.cjs.js");
39
40
  const createProjectQuery = (attribs, fields) => {
40
41
  const attribFragment = `
41
42
  fragment AttribFragment on ProjectAttribType {
@@ -1 +1 @@
1
- {"version":3,"file":"getProject.cjs.js","sources":["../../../../../../src/api/queries/project/getProject.ts"],"sourcesContent":["import { projectsApi, ListProjectsApiResponse, ListProjectsItemModel } from '@shared/api/generated'\n\n// TODO: use graphql api and write custom types\n// We will need to inject the endpoint as it cannot be generated\nconst createProjectQuery = (attribs: any, fields: any) => {\n const attribFragment = `\n fragment AttribFragment on ProjectAttribType {\n ${attribs.join(' ')}\n }`\n\n const fieldsFragment = `\n fragment FieldsFragment on ProjectNode {\n ${fields.join(' ')}\n }`\n\n return `\n query Project($projectName: String!) {\n project(name: $projectName) {\n ${fields.length ? '...FieldsFragment' : ''}\n ${\n attribs.length\n ? ` attrib {\n ...AttribFragment\n }`\n : ''\n }\n\n }\n }\n ${fields.length ? fieldsFragment : ''}\n ${attribs.length ? attribFragment : ''}\n `\n}\n\nconst getProjectInjected = projectsApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectAttribs: build.query({\n query: ({ projectName, attribs = [], fields = [] }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: createProjectQuery(attribs, fields),\n variables: { projectName },\n },\n }),\n transformResponse: (res: any) => res.data?.project,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n getTasksFolders: build.query({\n query: ({ projectName, query }) => ({\n url: `/api/projects/${projectName}/tasksFolders`,\n method: 'POST',\n body: {\n ...query,\n },\n }),\n transformResponse: (res: any) => res.folderIds || [],\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n }),\n overrideExisting: true,\n})\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof getProjectInjected>\ntype TagTypes = TagTypesFromApi<typeof getProjectInjected>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getProject'> & {\n listProjects: OverrideResultType<Definitions['listProjects'], ListProjectsItemModel[]>\n}\n\n// TODO: sort out the types\nconst getProjectApi = getProjectInjected.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getProject: {\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n listProjects: {\n transformResponse: (res: ListProjectsApiResponse) => res?.projects || [],\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n // @ts-ignore\n providesTags: (_res, _error, { active }) => [\n { type: 'project' },\n { type: 'projects', id: active },\n { type: 'projects', id: 'LIST' },\n ],\n },\n getProjectAnatomy: {\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n },\n})\n\nexport const {\n useGetProjectQuery,\n useListProjectsQuery,\n useGetProjectAnatomyQuery,\n useGetProjectAttribsQuery,\n useGetTasksFoldersQuery,\n} = getProjectApi\n\nexport default getProjectApi\n"],"names":["projectsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,qBAAqB,CAAC,SAAc,WAAgB;AACxD,QAAM,iBAAiB;AAAA;AAAA,MAEnB,QAAQ,KAAK,GAAG,CAAC;AAAA;AAGrB,QAAM,iBAAiB;AAAA;AAAA,MAEnB,OAAO,KAAK,GAAG,CAAC;AAAA;AAGb,SAAA;AAAA;AAAA;AAAA,QAGD,OAAO,SAAS,sBAAsB,EAAE;AAAA,QAExC,QAAQ,SACJ;AAAA;AAAA,WAGA,EACN;AAAA;AAAA;AAAA;AAAA,IAIF,OAAO,SAAS,iBAAiB,EAAE;AAAA,IACnC,QAAQ,SAAS,iBAAiB,EAAE;AAAA;AAExC;AAEA,MAAM,qBAAqBA,aAAY,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,mBAAmB,MAAM,MAAM;AAAA,MAC7B,OAAO,CAAC,EAAE,aAAa,UAAU,CAAA,GAAI,SAAS,CAAA,SAAU;AAAA,QACtD,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,OAAO,mBAAmB,SAAS,MAAM;AAAA,UACzC,WAAW,EAAE,YAAY;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,mBAAmB,CAAC;;AAAa,yBAAI,SAAJ,mBAAU;AAAA;AAAA,MAC3C,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA,CACvF;AAAA,IACD,iBAAiB,MAAM,MAAM;AAAA,MAC3B,OAAO,CAAC,EAAE,aAAa,aAAa;AAAA,QAClC,KAAK,iBAAiB,WAAW;AAAA,QACjC,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MACL;AAAA,MAEF,mBAAmB,CAAC,QAAa,IAAI,aAAa,CAAC;AAAA,MACnD,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACvF,CAAA;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAWK,MAAA,gBAAgB,mBAAmB,iBAA+C;AAAA,EACtF,WAAW;AAAA,IACT,YAAY;AAAA,MACV,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA,MAClF,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACxF;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,CAAC,SAAiC,2BAAK,aAAY,CAAC;AAAA,MACvE,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA;AAAA,MAElF,cAAc,CAAC,MAAM,QAAQ,EAAE,aAAa;AAAA,QAC1C,EAAE,MAAM,UAAU;AAAA,QAClB,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,QAC/B,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,MAAA;AAAA,IAEnC;AAAA,IACA,mBAAmB;AAAA,MACjB,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA;AAAA,EACxF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;;;"}
1
+ {"version":3,"file":"getProject.cjs.js","sources":["../../../../../../src/api/queries/project/getProject.ts"],"sourcesContent":["import { projectsApi, ListProjectsApiResponse, ListProjectsItemModel } from '@shared/api/generated'\n\n// TODO: use graphql api and write custom types\n// We will need to inject the endpoint as it cannot be generated\nconst createProjectQuery = (attribs: any, fields: any) => {\n const attribFragment = `\n fragment AttribFragment on ProjectAttribType {\n ${attribs.join(' ')}\n }`\n\n const fieldsFragment = `\n fragment FieldsFragment on ProjectNode {\n ${fields.join(' ')}\n }`\n\n return `\n query Project($projectName: String!) {\n project(name: $projectName) {\n ${fields.length ? '...FieldsFragment' : ''}\n ${\n attribs.length\n ? ` attrib {\n ...AttribFragment\n }`\n : ''\n }\n\n }\n }\n ${fields.length ? fieldsFragment : ''}\n ${attribs.length ? attribFragment : ''}\n `\n}\n\nconst getProjectInjected = projectsApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectAttribs: build.query({\n query: ({ projectName, attribs = [], fields = [] }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: createProjectQuery(attribs, fields),\n variables: { projectName },\n },\n }),\n transformResponse: (res: any) => res.data?.project,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n getTasksFolders: build.query({\n query: ({ projectName, query }) => ({\n url: `/api/projects/${projectName}/tasksFolders`,\n method: 'POST',\n body: {\n ...query,\n },\n }),\n transformResponse: (res: any) => res.folderIds || [],\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n }),\n overrideExisting: true,\n})\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof getProjectInjected>\ntype TagTypes = TagTypesFromApi<typeof getProjectInjected>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getProject'> & {\n listProjects: OverrideResultType<Definitions['listProjects'], ListProjectsItemModel[]>\n}\n\n// TODO: sort out the types\nconst getProjectApi = getProjectInjected.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getProject: {\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n listProjects: {\n transformResponse: (res: ListProjectsApiResponse) => res?.projects || [],\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n // @ts-ignore\n providesTags: (_res, _error, { active }) => [\n { type: 'project' },\n { type: 'projects', id: active },\n { type: 'projects', id: 'LIST' },\n ],\n },\n getProjectAnatomy: {\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n },\n})\n\nexport const {\n useGetProjectQuery,\n useListProjectsQuery,\n useGetProjectAnatomyQuery,\n useGetProjectAttribsQuery,\n useGetTasksFoldersQuery,\n} = getProjectApi\n\nexport default getProjectApi\n"],"names":["projectsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,qBAAqB,CAAC,SAAc,WAAgB;AACxD,QAAM,iBAAiB;AAAA;AAAA,MAEnB,QAAQ,KAAK,GAAG,CAAC;AAAA;AAGrB,QAAM,iBAAiB;AAAA;AAAA,MAEnB,OAAO,KAAK,GAAG,CAAC;AAAA;AAGb,SAAA;AAAA;AAAA;AAAA,QAGD,OAAO,SAAS,sBAAsB,EAAE;AAAA,QAExC,QAAQ,SACJ;AAAA;AAAA,WAGA,EACN;AAAA;AAAA;AAAA;AAAA,IAIF,OAAO,SAAS,iBAAiB,EAAE;AAAA,IACnC,QAAQ,SAAS,iBAAiB,EAAE;AAAA;AAExC;AAEA,MAAM,qBAAqBA,aAAY,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,mBAAmB,MAAM,MAAM;AAAA,MAC7B,OAAO,CAAC,EAAE,aAAa,UAAU,CAAA,GAAI,SAAS,CAAA,SAAU;AAAA,QACtD,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,OAAO,mBAAmB,SAAS,MAAM;AAAA,UACzC,WAAW,EAAE,YAAY;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,mBAAmB,CAAC;;AAAa,yBAAI,SAAJ,mBAAU;AAAA;AAAA,MAC3C,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA,CACvF;AAAA,IACD,iBAAiB,MAAM,MAAM;AAAA,MAC3B,OAAO,CAAC,EAAE,aAAa,aAAa;AAAA,QAClC,KAAK,iBAAiB,WAAW;AAAA,QACjC,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MACL;AAAA,MAEF,mBAAmB,CAAC,QAAa,IAAI,aAAa,CAAC;AAAA,MACnD,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACvF,CAAA;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAWK,MAAA,gBAAgB,mBAAmB,iBAA+C;AAAA,EACtF,WAAW;AAAA,IACT,YAAY;AAAA,MACV,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA,MAClF,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACxF;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,CAAC,SAAiC,2BAAK,aAAY,CAAC;AAAA,MACvE,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA;AAAA,MAElF,cAAc,CAAC,MAAM,QAAQ,EAAE,aAAa;AAAA,QAC1C,EAAE,MAAM,UAAU;AAAA,QAClB,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,QAC/B,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,MAAA;AAAA,IAEnC;AAAA,IACA,mBAAmB;AAAA,MACjB,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA;AAAA,EACxF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;;;"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  const createProjectQuery = (attribs, fields) => {
38
39
  const attribFragment = `
39
40
  fragment AttribFragment on ProjectAttribType {
@@ -1 +1 @@
1
- {"version":3,"file":"getProject.es.js","sources":["../../../../../../src/api/queries/project/getProject.ts"],"sourcesContent":["import { projectsApi, ListProjectsApiResponse, ListProjectsItemModel } from '@shared/api/generated'\n\n// TODO: use graphql api and write custom types\n// We will need to inject the endpoint as it cannot be generated\nconst createProjectQuery = (attribs: any, fields: any) => {\n const attribFragment = `\n fragment AttribFragment on ProjectAttribType {\n ${attribs.join(' ')}\n }`\n\n const fieldsFragment = `\n fragment FieldsFragment on ProjectNode {\n ${fields.join(' ')}\n }`\n\n return `\n query Project($projectName: String!) {\n project(name: $projectName) {\n ${fields.length ? '...FieldsFragment' : ''}\n ${\n attribs.length\n ? ` attrib {\n ...AttribFragment\n }`\n : ''\n }\n\n }\n }\n ${fields.length ? fieldsFragment : ''}\n ${attribs.length ? attribFragment : ''}\n `\n}\n\nconst getProjectInjected = projectsApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectAttribs: build.query({\n query: ({ projectName, attribs = [], fields = [] }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: createProjectQuery(attribs, fields),\n variables: { projectName },\n },\n }),\n transformResponse: (res: any) => res.data?.project,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n getTasksFolders: build.query({\n query: ({ projectName, query }) => ({\n url: `/api/projects/${projectName}/tasksFolders`,\n method: 'POST',\n body: {\n ...query,\n },\n }),\n transformResponse: (res: any) => res.folderIds || [],\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n }),\n overrideExisting: true,\n})\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof getProjectInjected>\ntype TagTypes = TagTypesFromApi<typeof getProjectInjected>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getProject'> & {\n listProjects: OverrideResultType<Definitions['listProjects'], ListProjectsItemModel[]>\n}\n\n// TODO: sort out the types\nconst getProjectApi = getProjectInjected.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getProject: {\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n listProjects: {\n transformResponse: (res: ListProjectsApiResponse) => res?.projects || [],\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n // @ts-ignore\n providesTags: (_res, _error, { active }) => [\n { type: 'project' },\n { type: 'projects', id: active },\n { type: 'projects', id: 'LIST' },\n ],\n },\n getProjectAnatomy: {\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n },\n})\n\nexport const {\n useGetProjectQuery,\n useListProjectsQuery,\n useGetProjectAnatomyQuery,\n useGetProjectAttribsQuery,\n useGetTasksFoldersQuery,\n} = getProjectApi\n\nexport default getProjectApi\n"],"names":["projectsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,qBAAqB,CAAC,SAAc,WAAgB;AACxD,QAAM,iBAAiB;AAAA;AAAA,MAEnB,QAAQ,KAAK,GAAG,CAAC;AAAA;AAGrB,QAAM,iBAAiB;AAAA;AAAA,MAEnB,OAAO,KAAK,GAAG,CAAC;AAAA;AAGb,SAAA;AAAA;AAAA;AAAA,QAGD,OAAO,SAAS,sBAAsB,EAAE;AAAA,QAExC,QAAQ,SACJ;AAAA;AAAA,WAGA,EACN;AAAA;AAAA;AAAA;AAAA,IAIF,OAAO,SAAS,iBAAiB,EAAE;AAAA,IACnC,QAAQ,SAAS,iBAAiB,EAAE;AAAA;AAExC;AAEA,MAAM,qBAAqBA,eAAY,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,mBAAmB,MAAM,MAAM;AAAA,MAC7B,OAAO,CAAC,EAAE,aAAa,UAAU,CAAA,GAAI,SAAS,CAAA,SAAU;AAAA,QACtD,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,OAAO,mBAAmB,SAAS,MAAM;AAAA,UACzC,WAAW,EAAE,YAAY;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,mBAAmB,CAAC;;AAAa,yBAAI,SAAJ,mBAAU;AAAA;AAAA,MAC3C,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA,CACvF;AAAA,IACD,iBAAiB,MAAM,MAAM;AAAA,MAC3B,OAAO,CAAC,EAAE,aAAa,aAAa;AAAA,QAClC,KAAK,iBAAiB,WAAW;AAAA,QACjC,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MACL;AAAA,MAEF,mBAAmB,CAAC,QAAa,IAAI,aAAa,CAAC;AAAA,MACnD,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACvF,CAAA;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAWK,MAAA,gBAAgB,mBAAmB,iBAA+C;AAAA,EACtF,WAAW;AAAA,IACT,YAAY;AAAA,MACV,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA,MAClF,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACxF;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,CAAC,SAAiC,2BAAK,aAAY,CAAC;AAAA,MACvE,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA;AAAA,MAElF,cAAc,CAAC,MAAM,QAAQ,EAAE,aAAa;AAAA,QAC1C,EAAE,MAAM,UAAU;AAAA,QAClB,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,QAC/B,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,MAAA;AAAA,IAEnC;AAAA,IACA,mBAAmB;AAAA,MACjB,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA;AAAA,EACxF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
1
+ {"version":3,"file":"getProject.es.js","sources":["../../../../../../src/api/queries/project/getProject.ts"],"sourcesContent":["import { projectsApi, ListProjectsApiResponse, ListProjectsItemModel } from '@shared/api/generated'\n\n// TODO: use graphql api and write custom types\n// We will need to inject the endpoint as it cannot be generated\nconst createProjectQuery = (attribs: any, fields: any) => {\n const attribFragment = `\n fragment AttribFragment on ProjectAttribType {\n ${attribs.join(' ')}\n }`\n\n const fieldsFragment = `\n fragment FieldsFragment on ProjectNode {\n ${fields.join(' ')}\n }`\n\n return `\n query Project($projectName: String!) {\n project(name: $projectName) {\n ${fields.length ? '...FieldsFragment' : ''}\n ${\n attribs.length\n ? ` attrib {\n ...AttribFragment\n }`\n : ''\n }\n\n }\n }\n ${fields.length ? fieldsFragment : ''}\n ${attribs.length ? attribFragment : ''}\n `\n}\n\nconst getProjectInjected = projectsApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectAttribs: build.query({\n query: ({ projectName, attribs = [], fields = [] }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: createProjectQuery(attribs, fields),\n variables: { projectName },\n },\n }),\n transformResponse: (res: any) => res.data?.project,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n getTasksFolders: build.query({\n query: ({ projectName, query }) => ({\n url: `/api/projects/${projectName}/tasksFolders`,\n method: 'POST',\n body: {\n ...query,\n },\n }),\n transformResponse: (res: any) => res.folderIds || [],\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n }),\n }),\n overrideExisting: true,\n})\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof getProjectInjected>\ntype TagTypes = TagTypesFromApi<typeof getProjectInjected>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'getProject'> & {\n listProjects: OverrideResultType<Definitions['listProjects'], ListProjectsItemModel[]>\n}\n\n// TODO: sort out the types\nconst getProjectApi = getProjectInjected.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getProject: {\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n listProjects: {\n transformResponse: (res: ListProjectsApiResponse) => res?.projects || [],\n transformErrorResponse: (error: any) => error.data.detail || `Error ${error.status}`,\n // @ts-ignore\n providesTags: (_res, _error, { active }) => [\n { type: 'project' },\n { type: 'projects', id: active },\n { type: 'projects', id: 'LIST' },\n ],\n },\n getProjectAnatomy: {\n providesTags: (_res, _error, { projectName }) => [{ type: 'project', id: projectName }],\n },\n },\n})\n\nexport const {\n useGetProjectQuery,\n useListProjectsQuery,\n useGetProjectAnatomyQuery,\n useGetProjectAttribsQuery,\n useGetTasksFoldersQuery,\n} = getProjectApi\n\nexport default getProjectApi\n"],"names":["projectsApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,qBAAqB,CAAC,SAAc,WAAgB;AACxD,QAAM,iBAAiB;AAAA;AAAA,MAEnB,QAAQ,KAAK,GAAG,CAAC;AAAA;AAGrB,QAAM,iBAAiB;AAAA;AAAA,MAEnB,OAAO,KAAK,GAAG,CAAC;AAAA;AAGb,SAAA;AAAA;AAAA;AAAA,QAGD,OAAO,SAAS,sBAAsB,EAAE;AAAA,QAExC,QAAQ,SACJ;AAAA;AAAA,WAGA,EACN;AAAA;AAAA;AAAA;AAAA,IAIF,OAAO,SAAS,iBAAiB,EAAE;AAAA,IACnC,QAAQ,SAAS,iBAAiB,EAAE;AAAA;AAExC;AAEA,MAAM,qBAAqBA,eAAY,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,mBAAmB,MAAM,MAAM;AAAA,MAC7B,OAAO,CAAC,EAAE,aAAa,UAAU,CAAA,GAAI,SAAS,CAAA,SAAU;AAAA,QACtD,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,OAAO,mBAAmB,SAAS,MAAM;AAAA,UACzC,WAAW,EAAE,YAAY;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,mBAAmB,CAAC;;AAAa,yBAAI,SAAJ,mBAAU;AAAA;AAAA,MAC3C,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA,CACvF;AAAA,IACD,iBAAiB,MAAM,MAAM;AAAA,MAC3B,OAAO,CAAC,EAAE,aAAa,aAAa;AAAA,QAClC,KAAK,iBAAiB,WAAW;AAAA,QACjC,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MACL;AAAA,MAEF,mBAAmB,CAAC,QAAa,IAAI,aAAa,CAAC;AAAA,MACnD,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACvF,CAAA;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAWK,MAAA,gBAAgB,mBAAmB,iBAA+C;AAAA,EACtF,WAAW;AAAA,IACT,YAAY;AAAA,MACV,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA,MAClF,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IACxF;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,CAAC,SAAiC,2BAAK,aAAY,CAAC;AAAA,MACvE,wBAAwB,CAAC,UAAe,MAAM,KAAK,UAAU,SAAS,MAAM,MAAM;AAAA;AAAA,MAElF,cAAc,CAAC,MAAM,QAAQ,EAAE,aAAa;AAAA,QAC1C,EAAE,MAAM,UAAU;AAAA,QAClB,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,QAC/B,EAAE,MAAM,YAAY,IAAI,OAAO;AAAA,MAAA;AAAA,IAEnC;AAAA,IACA,mBAAmB;AAAA,MACjB,cAAc,CAAC,MAAM,QAAQ,EAAE,YAAA,MAAkB,CAAC,EAAE,MAAM,WAAW,IAAI,YAAa,CAAA;AAAA,IAAA;AAAA,EACxF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
@@ -39,6 +39,7 @@ require("../../generated/versions.cjs.js");
39
39
  require("../../generated/workfiles.cjs.js");
40
40
  require("../../generated/ynputCloud.cjs.js");
41
41
  require("../../generated/grouping.cjs.js");
42
+ require("../../generated/views.cjs.js");
42
43
  require("../addons/getAddons.cjs.js");
43
44
  const updateAddons = require("../addons/updateAddons.cjs.js");
44
45
  const getViewerReviewablesTags = (result, {
@@ -1 +1 @@
1
- {"version":3,"file":"getReview.cjs.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["productId","reviewablesApi","reviewables","PubSub","result","addonsQueries"],"mappings":"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"}
1
+ {"version":3,"file":"getReview.cjs.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["productId","reviewablesApi","reviewables","PubSub","result","addonsQueries"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B,CAC/B,QACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA,WACG;AACH,QAAM,OAAuC,CAAC;AAG1C,MAAA,gBAAgB,KAAK,EAAE,MAAM,UAAU,IAAI,WAAW;AAEtD,MAAA,aAAa,KAAK,EAAE,MAAM,UAAU,IAAI,QAAQ;AAChD,MAAA,eAAe,KAAK,EAAE,MAAM,UAAU,IAAI,UAAU;AAExD,MAAI,QAAQ;AAEN,QAAA,gBAAgB,KAAK,EAAE,MAAM,UAAU,IAAI,WAAW;AAEtD,QAAA,aAAa,KAAK,EAAE,MAAM,UAAU,IAAI,QAAQ;AAChD,QAAA,eAAe,KAAK,EAAE,MAAM,UAAU,IAAI,UAAU;AACpD,QAAA,gBAAgB,KAAK,EAAE,MAAM,UAAU,IAAI,WAAW;AAE1D,SAAK,KAAK,EAAE,MAAM,UAAU,IAAI,QAAQ;AAAA,EAAA;AAItC,MAAA,gBAAgB,KAAK,EAAE,MAAM,UAAU,IAAI,WAAW;AAE1D,MAAI,QAAQ;AAEV,UAAM,aAAuB,CAAC,GAAG,IAAI,IAAI,OAAO,QAAQ,CAAC,aAAY,mCAAS,cAAa,CAAA,CAAE,CAAC,CAAC;AAGpF,eAAA,QAAQ,CAACA,eAAc;AAC5B,UAAA,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAOA,cAAa,IAAI,SAAS,QAAQ;AACnE,aAAK,KAAK,EAAE,MAAM,UAAU,IAAIA,YAAW;AAEzC,UAAA,UAAU,CAAC,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAOA,cAAa,IAAI,SAAS,QAAQ;AAC7E,aAAK,KAAK,EAAE,MAAM,UAAU,IAAIA,YAAW;AAAA,IAAA,CAC9C;AAED,UAAM,cAAc,OAAO;AAAA,MAAQ,CAAC,YAClC,UACI;AAAA,QACE,MAAM;AAAA,QACN,IAAI,QAAQ;AAAA,MAAA,IAEd,CAAA;AAAA,IACN;AAEK,SAAA,KAAK,GAAG,WAAW;AAGxB,QAAI,QAAQ;AACE,kBAAA,QAAQ,CAAC,QAAQ;AAC3B,YAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,SAAS,QAAQ,GAAG;AAC7D,eAAK,KAAK,EAAE,MAAM,UAAU,IAAI,IAAI,IAAI;AAAA,QAAA;AAAA,MAC1C,CACD;AAAA,IAAA;AAGH,UAAM,iBAAiB,OAAO;AAAA,MAAQ,CAAC,YACrC;;AAAA,0BACI,aAAQ,gBAAR,mBAAqB,QAAQ,CAAC,eAAe;AAAA,UAC3C;AAAA,YACE,MAAM;AAAA,YACN,IAAI,WAAW;AAAA,UACjB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,IAAI,WAAW;AAAA,UAAA;AAAA,QACjB,KAEF,CAAA;AAAA;AAAA,IACN;AAEK,SAAA,KAAK,GAAG,cAAc;AAAA,EAAA;AAGtB,SAAA;AACT;AAEA,MAAM,cAAcC,gBAAe,iBAA+C;AAAA,EAChF,WAAW;AAAA,IACT,0BAA0B;AAAA,MACxB,mBAAmB;AAAA,MACnB,cAAc,CAAC,QAAQ,QAAQ,EAAE,UAC/B,MAAA,yBAAyB,CAAC,MAAM,GAAG,EAAE,WAAW,WAAW,iCAAQ,WAAW;AAAA,MAEhF,MAAM,kBACJ,EAAE,UAAU,GACZ,EAAE,kBAAkB,iBAAiB,mBAAmB,UAAU,iBAClE;AACI,YAAA;AACA,YAAA;AAEI,gBAAA;AAEA,gBAAA,eAAe,CAAC,OAAe,YAAiB;;AACpD,gBAAI,UAAU,qBAAsB;AAE9B,kBAAA,WAAW,mCAAS,YAAuB,CAAC;AAG9C,gBAAA,QAAQ,cAAc,UAAW;AAErC,kBAAM,QAAQ,cAAc;AAGtB,kBAAA,SAAQ,iBAAM,SAAN,mBAAY,gBAAZ,mBAAyB;AAAA,cACrC,CAAC,OAAuB,uBAAG,YAAW,QAAQ;AAAA;AAGhD,gBAAI,SAAS,UAAU,MAAM,QAAQ,WAAW,YAAY;AAEpD,oBAAA,YAAW,mCAAS,aAAY;AAGtC,+BAAiB,CAAC,SAAS;AACzB,sBAAMC,eAAc,KAAK;AAGzB,oBAAI,CAACA,aAAa;AACZ,sBAAA,aAAaA,aAAY,KAAK,EAAE;AAGtC,gBAAAA,aAAY,KAAK,IAAI;AAAA,kBACnB,GAAGA,aAAY,KAAK;AAAA,kBACpB,YAAY;AAAA,oBACV,GAAG;AAAA,oBACH;AAAA,oBACA,SAAS,QAAQ;AAAA,kBAAA;AAAA,gBAErB;AAAA,cAAA,CACD;AAAA,YAAA,OACI;AACG,sBAAA;AAAA,gBACN;AAAA,gBACA,QAAQ;AAAA,gBACR,QAAQ;AAAA,cACV;AAEA;AAAA,gBACED,gBAAe,KAAK,eAAe,CAAC,EAAE,MAAM,UAAU,IAAI,QAAQ,WAAW,CAAC;AAAA,cAChF;AAGI,kBAAA,QAAQ,WAAW,YAAY;AAE7B,qBAAA,WAAM,SAAN,mBAAY,WAAW;AACzB;AAAA,oBACEA,YAAA,IAAe,KAAK,eAAe;AAAA,sBACjC,EAAE,MAAM,UAAU,KAAI,WAAM,SAAN,mBAAY,UAAU;AAAA,oBAC7C,CAAA;AAAA,kBACH;AAAA,gBAAA;AAAA,cACF;AAAA,YACF;AAAA,UAEJ;AAGQ,kBAAAE,OAAO,UAAU,sBAAsB,YAAY;AAAA,QAAA,QACrD;AAAA,QAAA;AAKF,cAAA;AAENA,eAAO,YAAY,KAAK;AAAA,MAAA;AAAA,IAC1B;AAAA,EACF;AAEJ,CAAC;AAEK,MAAA,eAAe,YAAY,gBAAgB;AAAA,EAC/C,WAAW,CAAC,WAAW;AAAA;AAAA;AAAA,IAGrB,sBAAsB,MAAM,MAA4D;AAAA,MACtF,SAAS,OAAO,EAAE,WAAW,QAAQ,UAAU,YAAY,GAAG,EAAE,eAAe;AACzE,YAAA;AAEJ,YAAI,WAAW;AACL,kBAAAF,YAAA,IAAe,UAAU,yBAAyB;AAAA,YACxD;AAAA,cACE;AAAA,cACA;AAAA,YACF;AAAA,YACA,EAAE,cAAc,KAAK;AAAA,UACvB;AAAA,mBACS,QAAQ;AACT,kBAAAA,YAAA,IAAe,UAAU,sBAAsB;AAAA,YACrD,EAAE,QAAQ,YAAY;AAAA,YACtB,EAAE,cAAc,KAAK;AAAA,UACvB;AAAA,mBACS,UAAU;AACX,kBAAAA,YAAA,IAAe,UAAU,wBAAwB;AAAA,YACvD;AAAA,cACE;AAAA,cACA;AAAA,YACF;AAAA,YACA,EAAE,cAAc,KAAK;AAAA,UACvB;AAEA,gBAAMG,UAAS,MAAM;AAAA,YACnBH,gBAAe,UAAU,wBAAwB;AAAA,cAC/C,EAAE,UAAU,YAAY;AAAA,cACxB,EAAE,cAAc,KAAK;AAAA,YAAA;AAAA,UAEzB;AACAG,kBAAO;AAAA,QAAA;AAGT,YAAI,CAAC;AACI,iBAAA;AAAA,YACL,OAAO,EAAE,QAAQ,gBAAgB,OAAO,iBAAiB;AAAA,UAC3D;AAEI,cAAA,SAAS,MAAM,SAAS,KAAK;AAEnC,YAAI,OAAO,OAAO;AAChB,gBAAM,QAAQ,OAAO;AAErB,kBAAQ,MAAM,KAAK;AACnB,iBAAO,EAAE,MAAa;AAAA,QAAA,OACjB;AACL,gBAAM,OAAO,OAAO;AACpB,iBAAO,EAAE,KAAK;AAAA,QAAA;AAAA,MAElB;AAAA,MACA,cAAc,CAAC,QAAQ,QAAQ,SAAS,yBAAyB,QAAQ,MAAM,IAAI;AAAA,MACnF,MAAM,kBACJ,EAAE,WAAW,QAAQ,SAAA,GACrB,EAAE,iBAAiB,mBAAmB,UAAU,iBAChD;AACI,YAAA;AACA,YAAA;AAEI,gBAAA;AAEA,gBAAA,eAAe,CAAC,OAAe,YAAiB;;AACpD,gBAAI,UAAU,qBAAsB;AAE9B,kBAAA,WAAW,mCAAS,YAAuB,CAAC;AAElD,kBAAM,aAAa,IAAI,MAAI,mBAAgB,EAAA,SAAhB,mBAAsB,IAAI,CAAC,YAAY,QAAQ,QAAO,CAAA,CAAE;AAGnF,gBAAI,EAAC,yCAAY,IAAI,QAAQ,aAAa,KAAK;AAE3C,gBAAA,QAAQ,WAAW,YAAY;AAC7B,kBAAA;AACJ,kBAAI,UAAgB,MAAA;AAAA,uBACX,OAAa,MAAA;AAAA,uBACb,SAAe,MAAA;AAExB,sBAAQ,IAAI,gDAAgD,EAAE,GAAA,CAAI;AAElE,kBAAI,IAAI;AAEG,yBAAAH,YAAAA,IAAe,KAAK,eAAe,CAAC,EAAE,MAAM,UAAU,GAAQ,CAAA,CAAC,CAAC;AAAA,cAAA;AAAA,YAC3E;AAAA,UAEJ;AAGQ,kBAAAE,OAAO,UAAU,sBAAsB,YAAY;AAAA,QAAA,QACrD;AAAA,QAAA;AAKF,cAAA;AAENA,eAAO,YAAY,KAAK;AAAA,MAAA;AAAA,IAC1B,CACD;AAAA,IACD,eAAe,MAAM,MAA0B;AAAA,MAC7C,SAAS,OAAO,MAAM,EAAE,eAAe;AAE/B,cAAA,MAAM,MAAM,SAASE,aAAAA,cAAc,UAAU,WAAW,SAAS,EAAE,SAAS,MAAM,CAAC,CAAC;AAE1F,YAAI,IAAI,MAAM;AACN,gBAAA,gBAAgB,IAAI,KAAK,OAAO,KAAK,CAAC,UAAU,MAAM,SAAS,YAAY;AAE1E,iBAAA,EAAE,MAAM,cAAc;AAAA,QAAA,WACpB,IAAI,OAAO;AACZ,kBAAA,MAAM,IAAI,KAAK;AAChB,iBAAA,EAAE,MAAM,MAAM;AAAA,QAAA,MAChB,QAAO,EAAE,MAAM,MAAM;AAAA,MAAA;AAAA,IAE/B,CAAA;AAAA,EACH;AACF,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;"}
@@ -37,6 +37,7 @@ import "../../generated/versions.es.js";
37
37
  import "../../generated/workfiles.es.js";
38
38
  import "../../generated/ynputCloud.es.js";
39
39
  import "../../generated/grouping.es.js";
40
+ import "../../generated/views.es.js";
40
41
  import "../addons/getAddons.es.js";
41
42
  import { addonsQueries as updateAddonsApi } from "../addons/updateAddons.es.js";
42
43
  const getViewerReviewablesTags = (result, {
@@ -1 +1 @@
1
- {"version":3,"file":"getReview.es.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["productId","reviewablesApi","result","addonsQueries"],"mappings":"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"}
1
+ {"version":3,"file":"getReview.es.js","sources":["../../../../../../src/api/queries/review/getReview.ts"],"sourcesContent":["import { PubSub } from '@shared/util'\nimport { reviewablesApi, ReviewableModel, VersionReviewablesModel } from '@shared/api/generated'\nimport { addonsQueries } from '@shared/api/queries/addons'\nimport {\n Summary,\n GetReviewablesResponse,\n GetViewerReviewablesParams,\n TagTypes,\n UpdatedDefinitions,\n} from './types'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst getViewerReviewablesTags = (\n result: (GetReviewablesResponse | VersionReviewablesModel | undefined)[] | undefined,\n {\n productId,\n taskId,\n folderId,\n versionId,\n }: {\n productId?: string\n taskId?: string\n folderId?: string\n versionId?: string\n },\n viewer?: boolean,\n) => {\n const tags: { type: string; id: string }[] = []\n\n // different ways to open the viewer\n if (productId) tags.push({ type: 'review', id: productId })\n\n if (taskId) tags.push({ type: 'review', id: taskId })\n if (folderId) tags.push({ type: 'review', id: folderId })\n\n if (viewer) {\n // viewer specific tags for invalidating just the viewer\n if (productId) tags.push({ type: 'viewer', id: productId })\n\n if (taskId) tags.push({ type: 'viewer', id: taskId })\n if (folderId) tags.push({ type: 'viewer', id: folderId })\n if (versionId) tags.push({ type: 'viewer', id: versionId })\n\n tags.push({ type: 'viewer', id: 'LIST' })\n }\n\n // reviewables list caches\n if (versionId) tags.push({ type: 'review', id: versionId })\n\n if (result) {\n // create a unique list of productIds\n const productIds: string[] = [...new Set(result.flatMap((version) => version?.productId || []))]\n\n // if no productId was provided in the args, use the one from the result\n productIds.forEach((productId) => {\n if (!tags.find((tag) => tag.id === productId && tag.type === 'review'))\n tags.push({ type: 'review', id: productId })\n // if opening the viewer, add the viewer tag\n if (viewer && !tags.find((tag) => tag.id === productId && tag.type === 'viewer'))\n tags.push({ type: 'viewer', id: productId })\n })\n\n const versionTags = result.flatMap((version) =>\n version\n ? {\n type: 'review',\n id: version.id,\n }\n : [],\n )\n\n tags.push(...versionTags)\n\n // also add viewer tags for viewer\n if (viewer) {\n versionTags.forEach((tag) => {\n if (!tags.find((t) => t.id === tag.id && t.type === 'viewer')) {\n tags.push({ type: 'viewer', id: tag.id })\n }\n })\n }\n\n const reviewableTags = result.flatMap((version) =>\n version\n ? version.reviewables?.flatMap((reviewable) => [\n {\n type: 'review',\n id: reviewable.fileId,\n },\n {\n type: 'review',\n id: reviewable.activityId,\n },\n ])\n : [],\n ) as { type: 'review'; id: string }[]\n\n tags.push(...reviewableTags)\n }\n\n return tags\n}\n\nconst enhancedApi = reviewablesApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n getReviewablesForVersion: {\n keepUnusedDataFor: 1,\n providesTags: (result, _error, { versionId }) =>\n getViewerReviewablesTags([result], { versionId, productId: result?.productId }),\n\n async onCacheEntryAdded(\n { versionId },\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n // check it's for the right version\n if (summary.versionId !== versionId) return\n\n const cache = getCacheEntry()\n\n // check if the reviewable is in the cache\n const index = cache.data?.reviewables?.findIndex(\n (r: ReviewableModel) => r?.fileId === summary.sourceFileId,\n )\n\n if (index && index !== -1 && message.status !== 'finished') {\n // update the progress of the reviewable\n const progress = message?.progress || 0\n // update the cache reviewable\n\n updateCachedData((data) => {\n const reviewables = data.reviewables\n\n // check if there are reviewables\n if (!reviewables) return\n const processing = reviewables[index].processing\n\n // update the reviewable with the new progress\n reviewables[index] = {\n ...reviewables[index],\n processing: {\n ...processing,\n progress,\n eventId: message.id,\n },\n }\n })\n } else {\n console.log(\n 'Reviewable not found in cache, refreshing to get data:',\n summary.sourceFileId,\n summary.versionId,\n )\n // get data for this new reviewable\n dispatch(\n reviewablesApi.util.invalidateTags([{ type: 'review', id: summary.versionId }]),\n )\n\n // if it's finished, also invalidate viewer\n if (message.status === 'finished') {\n // also invalidate the viewer cache\n if (cache.data?.productId) {\n dispatch(\n reviewablesApi.util.invalidateTags([\n { type: 'viewer', id: cache.data?.productId },\n ]),\n )\n }\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n },\n },\n})\n\nconst getReviewApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // custom endpoint to get reviewables from product/task/folder\n // utilizes getReviewablesForProduct, getReviewablesForTask, getReviewablesForFolder\n getViewerReviewables: build.query<GetReviewablesResponse[], GetViewerReviewablesParams>({\n queryFn: async ({ productId, taskId, folderId, projectName }, { dispatch }) => {\n let query: any\n\n if (productId) {\n query = reviewablesApi.endpoints.getReviewablesForProduct.initiate(\n {\n productId,\n projectName,\n },\n { forceRefetch: true },\n )\n } else if (taskId) {\n query = reviewablesApi.endpoints.getReviewablesForTask.initiate(\n { taskId, projectName },\n { forceRefetch: true },\n )\n } else if (folderId) {\n query = reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n {\n folderId,\n projectName,\n },\n { forceRefetch: true },\n )\n\n const result = await dispatch(\n reviewablesApi.endpoints.getReviewablesForFolder.initiate(\n { folderId, projectName },\n { forceRefetch: true },\n ),\n )\n result.error\n }\n\n if (!query)\n return {\n error: { status: 'CUSTOM_ERROR', error: 'No query found' } as FetchBaseQueryError,\n }\n\n const result = await dispatch(query)\n\n if (result.error) {\n const error = result.error as FetchBaseQueryError\n\n console.error(error)\n return { error: error }\n } else {\n const data = result.data as GetReviewablesResponse[]\n return { data }\n }\n },\n providesTags: (result, _error, args) => getViewerReviewablesTags(result, args, true),\n async onCacheEntryAdded(\n { productId, taskId, folderId },\n { cacheDataLoaded, cacheEntryRemoved, dispatch, getCacheEntry },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: any) => {\n if (topic !== 'reviewable.process') return\n\n const summary = (message?.summary as Summary) || {}\n\n const versionIds = new Set(getCacheEntry().data?.map((version) => version.id) || [])\n\n // check that one of the versions is the right one\n if (!versionIds?.has(summary.versionId || '')) return\n\n if (message.status === 'finished') {\n let id: string | undefined\n if (productId) id = productId\n else if (taskId) id = taskId\n else if (folderId) id = folderId\n\n console.log('Reviewable finished, refreshing to get data:', { id })\n // \"838977a81dab11ef95ad0242ac180005\"\n if (id) {\n // get data for this new reviewable (invalidate self)\n dispatch(reviewablesApi.util.invalidateTags([{ type: 'review', id: id }]))\n }\n }\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('reviewable.process', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n hasTranscoder: build.query<boolean, undefined>({\n queryFn: async (_arg, { dispatch }) => {\n // get list of installed addons\n const res = await dispatch(addonsQueries.endpoints.listAddons.initiate({ details: false }))\n\n if (res.data) {\n const hasTranscoder = res.data.addons.some((addon) => addon.name === 'transcoder')\n\n return { data: hasTranscoder }\n } else if (res.error) {\n console.error(res.error)\n return { data: false }\n } else return { data: false }\n },\n }),\n }),\n})\n\nexport const {\n useGetViewerReviewablesQuery,\n useGetReviewablesForVersionQuery,\n useHasTranscoderQuery,\n} = getReviewApi\nexport default getReviewApi\n"],"names":["productId","reviewablesApi","result","addonsQueries"],"mappings":"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"}
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
36
36
  require("../../generated/workfiles.cjs.js");
37
37
  require("../../generated/ynputCloud.cjs.js");
38
38
  require("../../generated/grouping.cjs.js");
39
+ require("../../generated/views.cjs.js");
39
40
  const getReview = require("./getReview.cjs.js");
40
41
  const injectedEndpoints = getReview.default.injectEndpoints({
41
42
  endpoints: (build) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"updateReview.cjs.js","sources":["../../../../../../src/api/queries/review/updateReview.ts"],"sourcesContent":["import {\n activityFeedApi,\n DeleteProjectActivityApiResponse,\n DeleteProjectActivityApiArg,\n} from '@shared/api/generated'\nimport getReviewApi from './getReview'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { ReviewableResponse } from './types'\n\nconst injectedEndpoints = getReviewApi.injectEndpoints({\n endpoints: (build) => ({\n deleteReviewable: build.mutation<DeleteProjectActivityApiResponse, DeleteProjectActivityApiArg>(\n {\n queryFn: async (args, { dispatch }) => {\n try {\n // delete reviewable activity\n const res = await dispatch(\n activityFeedApi.endpoints.deleteProjectActivity.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n ),\n }),\n})\n\nconst enhancedEndpoints = injectedEndpoints.enhanceEndpoints({\n endpoints: {\n // reviewables list is updated optimistically\n sortVersionReviewables: {\n async onQueryStarted(\n { projectName, versionId, sortReviewablesRequest },\n { dispatch, queryFulfilled },\n ) {\n const patchResult = dispatch(\n getReviewApi.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n const sortingOrder = sortReviewablesRequest.sort\n // Create a new array to store the reordered reviewables\n const newReviewables: ReviewableResponse[] = []\n\n // Create a Set to track activityIds that are in the sortingOrder\n const orderedIds = new Set(sortingOrder)\n // Loop through each id in the sortingOrder array\n sortingOrder?.forEach((id) => {\n // Filter the reviewables that match the current activityId and push them to newReviewables\n draft.reviewables\n ?.filter((r: ReviewableResponse) => r.activityId === id)\n .forEach((r: ReviewableResponse) => newReviewables.push(r))\n })\n\n // Add remaining reviewables that were not in the sortingOrder to the end\n draft.reviewables?.forEach((r: ReviewableResponse) => {\n if (!orderedIds.has(r.activityId)) {\n newReviewables.push(r)\n }\n })\n\n // update draft\n draft.reviewables = newReviewables\n },\n ),\n )\n try {\n await queryFulfilled\n } catch {\n patchResult.undo()\n }\n },\n // viewer list is updated through invalidation\n invalidatesTags: (_result, _error, args) => [{ type: 'viewer', id: args.versionId }],\n },\n updateReviewable: {\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n },\n})\n\nexport const {\n useDeleteReviewableMutation,\n useSortVersionReviewablesMutation,\n useUpdateReviewableMutation,\n} = enhancedEndpoints\nexport { enhancedEndpoints as reviewablesQueries }\n"],"names":["getReviewApi","activityFeedApi","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,oBAAoBA,kBAAa,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,kBAAkB,MAAM;AAAA,MACtB;AAAA,QACE,SAAS,OAAO,MAAM,EAAE,eAAe;AACjC,cAAA;AAEF,kBAAM,MAAM,MAAM;AAAA,cAChBC,aAAAA,IAAgB,UAAU,sBAAsB,SAAS,IAAI;AAAA,YAC/D;AAEA,gBAAI,IAAI,OAAO;AACN,qBAAA,EAAE,OAAO,IAAI,MAA6B;AAAA,YAAA;AAG5C,mBAAA,EAAE,MAAM,IAAI,KAAK;AAAA,mBACjB,GAAQ;AACf,kBAAM,QAAQ,EAAE,QAAQ,eAAe,OAAO,EAAE,QAAQ;AACxD,mBAAO,EAAE,MAAM;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,MAAA;AAAA,IACtF;AAAA,EAEJ;AACF,CAAC;AAEK,MAAA,oBAAoB,kBAAkB,iBAAiB;AAAA,EAC3D,WAAW;AAAA;AAAA,IAET,wBAAwB;AAAA,MACtB,MAAM,eACJ,EAAE,aAAa,WAAW,0BAC1B,EAAE,UAAU,kBACZ;AACA,cAAM,cAAc;AAAA,UAClBD,kBAAa,KAAK;AAAA,YAChB;AAAA,YACA,EAAE,aAAa,UAAU;AAAA,YACzB,CAAC,UAAU;;AACT,oBAAM,eAAe,uBAAuB;AAE5C,oBAAM,iBAAuC,CAAC;AAGxC,oBAAA,aAAa,IAAI,IAAI,YAAY;AAEzB,2DAAA,QAAQ,CAAC,OAAO;;AAE5B,iBAAAE,MAAA,MAAM,gBAAN,gBAAAA,IACI,OAAO,CAAC,MAA0B,EAAE,eAAe,IACpD,QAAQ,CAAC,MAA0B,eAAe,KAAK,CAAC;AAAA,cAAC;AAIxD,0BAAA,gBAAA,mBAAa,QAAQ,CAAC,MAA0B;AACpD,oBAAI,CAAC,WAAW,IAAI,EAAE,UAAU,GAAG;AACjC,iCAAe,KAAK,CAAC;AAAA,gBAAA;AAAA,cACvB;AAIF,oBAAM,cAAc;AAAA,YAAA;AAAA,UACtB;AAAA,QAEJ;AACI,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACN,sBAAY,KAAK;AAAA,QAAA;AAAA,MAErB;AAAA;AAAA,MAEA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,UAAW,CAAA;AAAA,IACrF;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,IAAA;AAAA,EACtF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;"}
1
+ {"version":3,"file":"updateReview.cjs.js","sources":["../../../../../../src/api/queries/review/updateReview.ts"],"sourcesContent":["import {\n activityFeedApi,\n DeleteProjectActivityApiResponse,\n DeleteProjectActivityApiArg,\n} from '@shared/api/generated'\nimport getReviewApi from './getReview'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { ReviewableResponse } from './types'\n\nconst injectedEndpoints = getReviewApi.injectEndpoints({\n endpoints: (build) => ({\n deleteReviewable: build.mutation<DeleteProjectActivityApiResponse, DeleteProjectActivityApiArg>(\n {\n queryFn: async (args, { dispatch }) => {\n try {\n // delete reviewable activity\n const res = await dispatch(\n activityFeedApi.endpoints.deleteProjectActivity.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n ),\n }),\n})\n\nconst enhancedEndpoints = injectedEndpoints.enhanceEndpoints({\n endpoints: {\n // reviewables list is updated optimistically\n sortVersionReviewables: {\n async onQueryStarted(\n { projectName, versionId, sortReviewablesRequest },\n { dispatch, queryFulfilled },\n ) {\n const patchResult = dispatch(\n getReviewApi.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n const sortingOrder = sortReviewablesRequest.sort\n // Create a new array to store the reordered reviewables\n const newReviewables: ReviewableResponse[] = []\n\n // Create a Set to track activityIds that are in the sortingOrder\n const orderedIds = new Set(sortingOrder)\n // Loop through each id in the sortingOrder array\n sortingOrder?.forEach((id) => {\n // Filter the reviewables that match the current activityId and push them to newReviewables\n draft.reviewables\n ?.filter((r: ReviewableResponse) => r.activityId === id)\n .forEach((r: ReviewableResponse) => newReviewables.push(r))\n })\n\n // Add remaining reviewables that were not in the sortingOrder to the end\n draft.reviewables?.forEach((r: ReviewableResponse) => {\n if (!orderedIds.has(r.activityId)) {\n newReviewables.push(r)\n }\n })\n\n // update draft\n draft.reviewables = newReviewables\n },\n ),\n )\n try {\n await queryFulfilled\n } catch {\n patchResult.undo()\n }\n },\n // viewer list is updated through invalidation\n invalidatesTags: (_result, _error, args) => [{ type: 'viewer', id: args.versionId }],\n },\n updateReviewable: {\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n },\n})\n\nexport const {\n useDeleteReviewableMutation,\n useSortVersionReviewablesMutation,\n useUpdateReviewableMutation,\n} = enhancedEndpoints\nexport { enhancedEndpoints as reviewablesQueries }\n"],"names":["getReviewApi","activityFeedApi","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,oBAAoBA,kBAAa,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,kBAAkB,MAAM;AAAA,MACtB;AAAA,QACE,SAAS,OAAO,MAAM,EAAE,eAAe;AACjC,cAAA;AAEF,kBAAM,MAAM,MAAM;AAAA,cAChBC,aAAAA,IAAgB,UAAU,sBAAsB,SAAS,IAAI;AAAA,YAC/D;AAEA,gBAAI,IAAI,OAAO;AACN,qBAAA,EAAE,OAAO,IAAI,MAA6B;AAAA,YAAA;AAG5C,mBAAA,EAAE,MAAM,IAAI,KAAK;AAAA,mBACjB,GAAQ;AACf,kBAAM,QAAQ,EAAE,QAAQ,eAAe,OAAO,EAAE,QAAQ;AACxD,mBAAO,EAAE,MAAM;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,MAAA;AAAA,IACtF;AAAA,EAEJ;AACF,CAAC;AAEK,MAAA,oBAAoB,kBAAkB,iBAAiB;AAAA,EAC3D,WAAW;AAAA;AAAA,IAET,wBAAwB;AAAA,MACtB,MAAM,eACJ,EAAE,aAAa,WAAW,0BAC1B,EAAE,UAAU,kBACZ;AACA,cAAM,cAAc;AAAA,UAClBD,kBAAa,KAAK;AAAA,YAChB;AAAA,YACA,EAAE,aAAa,UAAU;AAAA,YACzB,CAAC,UAAU;;AACT,oBAAM,eAAe,uBAAuB;AAE5C,oBAAM,iBAAuC,CAAC;AAGxC,oBAAA,aAAa,IAAI,IAAI,YAAY;AAEzB,2DAAA,QAAQ,CAAC,OAAO;;AAE5B,iBAAAE,MAAA,MAAM,gBAAN,gBAAAA,IACI,OAAO,CAAC,MAA0B,EAAE,eAAe,IACpD,QAAQ,CAAC,MAA0B,eAAe,KAAK,CAAC;AAAA,cAAC;AAIxD,0BAAA,gBAAA,mBAAa,QAAQ,CAAC,MAA0B;AACpD,oBAAI,CAAC,WAAW,IAAI,EAAE,UAAU,GAAG;AACjC,iCAAe,KAAK,CAAC;AAAA,gBAAA;AAAA,cACvB;AAIF,oBAAM,cAAc;AAAA,YAAA;AAAA,UACtB;AAAA,QAEJ;AACI,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACN,sBAAY,KAAK;AAAA,QAAA;AAAA,MAErB;AAAA;AAAA,MAEA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,UAAW,CAAA;AAAA,IACrF;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,IAAA;AAAA,EACtF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  import getReviewApi from "./getReview.es.js";
38
39
  const injectedEndpoints = getReviewApi.injectEndpoints({
39
40
  endpoints: (build) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"updateReview.es.js","sources":["../../../../../../src/api/queries/review/updateReview.ts"],"sourcesContent":["import {\n activityFeedApi,\n DeleteProjectActivityApiResponse,\n DeleteProjectActivityApiArg,\n} from '@shared/api/generated'\nimport getReviewApi from './getReview'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { ReviewableResponse } from './types'\n\nconst injectedEndpoints = getReviewApi.injectEndpoints({\n endpoints: (build) => ({\n deleteReviewable: build.mutation<DeleteProjectActivityApiResponse, DeleteProjectActivityApiArg>(\n {\n queryFn: async (args, { dispatch }) => {\n try {\n // delete reviewable activity\n const res = await dispatch(\n activityFeedApi.endpoints.deleteProjectActivity.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n ),\n }),\n})\n\nconst enhancedEndpoints = injectedEndpoints.enhanceEndpoints({\n endpoints: {\n // reviewables list is updated optimistically\n sortVersionReviewables: {\n async onQueryStarted(\n { projectName, versionId, sortReviewablesRequest },\n { dispatch, queryFulfilled },\n ) {\n const patchResult = dispatch(\n getReviewApi.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n const sortingOrder = sortReviewablesRequest.sort\n // Create a new array to store the reordered reviewables\n const newReviewables: ReviewableResponse[] = []\n\n // Create a Set to track activityIds that are in the sortingOrder\n const orderedIds = new Set(sortingOrder)\n // Loop through each id in the sortingOrder array\n sortingOrder?.forEach((id) => {\n // Filter the reviewables that match the current activityId and push them to newReviewables\n draft.reviewables\n ?.filter((r: ReviewableResponse) => r.activityId === id)\n .forEach((r: ReviewableResponse) => newReviewables.push(r))\n })\n\n // Add remaining reviewables that were not in the sortingOrder to the end\n draft.reviewables?.forEach((r: ReviewableResponse) => {\n if (!orderedIds.has(r.activityId)) {\n newReviewables.push(r)\n }\n })\n\n // update draft\n draft.reviewables = newReviewables\n },\n ),\n )\n try {\n await queryFulfilled\n } catch {\n patchResult.undo()\n }\n },\n // viewer list is updated through invalidation\n invalidatesTags: (_result, _error, args) => [{ type: 'viewer', id: args.versionId }],\n },\n updateReviewable: {\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n },\n})\n\nexport const {\n useDeleteReviewableMutation,\n useSortVersionReviewablesMutation,\n useUpdateReviewableMutation,\n} = enhancedEndpoints\nexport { enhancedEndpoints as reviewablesQueries }\n"],"names":["activityFeedApi","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,oBAAoB,aAAa,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,kBAAkB,MAAM;AAAA,MACtB;AAAA,QACE,SAAS,OAAO,MAAM,EAAE,eAAe;AACjC,cAAA;AAEF,kBAAM,MAAM,MAAM;AAAA,cAChBA,eAAgB,UAAU,sBAAsB,SAAS,IAAI;AAAA,YAC/D;AAEA,gBAAI,IAAI,OAAO;AACN,qBAAA,EAAE,OAAO,IAAI,MAA6B;AAAA,YAAA;AAG5C,mBAAA,EAAE,MAAM,IAAI,KAAK;AAAA,mBACjB,GAAQ;AACf,kBAAM,QAAQ,EAAE,QAAQ,eAAe,OAAO,EAAE,QAAQ;AACxD,mBAAO,EAAE,MAAM;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,MAAA;AAAA,IACtF;AAAA,EAEJ;AACF,CAAC;AAEK,MAAA,oBAAoB,kBAAkB,iBAAiB;AAAA,EAC3D,WAAW;AAAA;AAAA,IAET,wBAAwB;AAAA,MACtB,MAAM,eACJ,EAAE,aAAa,WAAW,0BAC1B,EAAE,UAAU,kBACZ;AACA,cAAM,cAAc;AAAA,UAClB,aAAa,KAAK;AAAA,YAChB;AAAA,YACA,EAAE,aAAa,UAAU;AAAA,YACzB,CAAC,UAAU;;AACT,oBAAM,eAAe,uBAAuB;AAE5C,oBAAM,iBAAuC,CAAC;AAGxC,oBAAA,aAAa,IAAI,IAAI,YAAY;AAEzB,2DAAA,QAAQ,CAAC,OAAO;;AAE5B,iBAAAC,MAAA,MAAM,gBAAN,gBAAAA,IACI,OAAO,CAAC,MAA0B,EAAE,eAAe,IACpD,QAAQ,CAAC,MAA0B,eAAe,KAAK,CAAC;AAAA,cAAC;AAIxD,0BAAA,gBAAA,mBAAa,QAAQ,CAAC,MAA0B;AACpD,oBAAI,CAAC,WAAW,IAAI,EAAE,UAAU,GAAG;AACjC,iCAAe,KAAK,CAAC;AAAA,gBAAA;AAAA,cACvB;AAIF,oBAAM,cAAc;AAAA,YAAA;AAAA,UACtB;AAAA,QAEJ;AACI,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACN,sBAAY,KAAK;AAAA,QAAA;AAAA,MAErB;AAAA;AAAA,MAEA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,UAAW,CAAA;AAAA,IACrF;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,IAAA;AAAA,EACtF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
1
+ {"version":3,"file":"updateReview.es.js","sources":["../../../../../../src/api/queries/review/updateReview.ts"],"sourcesContent":["import {\n activityFeedApi,\n DeleteProjectActivityApiResponse,\n DeleteProjectActivityApiArg,\n} from '@shared/api/generated'\nimport getReviewApi from './getReview'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\nimport { ReviewableResponse } from './types'\n\nconst injectedEndpoints = getReviewApi.injectEndpoints({\n endpoints: (build) => ({\n deleteReviewable: build.mutation<DeleteProjectActivityApiResponse, DeleteProjectActivityApiArg>(\n {\n queryFn: async (args, { dispatch }) => {\n try {\n // delete reviewable activity\n const res = await dispatch(\n activityFeedApi.endpoints.deleteProjectActivity.initiate(args),\n )\n\n if (res.error) {\n return { error: res.error as FetchBaseQueryError }\n }\n\n return { data: res.data }\n } catch (e: any) {\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n ),\n }),\n})\n\nconst enhancedEndpoints = injectedEndpoints.enhanceEndpoints({\n endpoints: {\n // reviewables list is updated optimistically\n sortVersionReviewables: {\n async onQueryStarted(\n { projectName, versionId, sortReviewablesRequest },\n { dispatch, queryFulfilled },\n ) {\n const patchResult = dispatch(\n getReviewApi.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n const sortingOrder = sortReviewablesRequest.sort\n // Create a new array to store the reordered reviewables\n const newReviewables: ReviewableResponse[] = []\n\n // Create a Set to track activityIds that are in the sortingOrder\n const orderedIds = new Set(sortingOrder)\n // Loop through each id in the sortingOrder array\n sortingOrder?.forEach((id) => {\n // Filter the reviewables that match the current activityId and push them to newReviewables\n draft.reviewables\n ?.filter((r: ReviewableResponse) => r.activityId === id)\n .forEach((r: ReviewableResponse) => newReviewables.push(r))\n })\n\n // Add remaining reviewables that were not in the sortingOrder to the end\n draft.reviewables?.forEach((r: ReviewableResponse) => {\n if (!orderedIds.has(r.activityId)) {\n newReviewables.push(r)\n }\n })\n\n // update draft\n draft.reviewables = newReviewables\n },\n ),\n )\n try {\n await queryFulfilled\n } catch {\n patchResult.undo()\n }\n },\n // viewer list is updated through invalidation\n invalidatesTags: (_result, _error, args) => [{ type: 'viewer', id: args.versionId }],\n },\n updateReviewable: {\n invalidatesTags: (_result, _error, args) => [{ type: 'review', id: args.activityId }],\n },\n },\n})\n\nexport const {\n useDeleteReviewableMutation,\n useSortVersionReviewablesMutation,\n useUpdateReviewableMutation,\n} = enhancedEndpoints\nexport { enhancedEndpoints as reviewablesQueries }\n"],"names":["activityFeedApi","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,oBAAoB,aAAa,gBAAgB;AAAA,EACrD,WAAW,CAAC,WAAW;AAAA,IACrB,kBAAkB,MAAM;AAAA,MACtB;AAAA,QACE,SAAS,OAAO,MAAM,EAAE,eAAe;AACjC,cAAA;AAEF,kBAAM,MAAM,MAAM;AAAA,cAChBA,eAAgB,UAAU,sBAAsB,SAAS,IAAI;AAAA,YAC/D;AAEA,gBAAI,IAAI,OAAO;AACN,qBAAA,EAAE,OAAO,IAAI,MAA6B;AAAA,YAAA;AAG5C,mBAAA,EAAE,MAAM,IAAI,KAAK;AAAA,mBACjB,GAAQ;AACf,kBAAM,QAAQ,EAAE,QAAQ,eAAe,OAAO,EAAE,QAAQ;AACxD,mBAAO,EAAE,MAAM;AAAA,UAAA;AAAA,QAEnB;AAAA,QACA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,MAAA;AAAA,IACtF;AAAA,EAEJ;AACF,CAAC;AAEK,MAAA,oBAAoB,kBAAkB,iBAAiB;AAAA,EAC3D,WAAW;AAAA;AAAA,IAET,wBAAwB;AAAA,MACtB,MAAM,eACJ,EAAE,aAAa,WAAW,0BAC1B,EAAE,UAAU,kBACZ;AACA,cAAM,cAAc;AAAA,UAClB,aAAa,KAAK;AAAA,YAChB;AAAA,YACA,EAAE,aAAa,UAAU;AAAA,YACzB,CAAC,UAAU;;AACT,oBAAM,eAAe,uBAAuB;AAE5C,oBAAM,iBAAuC,CAAC;AAGxC,oBAAA,aAAa,IAAI,IAAI,YAAY;AAEzB,2DAAA,QAAQ,CAAC,OAAO;;AAE5B,iBAAAC,MAAA,MAAM,gBAAN,gBAAAA,IACI,OAAO,CAAC,MAA0B,EAAE,eAAe,IACpD,QAAQ,CAAC,MAA0B,eAAe,KAAK,CAAC;AAAA,cAAC;AAIxD,0BAAA,gBAAA,mBAAa,QAAQ,CAAC,MAA0B;AACpD,oBAAI,CAAC,WAAW,IAAI,EAAE,UAAU,GAAG;AACjC,iCAAe,KAAK,CAAC;AAAA,gBAAA;AAAA,cACvB;AAIF,oBAAM,cAAc;AAAA,YAAA;AAAA,UACtB;AAAA,QAEJ;AACI,YAAA;AACI,gBAAA;AAAA,QAAA,QACA;AACN,sBAAY,KAAK;AAAA,QAAA;AAAA,MAErB;AAAA;AAAA,MAEA,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,UAAW,CAAA;AAAA,IACrF;AAAA,IACA,kBAAkB;AAAA,MAChB,iBAAiB,CAAC,SAAS,QAAQ,SAAS,CAAC,EAAE,MAAM,UAAU,IAAI,KAAK,WAAY,CAAA;AAAA,IAAA;AAAA,EACtF;AAEJ,CAAC;AAEY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
36
36
  require("../../generated/workfiles.cjs.js");
37
37
  require("../../generated/ynputCloud.cjs.js");
38
38
  require("../../generated/grouping.cjs.js");
39
+ require("../../generated/views.cjs.js");
39
40
  const getSystemApi = system.api.enhanceEndpoints({
40
41
  endpoints: {
41
42
  getSiteInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"getSystem.cjs.js","sources":["../../../../../../src/api/queries/system/getSystem.ts"],"sourcesContent":["import { systemApi } from '@shared/api/generated'\n\nconst getSystemApi = systemApi.enhanceEndpoints({\n endpoints: {\n getSiteInfo: {\n providesTags: ['info'],\n },\n listFrontendModules: {\n providesTags: ['info'],\n },\n },\n})\n\nexport const { useGetSiteInfoQuery, useLazyGetSiteInfoQuery, useListFrontendModulesQuery } =\n getSystemApi\nexport { getSystemApi as systemQueries }\n"],"names":["systemApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,eAAeA,WAAU,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,aAAa;AAAA,MACX,cAAc,CAAC,MAAM;AAAA,IACvB;AAAA,IACA,qBAAqB;AAAA,MACnB,cAAc,CAAC,MAAM;AAAA,IAAA;AAAA,EACvB;AAEJ,CAAC;AAEM,MAAM,EAAE,qBAAqB,yBAAyB,gCAC3D;;;;;"}
1
+ {"version":3,"file":"getSystem.cjs.js","sources":["../../../../../../src/api/queries/system/getSystem.ts"],"sourcesContent":["import { systemApi } from '@shared/api/generated'\n\nconst getSystemApi = systemApi.enhanceEndpoints({\n endpoints: {\n getSiteInfo: {\n providesTags: ['info'],\n },\n listFrontendModules: {\n providesTags: ['info'],\n },\n },\n})\n\nexport const { useGetSiteInfoQuery, useLazyGetSiteInfoQuery, useListFrontendModulesQuery } =\n getSystemApi\nexport { getSystemApi as systemQueries }\n"],"names":["systemApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,eAAeA,WAAU,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,aAAa;AAAA,MACX,cAAc,CAAC,MAAM;AAAA,IACvB;AAAA,IACA,qBAAqB;AAAA,MACnB,cAAc,CAAC,MAAM;AAAA,IAAA;AAAA,EACvB;AAEJ,CAAC;AAEM,MAAM,EAAE,qBAAqB,yBAAyB,gCAC3D;;;;;"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  const getSystemApi = injectedRtkApi.enhanceEndpoints({
38
39
  endpoints: {
39
40
  getSiteInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"getSystem.es.js","sources":["../../../../../../src/api/queries/system/getSystem.ts"],"sourcesContent":["import { systemApi } from '@shared/api/generated'\n\nconst getSystemApi = systemApi.enhanceEndpoints({\n endpoints: {\n getSiteInfo: {\n providesTags: ['info'],\n },\n listFrontendModules: {\n providesTags: ['info'],\n },\n },\n})\n\nexport const { useGetSiteInfoQuery, useLazyGetSiteInfoQuery, useListFrontendModulesQuery } =\n getSystemApi\nexport { getSystemApi as systemQueries }\n"],"names":["systemApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,eAAeA,eAAU,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,aAAa;AAAA,MACX,cAAc,CAAC,MAAM;AAAA,IACvB;AAAA,IACA,qBAAqB;AAAA,MACnB,cAAc,CAAC,MAAM;AAAA,IAAA;AAAA,EACvB;AAEJ,CAAC;AAEM,MAAM,EAAE,qBAAqB,yBAAyB,gCAC3D;"}
1
+ {"version":3,"file":"getSystem.es.js","sources":["../../../../../../src/api/queries/system/getSystem.ts"],"sourcesContent":["import { systemApi } from '@shared/api/generated'\n\nconst getSystemApi = systemApi.enhanceEndpoints({\n endpoints: {\n getSiteInfo: {\n providesTags: ['info'],\n },\n listFrontendModules: {\n providesTags: ['info'],\n },\n },\n})\n\nexport const { useGetSiteInfoQuery, useLazyGetSiteInfoQuery, useListFrontendModulesQuery } =\n getSystemApi\nexport { getSystemApi as systemQueries }\n"],"names":["systemApi"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,MAAA,eAAeA,eAAU,iBAAiB;AAAA,EAC9C,WAAW;AAAA,IACT,aAAa;AAAA,MACX,cAAc,CAAC,MAAM;AAAA,IACvB;AAAA,IACA,qBAAqB;AAAA,MACnB,cAAc,CAAC,MAAM;AAAA,IAAA;AAAA,EACvB;AAEJ,CAAC;AAEM,MAAM,EAAE,qBAAqB,yBAAyB,gCAC3D;"}
@@ -36,6 +36,7 @@ require("../../generated/versions.cjs.js");
36
36
  require("../../generated/workfiles.cjs.js");
37
37
  require("../../generated/ynputCloud.cjs.js");
38
38
  require("../../generated/grouping.cjs.js");
39
+ require("../../generated/views.cjs.js");
39
40
  require("../project/getProject.cjs.js");
40
41
  const updateProject = require("../project/updateProject.cjs.js");
41
42
  require("lodash");
@@ -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} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } 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\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 },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\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 handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\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 // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\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 },\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}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\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":["gqlApi","projects","PubSub","projectQueries"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,kBAAkB,CAAC,aACvB,SAAS,OAAO,MACb,IAAI,CAAC,EAAE,KAAA,MAAW,IAAI,EACtB,KAAK,CAAC,GAAG,MAAM;AACR,QAAA,SAAS,EAAE,SAAS,EAAE;AACtB,QAAA,SAAS,EAAE,SAAS,EAAE;AACrB,SAAA,OAAO,cAAc,MAAM;AACpC,CAAC;AAEL,MAAM,oBAAoB,CAAC,QAAuC,QAAa,UAC7E,iCAAQ,UACJ;AAAA,EACE,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,EACjC,GAAG,OAAO,QAAQ,CAAC,EAAE,IAAI,aAAa,gBAAgB;AAAA,IACpD,EAAE,MAAM,QAAQ,GAAG;AAAA,IACnB,EAAE,MAAM,UAAU,IAAI,aAAa,YAAY;AAAA,IAC/C,GAAG,UAAU,IAAI,CAAC,cAAc,EAAE,MAAM,UAAU,IAAI,UAAU,SAAA,EAAW;AAAA,IAC3E,GAAG,UAAU,IAAI,CAAC,cAAc;AAAA,MAC9B,MAAM;AAAA,MACN,IAAI,UAAU,WAAW,cAAc;AAAA,IAAA,EACvC;AAAA,IACF,EAAE,MAAM,UAAU,IAAI,KAAK,UAAU,IAAI,EAAE;AAAA,EAC5C,CAAA;AACH,IACA,CAAC,EAAE,MAAM,cAAc,IAAI,QAAQ;AAElC,MAAM,iBAAiB,OAC5B;AAAA,EACE,WAAW,CAAC;AAAA,EACZ,UAAU,CAAA;AACZ,GAIA,aACG;AACC,MAAA;AAEF,UAAM,WAAW,MAAM;AAAA,MACrB,4BAA4B,UAAU,eAAe;AAAA,QACnD,EAAE,UAAU,QAAQ;AAAA,QACpB,EAAE,cAAc,KAAK;AAAA,MAAA;AAAA,IAEzB;AAEA,QAAI,SAAS,WAAW,cAAc,CAAC,SAAS,MAAM;AAC5C,cAAA,MAAM,kBAAkB,OAAO;AACvC,YAAM,IAAI,MAAM,kBAAkB,QAAQ,KAAK,IAAI,CAAC,EAAE;AAAA,IAAA;AAGxD,QAAI,SAAS,WAAW,YAAa,QAAO,CAAC;AAE7C,WAAO,SAAS;AAAA,WACT,OAAO;AACd,YAAQ,MAAM,KAAK;AACnB,WAAO,CAAC;AAAA,EAAA;AAEZ;AAEA,MAAM,8BAA8BA,YAAO,iBAA+C;AAAA,EACxF,WAAW;AAAA,IACT,WAAW;AAAA,MACT,mBAAmB;AAAA,MACnB,cAAc;AAAA,MACd,MAAM,kBACJ,EAAE,YAAY,IAAI,WAAW,CAAG,EAAA,IAAI,CACpC,GAAA,EAAE,kBAAkB,iBAAiB,mBAAmB,YACxD;AACI,YAAA;AACA,YAAA;AAEI,gBAAA;AAEN,gBAAM,kBAAkB,OAAO;AAAA,YAC7B,UAAAC,YAAW,CAAC;AAAA,YACZ,UAAU,CAAA;AAAA,UAAC,MAIP;AACE,kBAAA,QAAQ,MAAM,eAAe,EAAE,UAAAA,WAAU,WAAW,QAAQ;AAGlE,kBAAM,wBAAwB,MAAM;AAAA,cAAO,CAAC,SAC1C,KAAK,UAAU,KAAK,CAAC,aAAa,uCAAW,SAAS,SAAS;AAAA,YACjE;AAEA,kBAAM,2BAA2B,MAAM;AAAA,cACrC,CAAC,SAAS,CAAC,KAAK,UAAU,KAAK,CAAC,aAAa,uCAAW,SAAS,SAAS;AAAA,YAC5E;AAGA,6BAAiB,CAAC,UAAU;AAEJ,oCAAA,QAAQ,CAAC,SAAS;AAChC,sBAAA,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AACrD,oBAAI,UAAU,IAAI;AAChB,wBAAM,KAAK,IAAI;AAAA,gBAAA,OACV;AAEL,wBAAM,KAAK,IAAI;AAAA,gBAAA;AAAA,cACjB,CACD;AAEwB,uCAAA,QAAQ,CAAC,SAAS;AACnC,sBAAA,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AACrD,oBAAI,UAAU,IAAI;AACV,wBAAA,OAAO,OAAO,CAAC;AAAA,gBAAA;AAAA,cACvB,CACD;AAAA,YAAA,CACF;AAAA,UACH;AAEM,gBAAA,eAAe,OAAO,QAAgB,YAAiB;AAC3D,kBAAM,UAAU,QAAQ;AAEpB,gBAAA,EAAC,qCAAU,SAAS,UAAiB,QAAA,QAAQ,IAAI,sBAAsB;AAErE,kBAAA,WAAW,QAAQ,QAAQ;AACjC,gBAAI,CAAC,SAAiB,QAAA,QAAQ,IAAI,oBAAoB;AAGtC,4BAAA;AAAA,cACd,SAAS,CAAC,QAAQ;AAAA,cAClB,UAAU,CAAC,OAAO;AAAA,YAAA,CACnB;AAAA,UACH;AAGQ,kBAAAC,OAAO,UAAU,eAAe,YAAY;AAAA,iBAC7C,OAAO;AACd,kBAAQ,MAAM,KAAK;AAAA,QAAA;AAKf,cAAA;AAENA,eAAO,YAAY,KAAK;AAAA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAa5B;AAAA;AAAA;AAAA,IAGA,gBAAgB;AAAA,MACd,mBAAmB;AAAA,MACnB,cAAc;AAAA,IAChB;AAAA;AAAA,IAEA,uBAAuB;AAAA,MACrB,mBAAmB,CAAC,UAAsC,OAAO,EAAE,SAAa,IAAA,CAC9E,MAAA,SAAS,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM,WAAW;AACrC,cAAA,eAAe,wBAAwB,KAAK,YAAY;AAE9D,cAAM,SAAS,CAAC,KAAK,aAAa,CAAC,KAAK;AAExC,YAAI,iBAAiB,SAAS,sBAAsB,YAAY,IAAI;AACpE,YAAI,OAAO,mBAAmB,YAAY,CAAC,iCAAiC,CAAC;AAGvE,cAAA,YAAY,cAAc,KAAK,IAAI;AAElC,eAAA;AAAA,UACL,GAAG;AAAA,UACH;AAAA,UACA,UAAU;AAAA,UACV;AAAA,QACF;AAAA,MAAA,CACD;AAAA,MACH,cAAc,CAAC,YACb,iCAAQ,UACJ;AAAA,QACE,EAAE,MAAM,QAAQ,IAAI,OAAO;AAAA,QAC3B,GAAG,OAAO,IAAI,CAAC,EAAE,KAAA,OAAY,EAAE,MAAM,QAAQ,IAAI,OAAO;AAAA,UAE1D,CAAC,EAAE,MAAM,QAAQ,IAAI,OAAQ,CAAA;AAAA,IAAA;AAAA,EACrC;AAEJ,CAAC;AAEY,MAAA,EAAE,mBAAmB,kCAAkC;AAQ9D,MAAA,2BAA2B,4BAA4B,gBAAgB;AAAA,EAC3E,WAAW,CAAC,WAAW;AAAA,IACrB,iBAAiB,MAAM,MAAsD;AAAA,MAC3E,MAAM,QAAQ,EAAE,WAAW,CAAG,EAAA,GAAG,EAAE,SAAA,GAAY;AACzC,YAAA;AAEF,gBAAM,cAAwD,CAAC;AAC/D,qBAAW,WAAW,UAAU;AAG9B,kBAAM,WAAW,MAAM;AAAA,cACrBC,6BAAe,UAAU,WAAW;AAAA,gBAClC,EAAE,aAAa,QAAQ;AAAA,gBACvB,EAAE,cAAc,KAAK;AAAA,cAAA;AAAA,YAEzB;AAEI,gBAAA,SAAS,WAAW,YAAY;AAC5B,oBAAA;AAAA,YAAA;AAEI,wBAAA,OAAO,IAAI,SAAS;AAAA,UAAA;AAGlC,iBAAO,EAAE,MAAM,aAAa,MAAM,QAAW,OAAO,OAAU;AAAA,iBACvD,OAAY;AACnB,kBAAQ,MAAM,KAAK;AACnB,iBAAO,EAAE,OAAO,MAAM,QAAW,MAAM,OAAU;AAAA,QAAA;AAAA,MAErD;AAAA,MACA,cAAc,CAAC,MAAM,QAAQ,EAAE,SAC7B,MAAA,SAAS,IAAI,CAAC,iBAAiB,EAAE,MAAM,WAAW,IAAI,cAAc;AAAA,IACvE,CAAA;AAAA,EACH;AACF,CAAC;AAEY,MAAA,EAAE,4BAA4B;;;;;;"}
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} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } 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\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 },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\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 handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\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 // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\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 },\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}\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModel | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModel | undefined> = {}\n for (const project of projects) {\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const response = await dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName: project },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected') {\n throw 'No projects found'\n }\n projectInfo[project] = response.data\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":["gqlApi","projects","PubSub","projectQueries"],"mappings":"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"}
@@ -34,6 +34,7 @@ import "../../generated/versions.es.js";
34
34
  import "../../generated/workfiles.es.js";
35
35
  import "../../generated/ynputCloud.es.js";
36
36
  import "../../generated/grouping.es.js";
37
+ import "../../generated/views.es.js";
37
38
  import "../project/getProject.es.js";
38
39
  import { projectQueries as projectApi } from "../project/updateProject.es.js";
39
40
  import "lodash";