@ynput/ayon-frontend-shared 0.2.20 → 0.2.21

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 (381) hide show
  1. package/dist/DetailsPanel.cjs.js +4 -3
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +4 -3
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +2 -2
  6. package/dist/ProjectTreeTable.es.js +2 -2
  7. package/dist/Views.cjs.js +41 -0
  8. package/dist/Views.cjs.js.map +1 -0
  9. package/dist/Views.es.js +41 -0
  10. package/dist/Views.es.js.map +1 -0
  11. package/dist/_virtual/index.cjs5.js +5 -3
  12. package/dist/_virtual/index.cjs5.js.map +1 -1
  13. package/dist/_virtual/index.cjs6.js +3 -5
  14. package/dist/_virtual/index.cjs6.js.map +1 -1
  15. package/dist/_virtual/index.es5.js +5 -2
  16. package/dist/_virtual/index.es5.js.map +1 -1
  17. package/dist/_virtual/index.es6.js +2 -5
  18. package/dist/_virtual/index.es6.js.map +1 -1
  19. package/dist/api.cjs.js +6 -1
  20. package/dist/api.cjs.js.map +1 -1
  21. package/dist/api.es.js +8 -3
  22. package/dist/components.cjs.js +0 -17
  23. package/dist/components.cjs.js.map +1 -1
  24. package/dist/components.es.js +1 -18
  25. package/dist/components.es.js.map +1 -1
  26. package/dist/index.cjs.js +4 -3
  27. package/dist/index.cjs.js.map +1 -1
  28. package/dist/index.es.js +4 -3
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  31. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  32. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  33. package/dist/node_modules/remove-accents/index.es.js +1 -1
  34. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js +3 -1
  35. package/dist/shared/node_modules/uuid/dist/esm-browser/native.cjs.js.map +1 -1
  36. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js +3 -1
  37. package/dist/shared/node_modules/uuid/dist/esm-browser/native.es.js.map +1 -1
  38. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js +2 -2
  39. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.cjs.js.map +1 -1
  40. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js +2 -2
  41. package/dist/shared/node_modules/uuid/dist/esm-browser/rng.es.js.map +1 -1
  42. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js +1 -1
  43. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.cjs.js.map +1 -1
  44. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js +1 -1
  45. package/dist/shared/node_modules/uuid/dist/esm-browser/stringify.es.js.map +1 -1
  46. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js +41 -58
  47. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.cjs.js.map +1 -1
  48. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js +41 -57
  49. package/dist/shared/node_modules/uuid/dist/esm-browser/v1.es.js.map +1 -1
  50. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js +1 -5
  51. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.cjs.js.map +1 -1
  52. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js +1 -5
  53. package/dist/shared/node_modules/uuid/dist/esm-browser/v4.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/views.cjs.js +30 -2
  55. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  56. package/dist/shared/src/api/generated/views.es.js +30 -2
  57. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  58. package/dist/shared/src/api/queries/views/getViews.cjs.js +29 -5
  59. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  60. package/dist/shared/src/api/queries/views/getViews.es.js +29 -5
  61. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/views/updateViews.cjs.js +169 -9
  63. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/views/updateViews.es.js +170 -10
  65. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  66. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +4 -3
  67. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  68. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -3
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  70. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -0
  71. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  72. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +1 -0
  73. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  74. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +4 -3
  75. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -3
  77. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  78. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +4 -3
  79. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  80. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -3
  81. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  82. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +4 -3
  83. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  84. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -3
  85. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  86. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +4 -3
  87. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  88. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  89. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  90. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +4 -3
  91. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  92. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -3
  93. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  94. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +4 -3
  95. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  96. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -3
  97. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  98. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -3
  99. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  100. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -3
  101. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  102. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +4 -3
  103. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  104. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -3
  105. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  106. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +4 -3
  107. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  108. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -3
  109. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  110. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +4 -3
  111. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  112. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
  113. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  114. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +4 -3
  115. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  116. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -3
  117. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  118. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +4 -3
  119. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  120. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -3
  121. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  122. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +4 -3
  123. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  124. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -3
  125. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  126. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  127. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  128. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +10 -11
  129. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  130. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +10 -11
  131. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  132. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +4 -3
  133. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  134. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -3
  135. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  136. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  137. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  138. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +69 -21
  139. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  140. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +69 -21
  141. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  142. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  143. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  144. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +0 -5
  145. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  146. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +0 -5
  147. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  148. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +3 -5
  149. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  150. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -5
  151. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  152. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
  153. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  154. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +1 -1
  155. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  156. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +18 -10
  157. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  158. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -10
  159. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  160. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +106 -0
  161. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -0
  162. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +106 -0
  163. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -0
  164. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +4 -3
  165. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  166. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -3
  167. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  168. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +49 -0
  169. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -0
  170. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +49 -0
  171. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -0
  172. package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.cjs.js +24 -12
  173. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -0
  174. package/dist/shared/src/{components → containers}/Views/ViewItem/ViewItem.styled.es.js +24 -12
  175. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -0
  176. package/dist/shared/src/{components → containers}/Views/Views.cjs.js +6 -10
  177. package/dist/shared/src/containers/Views/Views.cjs.js.map +1 -0
  178. package/dist/shared/src/{components → containers}/Views/Views.es.js +7 -11
  179. package/dist/shared/src/containers/Views/Views.es.js.map +1 -0
  180. package/dist/shared/src/{components → containers}/Views/Views.styled.cjs.js +4 -3
  181. package/dist/shared/src/containers/Views/Views.styled.cjs.js.map +1 -0
  182. package/dist/shared/src/{components → containers}/Views/Views.styled.es.js +4 -3
  183. package/dist/shared/src/containers/Views/Views.styled.es.js.map +1 -0
  184. package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.cjs.js +11 -2
  185. package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.cjs.js.map +1 -0
  186. package/dist/shared/src/{components → containers}/Views/ViewsButton/ViewsButton.es.js +11 -2
  187. package/dist/shared/src/containers/Views/ViewsButton/ViewsButton.es.js.map +1 -0
  188. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js +4 -0
  189. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -0
  190. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js +5 -0
  191. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -0
  192. package/dist/shared/src/{components/Views/context/ViewsContext.cjs.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js} +67 -58
  193. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -0
  194. package/dist/shared/src/{components/Views/context/ViewsContext.es.js → containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js} +66 -57
  195. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -0
  196. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.cjs.js +1 -0
  197. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -0
  198. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.es.js +1 -0
  199. package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -0
  200. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
  201. package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
  202. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +105 -0
  203. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -0
  204. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +105 -0
  205. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -0
  206. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +211 -0
  207. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -0
  208. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +211 -0
  209. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -0
  210. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +52 -0
  211. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -0
  212. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +52 -0
  213. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -0
  214. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +69 -0
  215. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -0
  216. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +69 -0
  217. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -0
  218. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +44 -0
  219. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -0
  220. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +44 -0
  221. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -0
  222. package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.cjs.js +58 -32
  223. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -0
  224. package/dist/shared/src/{components → containers}/Views/hooks/useBuildViewMenuItems.es.js +59 -33
  225. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -0
  226. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +33 -0
  227. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -0
  228. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +33 -0
  229. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -0
  230. package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.cjs.js → containers/Views/hooks/useSelectedView.cjs.js} +33 -114
  231. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -0
  232. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +108 -0
  233. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -0
  234. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js +19 -0
  235. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -0
  236. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js +19 -0
  237. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -0
  238. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +143 -0
  239. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -0
  240. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +143 -0
  241. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -0
  242. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +67 -0
  243. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -0
  244. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +67 -0
  245. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -0
  246. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js +13 -0
  247. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -0
  248. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js +13 -0
  249. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -0
  250. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -0
  251. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -0
  252. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js +1 -1
  253. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.cjs.js.map +1 -1
  254. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js +1 -1
  255. package/dist/shared/src/{components → containers}/Views/utils/portalUtils.es.js.map +1 -1
  256. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +125 -0
  257. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -0
  258. package/dist/shared/src/{components/Views/ViewForm/ViewFormContainer.es.js → containers/Views/utils/viewUpdateHelper.es.js} +48 -112
  259. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -0
  260. package/dist/shared/src/context/PowerpackContext.cjs.js +9 -3
  261. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  262. package/dist/shared/src/context/PowerpackContext.es.js +9 -3
  263. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  264. package/dist/shared/src/hooks/useLoadModule.cjs.js +1 -1
  265. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  266. package/dist/shared/src/hooks/useLoadModule.es.js +1 -1
  267. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  268. package/dist/shared/src/util/columnConfigConverter.cjs.js +116 -0
  269. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -0
  270. package/dist/shared/src/util/columnConfigConverter.es.js +116 -0
  271. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -0
  272. package/dist/types/Views.d.ts +2 -0
  273. package/dist/types/api/generated/powerPack1.1.1Views.d.ts +25 -0
  274. package/dist/types/api/generated/views.d.ts +130 -22
  275. package/dist/types/api/queries/views/getViews.d.ts +161 -22
  276. package/dist/types/api/queries/views/updateViews.d.ts +500 -13
  277. package/dist/types/components/index.d.ts +0 -1
  278. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +15 -5
  279. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsProvider.d.ts +1 -1
  280. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
  281. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -4
  282. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +0 -1
  283. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +3 -5
  284. package/dist/types/containers/ProjectTreeTable/hooks/useProjectTableModules.d.ts +2 -5
  285. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +5 -3
  286. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  287. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +5 -6
  288. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  289. package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +24 -0
  290. package/dist/types/{components → containers}/Views/ViewItem/ViewItem.d.ts +3 -1
  291. package/dist/types/{components → containers}/Views/ViewItem/ViewItem.styled.d.ts +1 -1
  292. package/dist/types/containers/Views/Views.d.ts +2 -0
  293. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +24 -0
  294. package/dist/types/containers/Views/ViewsDialogContainer/ViewsDialogContainer.d.ts +6 -0
  295. package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.d.ts +1 -2
  296. package/dist/types/{components → containers}/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +1 -1
  297. package/dist/types/containers/Views/context/ViewsContext.d.ts +46 -0
  298. package/dist/types/containers/Views/hooks/index.d.ts +5 -0
  299. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +9 -0
  300. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +12 -0
  301. package/dist/types/containers/Views/hooks/pages/useTaskProgressViewSettings.d.ts +10 -0
  302. package/dist/types/containers/Views/hooks/pages/viewUpdateHelper.d.ts +0 -0
  303. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +22 -0
  304. package/dist/types/containers/Views/hooks/useOverviewViewSettings.d.ts +0 -0
  305. package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +12 -0
  306. package/dist/types/containers/Views/hooks/useSelectedView.d.ts +12 -0
  307. package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +6 -0
  308. package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +13 -0
  309. package/dist/types/containers/Views/hooks/useViewsShortcuts.d.ts +13 -0
  310. package/dist/types/containers/Views/index.d.ts +19 -0
  311. package/dist/types/containers/Views/utils/generateWorkingView.d.ts +3 -0
  312. package/dist/types/{components → containers}/Views/utils/getCustomViewsFallback.d.ts +3 -2
  313. package/dist/types/{components → containers}/Views/utils/portalUtils.d.ts +1 -1
  314. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +17 -0
  315. package/dist/types/containers/index.d.ts +1 -0
  316. package/dist/types/context/PowerpackContext.d.ts +4 -1
  317. package/dist/types/util/columnConfigConverter.d.ts +15 -0
  318. package/dist/types/util/index.d.ts +1 -0
  319. package/dist/util.cjs.js +3 -0
  320. package/dist/util.cjs.js.map +1 -1
  321. package/dist/util.es.js +3 -0
  322. package/dist/util.es.js.map +1 -1
  323. package/package.json +6 -1
  324. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js +0 -164
  325. package/dist/shared/src/components/Views/ViewForm/ViewForm.cjs.js.map +0 -1
  326. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js +0 -164
  327. package/dist/shared/src/components/Views/ViewForm/ViewForm.es.js.map +0 -1
  328. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js +0 -71
  329. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.cjs.js.map +0 -1
  330. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js +0 -71
  331. package/dist/shared/src/components/Views/ViewForm/ViewForm.styled.es.js.map +0 -1
  332. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.cjs.js.map +0 -1
  333. package/dist/shared/src/components/Views/ViewForm/ViewFormContainer.es.js.map +0 -1
  334. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js +0 -36
  335. package/dist/shared/src/components/Views/ViewItem/ViewItem.cjs.js.map +0 -1
  336. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js +0 -36
  337. package/dist/shared/src/components/Views/ViewItem/ViewItem.es.js.map +0 -1
  338. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.cjs.js.map +0 -1
  339. package/dist/shared/src/components/Views/ViewItem/ViewItem.styled.es.js.map +0 -1
  340. package/dist/shared/src/components/Views/Views.cjs.js.map +0 -1
  341. package/dist/shared/src/components/Views/Views.es.js.map +0 -1
  342. package/dist/shared/src/components/Views/Views.styled.cjs.js.map +0 -1
  343. package/dist/shared/src/components/Views/Views.styled.es.js.map +0 -1
  344. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.cjs.js.map +0 -1
  345. package/dist/shared/src/components/Views/ViewsButton/ViewsButton.es.js.map +0 -1
  346. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.cjs.js.map +0 -1
  347. package/dist/shared/src/components/Views/ViewsMenu/ViewsMenu.es.js.map +0 -1
  348. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +0 -132
  349. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +0 -1
  350. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +0 -132
  351. package/dist/shared/src/components/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +0 -1
  352. package/dist/shared/src/components/Views/context/ViewsContext.cjs.js.map +0 -1
  353. package/dist/shared/src/components/Views/context/ViewsContext.es.js.map +0 -1
  354. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.cjs.js.map +0 -1
  355. package/dist/shared/src/components/Views/hooks/useBuildViewMenuItems.es.js.map +0 -1
  356. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js +0 -13
  357. package/dist/shared/src/components/Views/utils/generatePersonalView.cjs.js.map +0 -1
  358. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js +0 -13
  359. package/dist/shared/src/components/Views/utils/generatePersonalView.es.js.map +0 -1
  360. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.cjs.js.map +0 -1
  361. package/dist/shared/src/components/Views/utils/getCustomViewsFallback.es.js.map +0 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js +0 -24
  363. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js.map +0 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js +0 -24
  365. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js.map +0 -1
  366. package/dist/types/components/Views/ViewForm/ViewForm.d.ts +0 -14
  367. package/dist/types/components/Views/ViewForm/ViewForm.styled.d.ts +0 -9
  368. package/dist/types/components/Views/ViewForm/ViewFormContainer.d.ts +0 -15
  369. package/dist/types/components/Views/Views.d.ts +0 -8
  370. package/dist/types/components/Views/context/ViewsContext.d.ts +0 -31
  371. package/dist/types/components/Views/hooks/useBuildViewMenuItems.d.ts +0 -14
  372. package/dist/types/components/Views/index.d.ts +0 -11
  373. package/dist/types/components/Views/utils/generatePersonalView.d.ts +0 -3
  374. package/dist/types/containers/ProjectTreeTable/hooks/useColumnSorting.d.ts +0 -12
  375. /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.cjs.js +0 -0
  376. /package/dist/shared/src/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.es.js +0 -0
  377. /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.cjs.js +0 -0
  378. /package/dist/shared/src/{components → containers}/Views/utils/getCustomViewsFallback.es.js +0 -0
  379. /package/dist/types/{components → containers}/Views/Views.styled.d.ts +0 -0
  380. /package/dist/types/{components → containers}/Views/ViewsButton/ViewsButton.d.ts +0 -0
  381. /package/dist/types/{components → containers}/Views/ViewsMenu/ViewsMenu.styled.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PowerpackDialog.es.js","sources":["../../../../../src/components/Powerpack/PowerpackDialog.tsx"],"sourcesContent":["import * as Styled from './PowerpackDialog.styled'\nimport { FC } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { PricingLink } from './PricingLink'\nimport { powerpackFeatures, usePowerpack } from '@shared/context'\nimport type { PowerpackDialogType } from '@shared/context/PowerpackContext'\nimport { useFeedback } from '@shared/components'\nimport { CTAButton } from './CTAButton'\n\nexport interface PowerpackDialogProps {\n label?: string\n description?: string\n features?: Record<string, Pick<PowerpackDialogType, 'bullet' | 'icon'>>\n isCloseable?: boolean\n addon?: {\n icon: string\n }\n}\n\nexport const PowerpackDialog: FC<PowerpackDialogProps> = ({\n label,\n description,\n features,\n isCloseable = true,\n addon,\n}) => {\n const { setPowerpackDialog, selectedPowerPack, powerpackDialog } = usePowerpack()\n const { openSupport, messengerLoaded } = useFeedback()\n\n if (!powerpackDialog && (!label || !description)) return null\n\n // Dynamic support message\n const featureLabel =\n label ?? powerpackDialog?.label ?? (addon ? 'this addon' : 'this feature')\n const SUPPORT_MESSAGE = addon\n ? `I would like to know how I can try out the \"${featureLabel}\" addon?`\n : `I would like to know how I can try out the \"${featureLabel}\" power feature?`\n\n return (\n <Styled.PowerpackDialog\n isOpen\n onClose={() => (isCloseable ? setPowerpackDialog(null) : undefined)}\n size=\"lg\"\n hideCancelButton={!isCloseable}\n hideBackdrop={!isCloseable}\n >\n <Styled.MainFeature>\n <h1>\n <Icon icon={addon?.icon ? addon.icon : 'bolt'} />\n {label ?? powerpackDialog?.label}\n </h1>\n <h2>{description ?? powerpackDialog?.description}</h2>\n </Styled.MainFeature>\n\n <Styled.FeaturesList>\n {addon ? (\n <h3>\n Unlock all <span className=\"green\">Premium Addons</span> with an AYON Studio\n subscription.\n </h3>\n ) : (\n <h3>\n Unlock all <Icon icon=\"bolt\" /> <span className=\"green\">Power Features</span> with an\n AYON subscription.\n </h3>\n )}\n <ul>\n {Object.entries(features ?? powerpackFeatures)\n .sort(([key]) => (key !== selectedPowerPack ? 1 : -1))\n .map(([key, value]) => (\n <li key={key}>\n <Icon icon={value.icon ?? 'check'} />\n <span>{value.bullet}</span>\n </li>\n ))}\n </ul>\n </Styled.FeaturesList>\n {messengerLoaded ? (\n <CTAButton onClick={() => openSupport('NewMessage', SUPPORT_MESSAGE)} />\n ) : (\n <PricingLink>\n <CTAButton />\n </PricingLink>\n )}\n </Styled.PowerpackDialog>\n )\n}\n"],"names":["jsxs","Styled.PowerpackDialog","Styled.MainFeature","jsx","Styled.FeaturesList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,kBAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACF,MAAM;AACJ,QAAM,EAAE,oBAAoB,mBAAmB,gBAAA,IAAoB,aAAa;AAChF,QAAM,EAAE,aAAa,gBAAgB,IAAI,YAAY;AAErD,MAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAqB,QAAA;AAGzD,QAAM,eACJ,UAAS,mDAAiB,WAAU,QAAQ,eAAe;AAC7D,QAAM,kBAAkB,QACpB,+CAA+C,YAAY,aAC3D,+CAA+C,YAAY;AAG7D,SAAAA,kCAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,SAAS,MAAO,cAAc,mBAAmB,IAAI,IAAI;AAAA,MACzD,MAAK;AAAA,MACL,kBAAkB,CAAC;AAAA,MACnB,cAAc,CAAC;AAAA,MAEf,UAAA;AAAA,QAACD,uCAAAE,aAAA,EACC,UAAA;AAAA,UAAAF,uCAAC,MACC,EAAA,UAAA;AAAA,YAAAG,sCAAC,QAAK,OAAM,+BAAO,QAAO,MAAM,OAAO,QAAQ;AAAA,YAC9C,UAAS,mDAAiB;AAAA,UAAA,GAC7B;AAAA,UACCA,kCAAA,IAAA,MAAA,EAAI,UAAe,gBAAA,mDAAiB,aAAY,CAAA;AAAA,QAAA,GACnD;AAAA,QAEAH,uCAACI,cAAA,EACE,UAAA;AAAA,UAAA,+CACE,MAAG,EAAA,UAAA;AAAA,YAAA;AAAA,YACUD,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAQ,UAAc,kBAAA;AAAA,YAAO;AAAA,UAE1D,EAAA,CAAA,2CAEC,MAAG,EAAA,UAAA;AAAA,YAAA;AAAA,YACSA,kCAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,YAAE;AAAA,YAAEA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAQ,UAAc,kBAAA;AAAA,YAAO;AAAA,UAAA,GAE/E;AAAA,UAEFA,kCAAAA,IAAC,MACE,EAAA,UAAA,OAAO,QAAQ,YAAY,iBAAiB,EAC1C,KAAK,CAAC,CAAC,GAAG,MAAO,QAAQ,oBAAoB,IAAI,EAAG,EACpD,IAAI,CAAC,CAAC,KAAK,KAAK,MACfH,kCAAAA,KAAC,MACC,EAAA,UAAA;AAAA,YAAAG,kCAAA,IAAC,MAAK,EAAA,MAAM,MAAM,QAAQ,SAAS;AAAA,YACnCA,kCAAAA,IAAC,QAAM,EAAA,UAAA,MAAM,OAAO,CAAA;AAAA,UAAA,EAFb,GAAA,GAGT,CACD,EACL,CAAA;AAAA,QAAA,GACF;AAAA,QACC,kBACCA,kCAAA,IAAC,WAAU,EAAA,SAAS,MAAM,YAAY,cAAc,eAAe,EAAG,CAAA,IAEtEA,kCAAAA,IAAC,aACC,EAAA,UAAAA,kCAAAA,IAAC,aAAU,EACb,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
1
+ {"version":3,"file":"PowerpackDialog.es.js","sources":["../../../../../src/components/Powerpack/PowerpackDialog.tsx"],"sourcesContent":["import * as Styled from './PowerpackDialog.styled'\nimport { FC } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { PricingLink } from './PricingLink'\nimport { powerpackFeatures, usePowerpack } from '@shared/context'\nimport type { PowerpackDialogType } from '@shared/context/PowerpackContext'\nimport { useFeedback } from '@shared/components'\nimport { CTAButton } from './CTAButton'\n\nexport interface PowerpackDialogProps {\n label?: string\n description?: string\n features?: Record<string, Pick<PowerpackDialogType, 'bullet' | 'icon'>>\n isCloseable?: boolean\n addon?: {\n icon: string\n }\n}\n\nexport const PowerpackDialog: FC<PowerpackDialogProps> = ({\n label,\n description,\n features,\n isCloseable = true,\n addon,\n}) => {\n const { setPowerpackDialog, selectedPowerPack, powerpackDialog } = usePowerpack()\n const { openSupport, messengerLoaded } = useFeedback()\n\n if (!powerpackDialog && (!label || !description)) return null\n\n // Dynamic support message\n const featureLabel =\n label ?? powerpackDialog?.label ?? (addon ? 'this addon' : 'this feature')\n const SUPPORT_MESSAGE = addon\n ? `I would like to know how I can try out the \"${featureLabel}\" addon?`\n : `I would like to know how I can try out the \"${featureLabel}\" power feature?`\n\n return (\n <Styled.PowerpackDialog\n isOpen\n onClose={() => (isCloseable ? setPowerpackDialog(null) : undefined)}\n size=\"lg\"\n hideCancelButton={!isCloseable}\n hideBackdrop={!isCloseable}\n >\n <Styled.MainFeature>\n <h1>\n <Icon icon={addon?.icon ? addon.icon : 'bolt'} />\n {label ?? powerpackDialog?.label}\n </h1>\n <h2>{description ?? powerpackDialog?.description}</h2>\n </Styled.MainFeature>\n\n <Styled.FeaturesList>\n {addon ? (\n <h3>\n Unlock all <span className=\"green\">Premium Addons</span> with an AYON Studio\n subscription.\n </h3>\n ) : (\n <h3>\n Unlock all <Icon icon=\"bolt\" /> <span className=\"green\">Power Features</span> with an\n AYON subscription.\n </h3>\n )}\n <ul>\n {Object.entries(features ?? powerpackFeatures)\n .sort(([key]) => (key !== selectedPowerPack ? 1 : -1))\n .map(([key, value]) => (\n <li key={key}>\n <Icon icon={value.icon ?? 'check'} />\n <span>{value.bullet}</span>\n </li>\n ))}\n </ul>\n </Styled.FeaturesList>\n {messengerLoaded ? (\n <CTAButton onClick={() => openSupport('NewMessage', SUPPORT_MESSAGE)} />\n ) : (\n <PricingLink>\n <CTAButton />\n </PricingLink>\n )}\n </Styled.PowerpackDialog>\n )\n}\n"],"names":["jsxs","Styled.PowerpackDialog","Styled.MainFeature","jsx","Styled.FeaturesList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,kBAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACF,MAAM;AACJ,QAAM,EAAE,oBAAoB,mBAAmB,gBAAA,IAAoB,aAAa;AAChF,QAAM,EAAE,aAAa,gBAAgB,IAAI,YAAY;AAErD,MAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAqB,QAAA;AAGzD,QAAM,eACJ,UAAS,mDAAiB,WAAU,QAAQ,eAAe;AAC7D,QAAM,kBAAkB,QACpB,+CAA+C,YAAY,aAC3D,+CAA+C,YAAY;AAG7D,SAAAA,kCAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,SAAS,MAAO,cAAc,mBAAmB,IAAI,IAAI;AAAA,MACzD,MAAK;AAAA,MACL,kBAAkB,CAAC;AAAA,MACnB,cAAc,CAAC;AAAA,MAEf,UAAA;AAAA,QAACD,uCAAAE,aAAA,EACC,UAAA;AAAA,UAAAF,uCAAC,MACC,EAAA,UAAA;AAAA,YAAAG,sCAAC,QAAK,OAAM,+BAAO,QAAO,MAAM,OAAO,QAAQ;AAAA,YAC9C,UAAS,mDAAiB;AAAA,UAAA,GAC7B;AAAA,UACCA,kCAAA,IAAA,MAAA,EAAI,UAAe,gBAAA,mDAAiB,aAAY,CAAA;AAAA,QAAA,GACnD;AAAA,QAEAH,uCAACI,cAAA,EACE,UAAA;AAAA,UAAA,+CACE,MAAG,EAAA,UAAA;AAAA,YAAA;AAAA,YACUD,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAQ,UAAc,kBAAA;AAAA,YAAO;AAAA,UAE1D,EAAA,CAAA,2CAEC,MAAG,EAAA,UAAA;AAAA,YAAA;AAAA,YACSA,kCAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,YAAE;AAAA,YAAEA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAQ,UAAc,kBAAA;AAAA,YAAO;AAAA,UAAA,GAE/E;AAAA,UAEFA,kCAAAA,IAAC,MACE,EAAA,UAAA,OAAO,QAAQ,YAAY,iBAAiB,EAC1C,KAAK,CAAC,CAAC,GAAG,MAAO,QAAQ,oBAAoB,IAAI,EAAG,EACpD,IAAI,CAAC,CAAC,KAAK,KAAK,MACfH,kCAAAA,KAAC,MACC,EAAA,UAAA;AAAA,YAAAG,kCAAA,IAAC,MAAK,EAAA,MAAM,MAAM,QAAQ,SAAS;AAAA,YACnCA,kCAAAA,IAAC,QAAM,EAAA,UAAA,MAAM,OAAO,CAAA;AAAA,UAAA,EAFb,GAAA,GAGT,CACD,EACL,CAAA;AAAA,QAAA,GACF;AAAA,QACC,kBACCA,kCAAA,IAAC,WAAU,EAAA,SAAS,MAAM,YAAY,cAAc,eAAe,EAAG,CAAA,IAEtEA,kCAAAA,IAAC,aACC,EAAA,UAAAA,kCAAAA,IAAC,aAAU,EACb,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
@@ -174,6 +174,10 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
174
174
  require("../../containers/Actions/Actions.styled.cjs.js");
175
175
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
176
176
  require("../../containers/Actions/ActionIcon.cjs.js");
177
+ require("../../containers/Views/context/ViewsContext.cjs.js");
178
+ require("../../containers/Views/Views.styled.cjs.js");
179
+ require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
180
+ require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");
177
181
  require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
178
182
  require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
179
183
  require("../EntityPath/EntityPath.styled.cjs.js");
@@ -191,9 +195,6 @@ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
191
195
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
192
196
  require("../Feedback/FeedbackContext.cjs.js");
193
197
  require("../Feedback/SupportBubble.cjs.js");
194
- require("../Views/context/ViewsContext.cjs.js");
195
- require("../Views/Views.styled.cjs.js");
196
- require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
197
198
  require("../Powerpack/CTAButton.cjs.js");
198
199
  const TableSettingsFallback = ({
199
200
  requiredVersion,
@@ -1 +1 @@
1
- {"version":3,"file":"TableSettingsFallback.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["usePowerpack","jsxs","Fragment","jsx","Link","Button","PowerpackButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAIA,8BAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,MAACC,2BAAA,kBAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,2BAAA,kBAAA,IAAAC,eAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAH,kDAACI,oBAAAA,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKJ,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,2BAAA,kBAAA;AAAA,MAACG,gBAAA;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,qDAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;;"}
1
+ {"version":3,"file":"TableSettingsFallback.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["usePowerpack","jsxs","Fragment","jsx","Link","Button","PowerpackButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAIA,8BAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,MAACC,2BAAA,kBAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,2BAAA,kBAAA,IAAAC,eAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAH,kDAACI,oBAAAA,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKJ,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,2BAAA,kBAAA;AAAA,MAACG,gBAAA;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,qDAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;;"}
@@ -172,6 +172,10 @@ import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.
172
172
  import "../../containers/Actions/Actions.styled.es.js";
173
173
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
174
174
  import "../../containers/Actions/ActionIcon.es.js";
175
+ import "../../containers/Views/context/ViewsContext.es.js";
176
+ import "../../containers/Views/Views.styled.es.js";
177
+ import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
178
+ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
175
179
  import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
176
180
  import "../SimpleFormDialog/SimpleFormDialog.es.js";
177
181
  import "../EntityPath/EntityPath.styled.es.js";
@@ -189,9 +193,6 @@ import "../VersionUploader/components/UploadVersionDialog.es.js";
189
193
  import "../VersionUploader/context/VersionUploadContext.es.js";
190
194
  import "../Feedback/FeedbackContext.es.js";
191
195
  import "../Feedback/SupportBubble.es.js";
192
- import "../Views/context/ViewsContext.es.js";
193
- import "../Views/Views.styled.es.js";
194
- import "../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
195
196
  import "../Powerpack/CTAButton.es.js";
196
197
  const TableSettingsFallback = ({
197
198
  requiredVersion,
@@ -1 +1 @@
1
- {"version":3,"file":"TableSettingsFallback.es.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAI,aAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,MAACC,kCAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,kCAAA,IAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAF,uCAAC,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,0CAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;"}
1
+ {"version":3,"file":"TableSettingsFallback.es.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAI,aAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,MAACC,kCAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,kCAAA,IAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAF,uCAAC,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,0CAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;"}
@@ -175,6 +175,10 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
175
175
  require("../../containers/Actions/Actions.styled.cjs.js");
176
176
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
177
177
  require("../../containers/Actions/ActionIcon.cjs.js");
178
+ require("../../containers/Views/context/ViewsContext.cjs.js");
179
+ require("../../containers/Views/Views.styled.cjs.js");
180
+ require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
181
+ require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");
178
182
  require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
179
183
  require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
180
184
  require("../EntityPath/EntityPath.styled.cjs.js");
@@ -196,9 +200,6 @@ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
196
200
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
197
201
  require("../Feedback/FeedbackContext.cjs.js");
198
202
  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");
202
203
  const ReviewablesList = ({
203
204
  projectName,
204
205
  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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"}
@@ -174,6 +174,10 @@ import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.
174
174
  import "../../containers/Actions/Actions.styled.es.js";
175
175
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
176
176
  import "../../containers/Actions/ActionIcon.es.js";
177
+ import "../../containers/Views/context/ViewsContext.es.js";
178
+ import "../../containers/Views/Views.styled.es.js";
179
+ import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
180
+ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
177
181
  import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
178
182
  import "../SimpleFormDialog/SimpleFormDialog.es.js";
179
183
  import "../EntityPath/EntityPath.styled.es.js";
@@ -195,9 +199,6 @@ import "../VersionUploader/components/UploadVersionDialog.es.js";
195
199
  import "../VersionUploader/context/VersionUploadContext.es.js";
196
200
  import "../Feedback/FeedbackContext.es.js";
197
201
  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";
201
202
  const ReviewablesList = ({
202
203
  projectName,
203
204
  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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"}
@@ -171,6 +171,10 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
171
171
  require("../../containers/Actions/Actions.styled.cjs.js");
172
172
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
173
173
  require("../../containers/Actions/ActionIcon.cjs.js");
174
+ require("../../containers/Views/context/ViewsContext.cjs.js");
175
+ require("../../containers/Views/Views.styled.cjs.js");
176
+ require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
177
+ require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");
174
178
  require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
175
179
  require("axios");
176
180
  require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
@@ -193,9 +197,6 @@ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
193
197
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
194
198
  require("../Feedback/FeedbackContext.cjs.js");
195
199
  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");
199
200
  const ReviewableUpload = ({
200
201
  projectName,
201
202
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BO,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,eAAe,CAAC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;;AAEJ,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAS,KAAK;AAGpD,QAAA;AAAA,IACJ,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,MACEC,0CAAqB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGK,QAAA,YAAY,QAAQ,SAAS;AAGnCC,QAAAA,UAAU,MAAM;AACd,QAAI,aAAa,aAAa,aAAa,SAAS,KAAK,iBAAiB;AACxE,YAAM,QAAQ,aAAa,IAAI,CAAC,SAAS,KAAK,IAAI;AAErC,mBAAA,QAAQ,CAAC,SAAS;AAC7B,YAAI,KAAK,SAAS;AACZ,cAAA,gBAAgB,KAAK,OAAO;AAAA,QAAA;AAAA,MAClC,CACD;AACD,sBAAgB,CAAA,CAAE;AAElB,kBAAY,KAAK;AAAA,IAAA;AAAA,EACnB,GACC,CAAC,WAAW,WAAW,aAAa,QAAQ,aAAa,eAAe,CAAC;AAGtE,QAAA,cAAc,CAAC,SAAe;AAC3B,WAAA,KAAK,KAAK,WAAW,QAAQ;AAAA,EACtC;AAGM,QAAA,kBAAkB,CAAC,UAAkB;AAClC,WAAA,MAAM,IAAI,CAAC,UAAU;AAAA,MAC1B;AAAA,MACA,SAAS,YAAY,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI;AAAA,IAAA,EACzD;AAAA,EACJ;AAEM,QAAA,mBAAmB,OAAO,UAA6B;AACrD,UAAA,YAAY,MAAM,KAAK,KAAK;AAGlC,iDAAe;AAGX,QAAA,CAAC,aAAa,CAAC,WAAW;AAC5B,UAAI,iBAAiB;AACH,wBAAA,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,gBAAgB,SAAS,CAAC,CAAC;AAAA,MAAA;AAEpE;AAAA,IAAA;AAIF,UAAM,YAAY,KAAK;AAAA,EACzB;AAEM,QAAA,oBAAoB,CAAC,UAAyC;AAC5D,UAAA,QAAQ,MAAM,OAAO;AAE3B,QAAI,OAAO;AACT,uBAAiB,KAAK;AAAA,IAAA;AAAA,EAE1B;AAGM,QAAA,iBAAiB,CAAC,UAAqC;AAC3D,UAAM,eAAe;AACrB,sBAAkB,KAAK;AAEjB,UAAA,QAAQ,MAAM,aAAa;AAEjC,QAAI,OAAO;AACT,uBAAiB,KAAK;AAAA,IAAA;AAAA,EAE1B;AACM,QAAA,gBACJ,YAAY,UAAU,EAAE,UAAU,SAAS,UAAU,SAAS,WAAW,SAAS,IAAI,CAAC;AAEzF,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA,kBAAA;AAAA,MAACC,yBAAO;AAAA,MAAP;AAAA,QACC,WAAW,KAAK,WAAW,SAAS,EAAE,UAAU,gBAAgB;AAAA,QAC/D,GAAG;AAAA,QACJ,aAAa,MAAM,kBAAkB,IAAI;AAAA,QAEzC,UACGH,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,UAAA;AAAA,UAEA,CAAC,cACA,6CAAc,IAAI,CAAC,SACjBC,2BAAA,kBAAA;AAAA,YAACE,uBAAA;AAAA,YAAA;AAAA,cAEC,MAAM,KAAK,KAAK;AAAA,cAChB,MAAM,KAAK,KAAK;AAAA,cAChB,KAAK,KAAK;AAAA,cACV,MAAM;AAAA,cACN,UAAU,MAAM;AACd,oBAAI,iBAAiB;AACnB,kCAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,KAAK,SAAS,KAAK,KAAK,IAAI,CAAC;AAAA,gBAAA;AAAA,cAC9E;AAAA,YACF;AAAA,YATK,KAAK,KAAK;AAAA,UAAA;AAAA,UAapB,eACC,eAAU,SAAS,MAAnB,mBAAsB,IAAI,CAAC,SACzBF,2BAAA,kBAAA;AAAA,YAACE,uBAAA;AAAA,YAAA;AAAA,cAEE,GAAG;AAAA,cACJ,MAAM;AAAA,cACN,UAAU,MAAM,mBAAmB,KAAK,IAAI;AAAA,YAAA;AAAA,YAHvC,KAAK;AAAA,UAAA;AAAA,UAQhBJ,2BAAA,kBAAA;AAAA,YAACK,yBAAO;AAAA,YAAP;AAAA,cACC,IAAG;AAAA,cACH,WAAW,KAAK,UAAU,OAAO;AAAA,cACjC,OAAO;AAAA,cACN,GAAG,yBAAI;AAAA,cAER,UAAA;AAAA,gBAAAH,2BAAAA,kBAAAA,IAAC,UAAK,UAAuB,0BAAA,CAAA;AAAA,iEAC5B,SAAM,EAAA,MAAK,QAAO,UAAQ,MAAC,UAAU,kBAAmB,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAC3D,EACF,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,IAEC,kBACCF,2BAAA,kBAAA;AAAA,MAACM,yBAAO;AAAA,MAAP;AAAA,QACC,YAAY,CAAC,MAAM,EAAE,eAAe;AAAA,QACpC,aAAa,MAAM,kBAAkB,KAAK;AAAA,QAC1C,QAAQ;AAAA,QACP,GAAG,yBAAI;AAAA,QAER,UAAA;AAAA,UAACJ,2BAAAA,kBAAAA,IAAAK,oBAAA,MAAA,EAAK,MAAK,SAAS,CAAA;AAAA,UACpBL,2BAAAA,kBAAAA,IAAC,UAAK,UAAiB,oBAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACzB,GAEJ;AAEJ;;;"}
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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"}
@@ -169,6 +169,10 @@ import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.
169
169
  import "../../containers/Actions/Actions.styled.es.js";
170
170
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
171
171
  import "../../containers/Actions/ActionIcon.es.js";
172
+ import "../../containers/Views/context/ViewsContext.es.js";
173
+ import "../../containers/Views/Views.styled.es.js";
174
+ import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
175
+ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
172
176
  import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
173
177
  import "axios";
174
178
  import "../SimpleFormDialog/SimpleFormDialog.es.js";
@@ -191,9 +195,6 @@ import "../VersionUploader/components/UploadVersionDialog.es.js";
191
195
  import "../VersionUploader/context/VersionUploadContext.es.js";
192
196
  import "../Feedback/FeedbackContext.es.js";
193
197
  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";
197
198
  const ReviewableUpload = ({
198
199
  projectName,
199
200
  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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"}
@@ -171,6 +171,10 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
171
171
  require("../../containers/Actions/Actions.styled.cjs.js");
172
172
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
173
173
  require("../../containers/Actions/ActionIcon.cjs.js");
174
+ require("../../containers/Views/context/ViewsContext.cjs.js");
175
+ require("../../containers/Views/Views.styled.cjs.js");
176
+ require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
177
+ require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");
174
178
  require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
175
179
  require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
176
180
  require("../EntityPath/EntityPath.styled.cjs.js");
@@ -192,9 +196,6 @@ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
192
196
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
193
197
  require("../Feedback/FeedbackContext.cjs.js");
194
198
  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");
198
199
  const SortableReviewableCard = ({ ...props }) => {
199
200
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = sortable.useSortable({
200
201
  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;;"}
@@ -170,6 +170,10 @@ import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.
170
170
  import "../../containers/Actions/Actions.styled.es.js";
171
171
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
172
172
  import "../../containers/Actions/ActionIcon.es.js";
173
+ import "../../containers/Views/context/ViewsContext.es.js";
174
+ import "../../containers/Views/Views.styled.es.js";
175
+ import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
176
+ import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
173
177
  import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
174
178
  import "../SimpleFormDialog/SimpleFormDialog.es.js";
175
179
  import "../EntityPath/EntityPath.styled.es.js";
@@ -191,9 +195,6 @@ import "../VersionUploader/components/UploadVersionDialog.es.js";
191
195
  import "../VersionUploader/context/VersionUploadContext.es.js";
192
196
  import "../Feedback/FeedbackContext.es.js";
193
197
  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";
197
198
  const SortableReviewableCard = ({ ...props }) => {
198
199
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
199
200
  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;"}
@@ -172,6 +172,10 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
172
172
  require("../../containers/Actions/Actions.styled.cjs.js");
173
173
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
174
174
  require("../../containers/Actions/ActionIcon.cjs.js");
175
+ require("../../containers/Views/context/ViewsContext.cjs.js");
176
+ require("../../containers/Views/Views.styled.cjs.js");
177
+ require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");
178
+ require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");
175
179
  require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
176
180
  require("../EntityPath/EntityPath.styled.cjs.js");
177
181
  require("../EntityPath/SegmentProvider.cjs.js");
@@ -192,9 +196,6 @@ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
192
196
  require("../VersionUploader/context/VersionUploadContext.cjs.js");
193
197
  require("../Feedback/FeedbackContext.cjs.js");
194
198
  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");
198
199
  const getDefaults = (fields, values) => {
199
200
  const defaults = {};
200
201
  fields.forEach((field) => {