@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
@@ -35,6 +35,7 @@ import "../../api/generated/versions.es.js";
35
35
  import "../../api/generated/workfiles.es.js";
36
36
  import "../../api/generated/ynputCloud.es.js";
37
37
  import "../../api/generated/grouping.es.js";
38
+ import "../../api/generated/views.es.js";
38
39
  import "../../api/queries/actions/getActions.es.js";
39
40
  import "../../api/queries/activities/getActivities.es.js";
40
41
  import "../../api/queries/activities/updateActivities.es.js";
@@ -68,6 +69,9 @@ import "../../api/queries/permissions/getPermissions.es.js";
68
69
  import "../../api/queries/grouping/getGrouping.es.js";
69
70
  import "../../api/queries/versions/updateVersions.es.js";
70
71
  import "../../api/queries/products/createProduct.es.js";
72
+ import "../../api/queries/cloud/cloud.es.js";
73
+ import "../../api/queries/views/getViews.es.js";
74
+ import "../../api/queries/views/updateViews.es.js";
71
75
  import { Dialog, InputText, Toolbar, Button, SaveButton } from "@ynput/ayon-react-components";
72
76
  import { useRef, useState, useEffect } from "react";
73
77
  import { toast } from "react-toastify";
@@ -1 +1 @@
1
- {"version":3,"file":"EditReviewableDialog.es.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAG7C,YAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAI,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEV,YAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,YAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQA,kCAAAA,IAAC,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,+CACG,SACC,EAAA,UAAA;AAAA,QAAAA,sCAAC,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACA,kCAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"EditReviewableDialog.es.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAG7C,YAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAI,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEV,YAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,YAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQA,kCAAAA,IAAC,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,+CACG,SACC,EAAA,UAAA;AAAA,QAAAA,sCAAC,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACA,kCAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -37,6 +37,7 @@ require("../../api/generated/versions.cjs.js");
37
37
  require("../../api/generated/workfiles.cjs.js");
38
38
  require("../../api/generated/ynputCloud.cjs.js");
39
39
  require("../../api/generated/grouping.cjs.js");
40
+ require("../../api/generated/views.cjs.js");
40
41
  require("../../api/queries/actions/getActions.cjs.js");
41
42
  require("../../api/queries/activities/getActivities.cjs.js");
42
43
  require("../../api/queries/activities/updateActivities.cjs.js");
@@ -70,6 +71,9 @@ require("../../api/queries/permissions/getPermissions.cjs.js");
70
71
  require("../../api/queries/grouping/getGrouping.cjs.js");
71
72
  require("../../api/queries/versions/updateVersions.cjs.js");
72
73
  require("../../api/queries/products/createProduct.cjs.js");
74
+ require("../../api/queries/cloud/cloud.cjs.js");
75
+ require("../../api/queries/views/getViews.cjs.js");
76
+ require("../../api/queries/views/updateViews.cjs.js");
73
77
  const core = require("@dnd-kit/core");
74
78
  const sortable = require("@dnd-kit/sortable");
75
79
  require("@ynput/ayon-react-components");
@@ -181,6 +185,7 @@ require("../ProjectTableSettings/ProjectTableSettings.cjs.js");
181
185
  require("../Powerpack/PowerpackButton.cjs.js");
182
186
  require("../Powerpack/PricingLink.cjs.js");
183
187
  require("../Powerpack/PowerpackDialog.styled.cjs.js");
188
+ require("../Powerpack/CTAButton.cjs.js");
184
189
  require("../SettingsPanel/SettingsPanel.cjs.js");
185
190
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
186
191
  require("../AttributeEditor/components/MinMaxField.cjs.js");
@@ -189,6 +194,11 @@ require("../SearchFilter/filterDates.cjs.js");
189
194
  require("../Badge/Badge.cjs.js");
190
195
  require("../VersionUploader/components/UploadVersionDialog.cjs.js");
191
196
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
197
+ require("../Feedback/FeedbackContext.cjs.js");
198
+ require("../Feedback/SupportBubble.cjs.js");
199
+ require("../Views/context/ViewsContext.cjs.js");
200
+ require("../Views/Views.styled.cjs.js");
201
+ require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
192
202
  const ReviewablesList = ({
193
203
  projectName,
194
204
  versionId,
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesList.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer, dispatch } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload\n projectName={projectName}\n versionId={versionId}\n productId={productId}\n taskId={viewer?.taskId}\n folderId={viewer?.folderId}\n dispatch={dispatch}\n >\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["useDetailsPanelContext","useGetReviewablesForVersionQuery","useHasTranscoderQuery","useState","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","reviewable","getGroupedReviewables","useSortVersionReviewablesMutation","arrayMove","toast","useDeleteReviewableMutation","confirmDelete","useCreateContextMenu","jsxs","Fragment","jsx","ReviewableUpload","Styled.LoadingCard","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","ReviewableCard","ReviewableProgressCard","_a"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesList.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer, dispatch } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload\n projectName={projectName}\n versionId={versionId}\n productId={productId}\n taskId={viewer?.taskId}\n folderId={viewer?.folderId}\n dispatch={dispatch}\n >\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["useDetailsPanelContext","useGetReviewablesForVersionQuery","useHasTranscoderQuery","useState","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","reviewable","getGroupedReviewables","useSortVersionReviewablesMutation","arrayMove","toast","useDeleteReviewableMutation","confirmDelete","useCreateContextMenu","jsxs","Fragment","jsx","ReviewableUpload","Styled.LoadingCard","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","ReviewableCard","ReviewableProgressCard","_a"],"mappings":"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"}
@@ -36,6 +36,7 @@ import "../../api/generated/versions.es.js";
36
36
  import "../../api/generated/workfiles.es.js";
37
37
  import "../../api/generated/ynputCloud.es.js";
38
38
  import "../../api/generated/grouping.es.js";
39
+ import "../../api/generated/views.es.js";
39
40
  import "../../api/queries/actions/getActions.es.js";
40
41
  import "../../api/queries/activities/getActivities.es.js";
41
42
  import "../../api/queries/activities/updateActivities.es.js";
@@ -69,6 +70,9 @@ import "../../api/queries/permissions/getPermissions.es.js";
69
70
  import "../../api/queries/grouping/getGrouping.es.js";
70
71
  import "../../api/queries/versions/updateVersions.es.js";
71
72
  import "../../api/queries/products/createProduct.es.js";
73
+ import "../../api/queries/cloud/cloud.es.js";
74
+ import "../../api/queries/views/getViews.es.js";
75
+ import "../../api/queries/views/updateViews.es.js";
72
76
  import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter, DragOverlay } from "@dnd-kit/core";
73
77
  import { sortableKeyboardCoordinates, SortableContext, verticalListSortingStrategy, arrayMove } from "@dnd-kit/sortable";
74
78
  import "@ynput/ayon-react-components";
@@ -180,6 +184,7 @@ import "../ProjectTableSettings/ProjectTableSettings.es.js";
180
184
  import "../Powerpack/PowerpackButton.es.js";
181
185
  import "../Powerpack/PricingLink.es.js";
182
186
  import "../Powerpack/PowerpackDialog.styled.es.js";
187
+ import "../Powerpack/CTAButton.es.js";
183
188
  import "../SettingsPanel/SettingsPanel.es.js";
184
189
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
185
190
  import "../AttributeEditor/components/MinMaxField.es.js";
@@ -188,6 +193,11 @@ import "../SearchFilter/filterDates.es.js";
188
193
  import "../Badge/Badge.es.js";
189
194
  import "../VersionUploader/components/UploadVersionDialog.es.js";
190
195
  import "../VersionUploader/context/VersionUploadContext.es.js";
196
+ import "../Feedback/FeedbackContext.es.js";
197
+ import "../Feedback/SupportBubble.es.js";
198
+ import "../Views/context/ViewsContext.es.js";
199
+ import "../Views/Views.styled.es.js";
200
+ import "../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
191
201
  const ReviewablesList = ({
192
202
  projectName,
193
203
  versionId,
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesList.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer, dispatch } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload\n projectName={projectName}\n versionId={versionId}\n productId={productId}\n taskId={viewer?.taskId}\n folderId={viewer?.folderId}\n dispatch={dispatch}\n >\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["reviewable","jsxs","Fragment","jsx","Styled.LoadingCard","_a"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesList.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer, dispatch } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload\n projectName={projectName}\n versionId={versionId}\n productId={productId}\n taskId={viewer?.taskId}\n folderId={viewer?.folderId}\n dispatch={dispatch}\n >\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["reviewable","jsxs","Fragment","jsx","Styled.LoadingCard","_a"],"mappings":"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"}
@@ -44,6 +44,7 @@ require("../../api/generated/versions.cjs.js");
44
44
  require("../../api/generated/workfiles.cjs.js");
45
45
  require("../../api/generated/ynputCloud.cjs.js");
46
46
  require("../../api/generated/grouping.cjs.js");
47
+ require("../../api/generated/views.cjs.js");
47
48
  require("../../api/queries/actions/getActions.cjs.js");
48
49
  require("../../api/queries/activities/getActivities.cjs.js");
49
50
  require("../../api/queries/activities/updateActivities.cjs.js");
@@ -77,6 +78,9 @@ require("../../api/queries/permissions/getPermissions.cjs.js");
77
78
  require("../../api/queries/grouping/getGrouping.cjs.js");
78
79
  require("../../api/queries/versions/updateVersions.cjs.js");
79
80
  require("../../api/queries/products/createProduct.cjs.js");
81
+ require("../../api/queries/cloud/cloud.cjs.js");
82
+ require("../../api/queries/views/getViews.cjs.js");
83
+ require("../../api/queries/views/updateViews.cjs.js");
80
84
  require("@dnd-kit/core");
81
85
  require("@dnd-kit/sortable");
82
86
  require("./ReviewablesList.styled.cjs.js");
@@ -178,6 +182,7 @@ require("../ProjectTableSettings/ProjectTableSettings.cjs.js");
178
182
  require("../Powerpack/PowerpackButton.cjs.js");
179
183
  require("../Powerpack/PricingLink.cjs.js");
180
184
  require("../Powerpack/PowerpackDialog.styled.cjs.js");
185
+ require("../Powerpack/CTAButton.cjs.js");
181
186
  require("../SettingsPanel/SettingsPanel.cjs.js");
182
187
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
183
188
  require("../AttributeEditor/components/MinMaxField.cjs.js");
@@ -186,6 +191,11 @@ require("../SearchFilter/filterDates.cjs.js");
186
191
  require("../Badge/Badge.cjs.js");
187
192
  require("../VersionUploader/components/UploadVersionDialog.cjs.js");
188
193
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
194
+ require("../Feedback/FeedbackContext.cjs.js");
195
+ require("../Feedback/SupportBubble.cjs.js");
196
+ require("../Views/context/ViewsContext.cjs.js");
197
+ require("../Views/Views.styled.cjs.js");
198
+ require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
189
199
  const ReviewableUpload = ({
190
200
  projectName,
191
201
  taskId,
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["useState","useReviewablesUpload","useEffect","jsxs","Fragment","jsx","Styled.ReviewablesList","ReviewableProgressCard","Styled.Upload","Styled.Dropzone","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["useState","useReviewablesUpload","useEffect","jsxs","Fragment","jsx","Styled.ReviewablesList","ReviewableProgressCard","Styled.Upload","Styled.Dropzone","Icon"],"mappings":"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"}
@@ -42,6 +42,7 @@ import "../../api/generated/versions.es.js";
42
42
  import "../../api/generated/workfiles.es.js";
43
43
  import "../../api/generated/ynputCloud.es.js";
44
44
  import "../../api/generated/grouping.es.js";
45
+ import "../../api/generated/views.es.js";
45
46
  import "../../api/queries/actions/getActions.es.js";
46
47
  import "../../api/queries/activities/getActivities.es.js";
47
48
  import "../../api/queries/activities/updateActivities.es.js";
@@ -75,6 +76,9 @@ import "../../api/queries/permissions/getPermissions.es.js";
75
76
  import "../../api/queries/grouping/getGrouping.es.js";
76
77
  import "../../api/queries/versions/updateVersions.es.js";
77
78
  import "../../api/queries/products/createProduct.es.js";
79
+ import "../../api/queries/cloud/cloud.es.js";
80
+ import "../../api/queries/views/getViews.es.js";
81
+ import "../../api/queries/views/updateViews.es.js";
78
82
  import "@dnd-kit/core";
79
83
  import "@dnd-kit/sortable";
80
84
  import "./ReviewablesList.styled.es.js";
@@ -176,6 +180,7 @@ import "../ProjectTableSettings/ProjectTableSettings.es.js";
176
180
  import "../Powerpack/PowerpackButton.es.js";
177
181
  import "../Powerpack/PricingLink.es.js";
178
182
  import "../Powerpack/PowerpackDialog.styled.es.js";
183
+ import "../Powerpack/CTAButton.es.js";
179
184
  import "../SettingsPanel/SettingsPanel.es.js";
180
185
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
181
186
  import "../AttributeEditor/components/MinMaxField.es.js";
@@ -184,6 +189,11 @@ import "../SearchFilter/filterDates.es.js";
184
189
  import "../Badge/Badge.es.js";
185
190
  import "../VersionUploader/components/UploadVersionDialog.es.js";
186
191
  import "../VersionUploader/context/VersionUploadContext.es.js";
192
+ import "../Feedback/FeedbackContext.es.js";
193
+ import "../Feedback/SupportBubble.es.js";
194
+ import "../Views/context/ViewsContext.es.js";
195
+ import "../Views/Views.styled.es.js";
196
+ import "../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
187
197
  const ReviewableUpload = ({
188
198
  projectName,
189
199
  taskId,
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["jsxs","Fragment","jsx","Styled.ReviewablesList","Styled.Upload","Styled.Dropzone"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["jsxs","Fragment","jsx","Styled.ReviewablesList","Styled.Upload","Styled.Dropzone"],"mappings":"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"}
@@ -44,6 +44,7 @@ require("../../api/generated/versions.cjs.js");
44
44
  require("../../api/generated/workfiles.cjs.js");
45
45
  require("../../api/generated/ynputCloud.cjs.js");
46
46
  require("../../api/generated/grouping.cjs.js");
47
+ require("../../api/generated/views.cjs.js");
47
48
  require("../../api/queries/actions/getActions.cjs.js");
48
49
  require("../../api/queries/activities/getActivities.cjs.js");
49
50
  require("../../api/queries/activities/updateActivities.cjs.js");
@@ -77,6 +78,9 @@ require("../../api/queries/permissions/getPermissions.cjs.js");
77
78
  require("../../api/queries/grouping/getGrouping.cjs.js");
78
79
  require("../../api/queries/versions/updateVersions.cjs.js");
79
80
  require("../../api/queries/products/createProduct.cjs.js");
81
+ require("../../api/queries/cloud/cloud.cjs.js");
82
+ require("../../api/queries/views/getViews.cjs.js");
83
+ require("../../api/queries/views/updateViews.cjs.js");
80
84
  require("react");
81
85
  require("@dnd-kit/core");
82
86
  require("./ReviewablesList.styled.cjs.js");
@@ -177,6 +181,7 @@ require("../ProjectTableSettings/ProjectTableSettings.cjs.js");
177
181
  require("../Powerpack/PowerpackButton.cjs.js");
178
182
  require("../Powerpack/PricingLink.cjs.js");
179
183
  require("../Powerpack/PowerpackDialog.styled.cjs.js");
184
+ require("../Powerpack/CTAButton.cjs.js");
180
185
  require("../SettingsPanel/SettingsPanel.cjs.js");
181
186
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
182
187
  require("../AttributeEditor/components/MinMaxField.cjs.js");
@@ -185,6 +190,11 @@ require("../SearchFilter/filterDates.cjs.js");
185
190
  require("../Badge/Badge.cjs.js");
186
191
  require("../VersionUploader/components/UploadVersionDialog.cjs.js");
187
192
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
193
+ require("../Feedback/FeedbackContext.cjs.js");
194
+ require("../Feedback/SupportBubble.cjs.js");
195
+ require("../Views/context/ViewsContext.cjs.js");
196
+ require("../Views/Views.styled.cjs.js");
197
+ require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
188
198
  const SortableReviewableCard = ({ ...props }) => {
189
199
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = sortable.useSortable({
190
200
  id: props.fileId,
@@ -1 +1 @@
1
- {"version":3,"file":"SortableReviewableCard.cjs.js","sources":["../../../../../src/components/ReviewablesList/SortableReviewableCard.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { ReviewableCardProps, ReviewableCard } from '@shared/components'\n\ntype SortableReviewableCardProps = ReviewableCardProps\n\nconst SortableReviewableCard: FC<SortableReviewableCardProps> = ({ ...props }) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.fileId,\n animateLayoutChanges: () => false,\n })\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div ref={setNodeRef} style={style}>\n <ReviewableCard\n isDropPlaceholder={isDragging}\n dragProps={{ ...attributes, ...listeners }}\n disabled={props.sortingDisabled}\n {...props}\n />\n </div>\n )\n}\n\nexport default SortableReviewableCard\n"],"names":["useSortable","CSS","jsx","ReviewableCard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,yBAA0D,CAAC,EAAE,GAAG,YAAY;AAC1E,QAAA,EAAE,YAAY,WAAW,YAAY,WAAW,YAAY,eAAeA,qBAAY;AAAA,IAC3F,IAAI,MAAM;AAAA,IACV,sBAAsB,MAAM;AAAA,EAAA,CAC7B;AAED,QAAM,QAAQ;AAAA,IACZ,WAAWC,cAAA,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EACF;AAEA,SACGC,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,KAAK,YAAY,OACpB,UAAAA,2BAAA,kBAAA;AAAA,IAACC,eAAA;AAAA,IAAA;AAAA,MACC,mBAAmB;AAAA,MACnB,WAAW,EAAE,GAAG,YAAY,GAAG,UAAU;AAAA,MACzC,UAAU,MAAM;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;;"}
1
+ {"version":3,"file":"SortableReviewableCard.cjs.js","sources":["../../../../../src/components/ReviewablesList/SortableReviewableCard.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { ReviewableCardProps, ReviewableCard } from '@shared/components'\n\ntype SortableReviewableCardProps = ReviewableCardProps\n\nconst SortableReviewableCard: FC<SortableReviewableCardProps> = ({ ...props }) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.fileId,\n animateLayoutChanges: () => false,\n })\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div ref={setNodeRef} style={style}>\n <ReviewableCard\n isDropPlaceholder={isDragging}\n dragProps={{ ...attributes, ...listeners }}\n disabled={props.sortingDisabled}\n {...props}\n />\n </div>\n )\n}\n\nexport default SortableReviewableCard\n"],"names":["useSortable","CSS","jsx","ReviewableCard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,yBAA0D,CAAC,EAAE,GAAG,YAAY;AAC1E,QAAA,EAAE,YAAY,WAAW,YAAY,WAAW,YAAY,eAAeA,qBAAY;AAAA,IAC3F,IAAI,MAAM;AAAA,IACV,sBAAsB,MAAM;AAAA,EAAA,CAC7B;AAED,QAAM,QAAQ;AAAA,IACZ,WAAWC,cAAA,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EACF;AAEA,SACGC,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,KAAK,YAAY,OACpB,UAAAA,2BAAA,kBAAA;AAAA,IAACC,eAAA;AAAA,IAAA;AAAA,MACC,mBAAmB;AAAA,MACnB,WAAW,EAAE,GAAG,YAAY,GAAG,UAAU;AAAA,MACzC,UAAU,MAAM;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;;"}
@@ -43,6 +43,7 @@ import "../../api/generated/versions.es.js";
43
43
  import "../../api/generated/workfiles.es.js";
44
44
  import "../../api/generated/ynputCloud.es.js";
45
45
  import "../../api/generated/grouping.es.js";
46
+ import "../../api/generated/views.es.js";
46
47
  import "../../api/queries/actions/getActions.es.js";
47
48
  import "../../api/queries/activities/getActivities.es.js";
48
49
  import "../../api/queries/activities/updateActivities.es.js";
@@ -76,6 +77,9 @@ import "../../api/queries/permissions/getPermissions.es.js";
76
77
  import "../../api/queries/grouping/getGrouping.es.js";
77
78
  import "../../api/queries/versions/updateVersions.es.js";
78
79
  import "../../api/queries/products/createProduct.es.js";
80
+ import "../../api/queries/cloud/cloud.es.js";
81
+ import "../../api/queries/views/getViews.es.js";
82
+ import "../../api/queries/views/updateViews.es.js";
79
83
  import "react";
80
84
  import "@dnd-kit/core";
81
85
  import "./ReviewablesList.styled.es.js";
@@ -176,6 +180,7 @@ import "../ProjectTableSettings/ProjectTableSettings.es.js";
176
180
  import "../Powerpack/PowerpackButton.es.js";
177
181
  import "../Powerpack/PricingLink.es.js";
178
182
  import "../Powerpack/PowerpackDialog.styled.es.js";
183
+ import "../Powerpack/CTAButton.es.js";
179
184
  import "../SettingsPanel/SettingsPanel.es.js";
180
185
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
181
186
  import "../AttributeEditor/components/MinMaxField.es.js";
@@ -184,6 +189,11 @@ import "../SearchFilter/filterDates.es.js";
184
189
  import "../Badge/Badge.es.js";
185
190
  import "../VersionUploader/components/UploadVersionDialog.es.js";
186
191
  import "../VersionUploader/context/VersionUploadContext.es.js";
192
+ import "../Feedback/FeedbackContext.es.js";
193
+ import "../Feedback/SupportBubble.es.js";
194
+ import "../Views/context/ViewsContext.es.js";
195
+ import "../Views/Views.styled.es.js";
196
+ import "../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
187
197
  const SortableReviewableCard = ({ ...props }) => {
188
198
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
189
199
  id: props.fileId,
@@ -1 +1 @@
1
- {"version":3,"file":"SortableReviewableCard.es.js","sources":["../../../../../src/components/ReviewablesList/SortableReviewableCard.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { ReviewableCardProps, ReviewableCard } from '@shared/components'\n\ntype SortableReviewableCardProps = ReviewableCardProps\n\nconst SortableReviewableCard: FC<SortableReviewableCardProps> = ({ ...props }) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.fileId,\n animateLayoutChanges: () => false,\n })\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div ref={setNodeRef} style={style}>\n <ReviewableCard\n isDropPlaceholder={isDragging}\n dragProps={{ ...attributes, ...listeners }}\n disabled={props.sortingDisabled}\n {...props}\n />\n </div>\n )\n}\n\nexport default SortableReviewableCard\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,yBAA0D,CAAC,EAAE,GAAG,YAAY;AAC1E,QAAA,EAAE,YAAY,WAAW,YAAY,WAAW,YAAY,eAAe,YAAY;AAAA,IAC3F,IAAI,MAAM;AAAA,IACV,sBAAsB,MAAM;AAAA,EAAA,CAC7B;AAED,QAAM,QAAQ;AAAA,IACZ,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EACF;AAEA,SACGA,kCAAAA,IAAA,OAAA,EAAI,KAAK,YAAY,OACpB,UAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAmB;AAAA,MACnB,WAAW,EAAE,GAAG,YAAY,GAAG,UAAU;AAAA,MACzC,UAAU,MAAM;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
1
+ {"version":3,"file":"SortableReviewableCard.es.js","sources":["../../../../../src/components/ReviewablesList/SortableReviewableCard.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { ReviewableCardProps, ReviewableCard } from '@shared/components'\n\ntype SortableReviewableCardProps = ReviewableCardProps\n\nconst SortableReviewableCard: FC<SortableReviewableCardProps> = ({ ...props }) => {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props.fileId,\n animateLayoutChanges: () => false,\n })\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n\n return (\n <div ref={setNodeRef} style={style}>\n <ReviewableCard\n isDropPlaceholder={isDragging}\n dragProps={{ ...attributes, ...listeners }}\n disabled={props.sortingDisabled}\n {...props}\n />\n </div>\n )\n}\n\nexport default SortableReviewableCard\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,yBAA0D,CAAC,EAAE,GAAG,YAAY;AAC1E,QAAA,EAAE,YAAY,WAAW,YAAY,WAAW,YAAY,eAAe,YAAY;AAAA,IAC3F,IAAI,MAAM;AAAA,IACV,sBAAsB,MAAM;AAAA,EAAA,CAC7B;AAED,QAAM,QAAQ;AAAA,IACZ,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EACF;AAEA,SACGA,kCAAAA,IAAA,OAAA,EAAI,KAAK,YAAY,OACpB,UAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAmB;AAAA,MACnB,WAAW,EAAE,GAAG,YAAY,GAAG,UAAU;AAAA,MACzC,UAAU,MAAM;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
@@ -39,6 +39,7 @@ require("../../api/generated/versions.cjs.js");
39
39
  require("../../api/generated/workfiles.cjs.js");
40
40
  require("../../api/generated/ynputCloud.cjs.js");
41
41
  require("../../api/generated/grouping.cjs.js");
42
+ require("../../api/generated/views.cjs.js");
42
43
  require("../../api/queries/actions/getActions.cjs.js");
43
44
  require("../../api/queries/activities/getActivities.cjs.js");
44
45
  require("../../api/queries/activities/updateActivities.cjs.js");
@@ -72,6 +73,9 @@ require("../../api/queries/permissions/getPermissions.cjs.js");
72
73
  require("../../api/queries/grouping/getGrouping.cjs.js");
73
74
  require("../../api/queries/versions/updateVersions.cjs.js");
74
75
  require("../../api/queries/products/createProduct.cjs.js");
76
+ require("../../api/queries/cloud/cloud.cjs.js");
77
+ require("../../api/queries/views/getViews.cjs.js");
78
+ require("../../api/queries/views/updateViews.cjs.js");
75
79
  const useReviewablesUpload = ({
76
80
  projectName,
77
81
  versionId,