@ynput/ayon-frontend-shared 0.2.17 → 0.2.19

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 (519) hide show
  1. package/dist/DetailsPanel.cjs.js +12 -9
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +13 -10
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +6 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +6 -0
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs10.js +4 -4
  10. package/dist/_virtual/index.cjs5.js +3 -5
  11. package/dist/_virtual/index.cjs5.js.map +1 -1
  12. package/dist/_virtual/index.cjs6.js +5 -3
  13. package/dist/_virtual/index.cjs6.js.map +1 -1
  14. package/dist/_virtual/index.cjs8.js +4 -4
  15. package/dist/_virtual/index.cjs9.js +4 -4
  16. package/dist/_virtual/index.es10.js +4 -4
  17. package/dist/_virtual/index.es5.js +2 -5
  18. package/dist/_virtual/index.es5.js.map +1 -1
  19. package/dist/_virtual/index.es6.js +5 -2
  20. package/dist/_virtual/index.es6.js.map +1 -1
  21. package/dist/_virtual/index.es8.js +4 -4
  22. package/dist/_virtual/index.es9.js +4 -4
  23. package/dist/api.cjs.js +13 -0
  24. package/dist/api.cjs.js.map +1 -1
  25. package/dist/api.es.js +17 -4
  26. package/dist/api.es.js.map +1 -1
  27. package/dist/components.cjs.js +9 -4
  28. package/dist/components.cjs.js.map +1 -1
  29. package/dist/components.es.js +10 -5
  30. package/dist/components.es.js.map +1 -1
  31. package/dist/index.cjs.js +12 -8
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.es.js +12 -8
  34. package/dist/index.es.js.map +1 -1
  35. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  36. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  37. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  38. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  39. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  40. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  41. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  42. package/dist/node_modules/remove-accents/index.es.js +1 -1
  43. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  44. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  45. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphql.cjs.js +64 -23
  48. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.es.js +64 -23
  50. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  51. package/dist/shared/src/api/queries/actions/getActions.cjs.js +9 -1
  52. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/actions/getActions.es.js +9 -1
  54. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +5 -1
  56. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +5 -1
  58. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +24 -8
  60. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +24 -8
  62. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
  64. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
  66. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  67. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +67 -0
  68. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -1
  70. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  71. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +19 -3
  72. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +19 -3
  74. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  75. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +15 -0
  76. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/overview/updateOverview.es.js +15 -0
  78. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
  80. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
  81. package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
  82. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
  83. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
  84. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
  86. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +82 -0
  88. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
  89. package/dist/shared/src/api/queries/versions/updateVersions.es.js +82 -0
  90. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
  91. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
  92. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  93. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
  94. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  95. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +7 -5
  96. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  97. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +7 -5
  98. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  99. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +2 -2
  100. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  101. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +2 -2
  102. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  103. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
  104. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
  105. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
  106. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
  107. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +374 -114
  108. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
  109. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +374 -114
  110. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
  111. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
  112. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
  113. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
  114. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
  115. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
  116. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
  117. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
  118. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
  119. package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js +43 -0
  120. package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js.map +1 -0
  121. package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js +43 -0
  122. package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js.map +1 -0
  123. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  124. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  125. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
  126. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  127. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +1 -1
  128. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
  129. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +1 -1
  130. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
  131. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +17 -15
  132. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +17 -15
  134. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
  136. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
  138. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  139. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +12 -8
  140. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  141. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -8
  142. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  143. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +35 -107
  144. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  145. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +35 -107
  146. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  147. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +12 -8
  148. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  149. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -8
  150. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  151. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
  152. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
  153. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
  154. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
  155. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
  156. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  157. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
  158. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  159. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +12 -8
  160. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  161. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -8
  162. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  163. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
  164. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
  165. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
  166. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
  167. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +402 -0
  168. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
  169. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +402 -0
  170. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
  171. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
  172. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
  173. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
  174. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
  175. package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
  176. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  177. package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
  178. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  179. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +12 -8
  180. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -8
  182. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  183. package/dist/shared/src/containers/Actions/Actions.cjs.js +10 -2
  184. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/Actions/Actions.es.js +10 -2
  186. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  187. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
  188. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
  190. package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
  191. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +10 -3
  192. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +10 -3
  194. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  195. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +14 -0
  196. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +14 -0
  198. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  199. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +12 -8
  200. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  201. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -8
  202. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  203. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +14 -9
  204. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -9
  206. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  207. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +12 -8
  208. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -8
  210. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  211. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +12 -8
  212. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -8
  214. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  215. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +16 -9
  216. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +17 -10
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +0 -30
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +0 -30
  222. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  223. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  227. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
  228. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
  230. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
  236. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
  238. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +51 -5
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +53 -7
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +47 -11
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +47 -11
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +11 -7
  248. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -7
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -4
  252. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +6 -4
  254. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +106 -2
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +106 -2
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -2
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -2
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
  264. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +22 -4
  270. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +22 -4
  272. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +106 -0
  274. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +106 -0
  276. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +4 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +28 -4
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +28 -4
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +135 -0
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +135 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +8 -6
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -6
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +88 -0
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +88 -0
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +35 -4
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +35 -4
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +2 -0
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +2 -0
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +88 -0
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +88 -0
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +90 -0
  334. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +90 -0
  336. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js +19 -0
  338. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -0
  339. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js +19 -0
  340. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -0
  341. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js +26 -0
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -0
  347. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js +26 -0
  348. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -0
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +9 -8
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -9
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +8 -2
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +8 -2
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +190 -0
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -0
  359. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +190 -0
  360. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -0
  361. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +4 -147
  362. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -145
  364. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +12 -2
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -2
  372. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  373. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +12 -8
  374. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -8
  376. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  377. package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
  378. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  379. package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
  380. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  381. package/dist/shared/src/context/DetailsPanelContext.cjs.js +7 -1
  382. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  383. package/dist/shared/src/context/DetailsPanelContext.es.js +7 -1
  384. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  385. package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
  386. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  387. package/dist/shared/src/context/PowerpackContext.es.js +2 -0
  388. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  389. package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
  390. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/RemoteModulesContext.es.js +2 -0
  392. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  393. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
  394. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  395. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
  396. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  397. package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
  398. package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
  399. package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
  400. package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
  401. package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
  402. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  403. package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
  404. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  405. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
  406. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  407. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
  408. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  409. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
  410. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  411. package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
  412. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  413. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
  414. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  415. package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
  416. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  417. package/dist/shared/src/util/confirmDelete.cjs.js +1 -0
  418. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  419. package/dist/shared/src/util/confirmDelete.es.js +2 -0
  420. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  421. package/dist/shared/src/util/productTypes.cjs.js +1 -0
  422. package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
  423. package/dist/shared/src/util/productTypes.es.js +1 -0
  424. package/dist/shared/src/util/productTypes.es.js.map +1 -1
  425. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
  426. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
  427. package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
  428. package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
  429. package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
  430. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
  431. package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
  432. package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
  433. package/dist/types/SimpleTable/SimpleTable.d.ts +1 -0
  434. package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +1 -1
  435. package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +5 -1
  436. package/dist/types/api/generated/folders.d.ts +1 -0
  437. package/dist/types/api/generated/graphql.d.ts +113 -41
  438. package/dist/types/api/queries/actions/getActions.d.ts +132 -1
  439. package/dist/types/api/queries/activities/getActivities.d.ts +10 -4
  440. package/dist/types/api/queries/activities/updateActivities.d.ts +20 -8
  441. package/dist/types/api/queries/entities/getEntity.d.ts +10 -4
  442. package/dist/types/api/queries/entities/getEntityPanel.d.ts +10 -4
  443. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  444. package/dist/types/api/queries/entities/updateEntity.d.ts +10 -4
  445. package/dist/types/api/queries/entityLists/getLists.d.ts +1521 -6
  446. package/dist/types/api/queries/entityLists/types.d.ts +30 -1
  447. package/dist/types/api/queries/entityLists/updateLists.d.ts +166 -3
  448. package/dist/types/api/queries/index.d.ts +2 -0
  449. package/dist/types/api/queries/overview/getOverview.d.ts +10 -4
  450. package/dist/types/api/queries/products/createProduct.d.ts +161 -0
  451. package/dist/types/api/queries/products/index.d.ts +1 -0
  452. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +10 -4
  453. package/dist/types/api/queries/users/getUsers.d.ts +10 -4
  454. package/dist/types/api/queries/versions/index.d.ts +1 -0
  455. package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
  456. package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
  457. package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
  458. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
  459. package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
  460. package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
  461. package/dist/types/components/PlayableIcon/PlayableIcon.d.ts +4 -0
  462. package/dist/types/components/ReviewablesList/index.d.ts +1 -0
  463. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
  464. package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
  465. package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
  466. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
  467. package/dist/types/components/VersionUploader/index.d.ts +2 -0
  468. package/dist/types/components/index.d.ts +2 -2
  469. package/dist/types/containers/Actions/Actions.d.ts +7 -1
  470. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +5 -3
  471. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
  472. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
  473. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +0 -1
  474. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +6 -2
  475. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -1
  476. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +12 -2
  477. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  478. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +3 -2
  479. package/dist/types/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.d.ts +9 -0
  480. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +2 -2
  481. package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +3 -3
  482. package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -1
  483. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -1
  484. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +4 -0
  485. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  486. package/dist/types/containers/ProjectTreeTable/utils/getTypeDefaultValue.d.ts +2 -0
  487. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
  488. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
  489. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +20 -0
  490. package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -11
  491. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -0
  492. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  493. package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
  494. package/dist/types/util/confirmDelete.d.ts +2 -1
  495. package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
  496. package/dist/util.cjs.js +2 -0
  497. package/dist/util.cjs.js.map +1 -1
  498. package/dist/util.es.js +2 -0
  499. package/dist/util.es.js.map +1 -1
  500. package/package.json +1 -1
  501. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
  502. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
  503. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
  504. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
  505. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
  506. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
  507. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
  508. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
  509. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
  510. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
  511. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
  512. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
  513. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
  514. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
  515. package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
  516. package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
  517. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
  518. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
  519. package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
@@ -14,23 +14,9 @@ require("lodash");
14
14
  require("../../util/pubsub.cjs.js");
15
15
  require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");
16
16
  require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");
17
- require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
18
17
  const ayonReactComponents = require("@ynput/ayon-react-components");
19
- require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
20
- require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
21
- require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");
22
- require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");
23
- require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");
24
- require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");
25
- require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
26
- require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");
27
- require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
28
- require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
29
- require("clsx");
30
- require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
31
- require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
32
- require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
33
18
  ;/* empty css */
19
+ require("clsx");
34
20
  require("../../containers/ContextMenu/ContextMenuContext.cjs.js");
35
21
  require("../../api/base/client.cjs.js");
36
22
  require("../../api/generated/graphql.cjs.js");
@@ -99,6 +85,8 @@ require("../../api/queries/users/updateUsers.cjs.js");
99
85
  require("../../api/queries/watchers/getWatchers.cjs.js");
100
86
  require("../../api/queries/permissions/getPermissions.cjs.js");
101
87
  require("../../api/queries/grouping/getGrouping.cjs.js");
88
+ require("../../api/queries/versions/updateVersions.cjs.js");
89
+ require("../../api/queries/products/createProduct.cjs.js");
102
90
  require("../../context/RemoteModulesContext.cjs.js");
103
91
  require("../../../../_virtual/runtime.cjs.js");
104
92
  require("../../../../_virtual/semver.cjs.js");
@@ -114,6 +102,20 @@ require("../../context/PowerpackContext.cjs.js");
114
102
  require("react-redux");
115
103
  require("custom-protocol-check");
116
104
  require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
105
+ require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
106
+ require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
107
+ require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
108
+ require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");
109
+ require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");
110
+ require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");
111
+ require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");
112
+ require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
113
+ require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");
114
+ require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
115
+ require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
116
+ require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
117
+ require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
118
+ require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
117
119
  const styled = require("styled-components");
118
120
  const SettingsPanel = require("../SettingsPanel/SettingsPanel.cjs.js");
119
121
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps, theme } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, className, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["Button","useSettingsPanel","jsx","useProjectTableContext","useColumnSettingsContext","SettingsPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAOA,0BAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,WAAW,GAAG,YAAmB;AAClF,QAAM,EAAE,aAAa,YAAY,IAAIC,sCAAiB;AAGpD,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAIC,+CAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWF,2BAAAA,kBAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,2BAAA,kBAAA,IAACG,cAAc,eAAA,EAAA,UAAU,gBAAiB,CAAA;AACnD;;;"}
1
+ {"version":3,"file":"ProjectTableSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps, theme } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, className, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["Button","useSettingsPanel","jsx","useProjectTableContext","useColumnSettingsContext","SettingsPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAOA,0BAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,WAAW,GAAG,YAAmB;AAClF,QAAM,EAAE,aAAa,YAAY,IAAIC,sCAAiB;AAGpD,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAIC,+CAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWF,2BAAAA,kBAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,2BAAA,kBAAA,IAACG,cAAc,eAAA,EAAA,UAAU,gBAAiB,CAAA;AACnD;;;"}
@@ -12,23 +12,9 @@ import "lodash";
12
12
  import "../../util/pubsub.es.js";
13
13
  import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
14
14
  import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
15
- import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
16
15
  import { Button } from "@ynput/ayon-react-components";
17
- import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
18
- import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
19
- import "../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
20
- import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
21
- import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
22
- import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
23
- import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
24
- import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
25
- import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
26
- import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
27
- import "clsx";
28
- import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
29
- import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
30
- import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
31
16
  /* empty css */
17
+ import "clsx";
32
18
  import "../../containers/ContextMenu/ContextMenuContext.es.js";
33
19
  import "../../api/base/client.es.js";
34
20
  import "../../api/generated/graphql.es.js";
@@ -97,6 +83,8 @@ import "../../api/queries/users/updateUsers.es.js";
97
83
  import "../../api/queries/watchers/getWatchers.es.js";
98
84
  import "../../api/queries/permissions/getPermissions.es.js";
99
85
  import "../../api/queries/grouping/getGrouping.es.js";
86
+ import "../../api/queries/versions/updateVersions.es.js";
87
+ import "../../api/queries/products/createProduct.es.js";
100
88
  import "../../context/RemoteModulesContext.es.js";
101
89
  import "../../../../_virtual/runtime.es.js";
102
90
  import "../../../../_virtual/semver.es.js";
@@ -112,6 +100,20 @@ import "../../context/PowerpackContext.es.js";
112
100
  import "react-redux";
113
101
  import "custom-protocol-check";
114
102
  import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
103
+ import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
104
+ import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
105
+ import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
106
+ import "../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
107
+ import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
108
+ import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
109
+ import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
110
+ import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
111
+ import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
112
+ import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
113
+ import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
114
+ import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
115
+ import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
116
+ import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
115
117
  import styled from "styled-components";
116
118
  import { SettingsPanel } from "../SettingsPanel/SettingsPanel.es.js";
117
119
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps, theme } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, className, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAO,MAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,WAAW,GAAG,YAAmB;AAClF,QAAM,EAAE,aAAa,YAAY,IAAI,iBAAiB;AAGpD,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAI,yBAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWA,kCAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,kCAAA,IAAC,eAAc,EAAA,UAAU,gBAAiB,CAAA;AACnD;"}
1
+ {"version":3,"file":"ProjectTableSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps, theme } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, className, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAO,MAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,WAAW,GAAG,YAAmB;AAClF,QAAM,EAAE,aAAa,YAAY,IAAI,iBAAiB;AAGpD,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAI,yBAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWA,kCAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,kCAAA,IAAC,eAAc,EAAA,UAAU,gBAAiB,CAAA;AACnD;"}
@@ -67,6 +67,8 @@ require("../../api/queries/users/updateUsers.cjs.js");
67
67
  require("../../api/queries/watchers/getWatchers.cjs.js");
68
68
  require("../../api/queries/permissions/getPermissions.cjs.js");
69
69
  require("../../api/queries/grouping/getGrouping.cjs.js");
70
+ require("../../api/queries/versions/updateVersions.cjs.js");
71
+ require("../../api/queries/products/createProduct.cjs.js");
70
72
  const ayonReactComponents = require("@ynput/ayon-react-components");
71
73
  const React = require("react");
72
74
  const reactToastify = require("react-toastify");
@@ -1 +1 @@
1
- {"version":3,"file":"EditReviewableDialog.cjs.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["useRef","useState","useEffect","useUpdateReviewableMutation","toast","jsx","Dialog","RenameTitle","Toolbar","Button","SaveButton","InputText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAWA,aAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,EAAE;AAG7CC,QAAAA,UAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAIC,aAAAA,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEVC,oBAAA,MAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnBA,oBAAA,MAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQD,2BAAAA,kBAAAA,IAACE,uBAAAA,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,0DACGC,6BACC,EAAA,UAAA;AAAA,QAAAH,iDAACI,oBAAAA,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DJ,2BAAA,kBAAA;AAAA,UAACK,oBAAA;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACL,2BAAAA,kBAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,2BAAA,kBAAA;AAAA,QAACM,oBAAA;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"EditReviewableDialog.cjs.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["useRef","useState","useEffect","useUpdateReviewableMutation","toast","jsx","Dialog","RenameTitle","Toolbar","Button","SaveButton","InputText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAWA,aAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,EAAE;AAG7CC,QAAAA,UAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAIC,aAAAA,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEVC,oBAAA,MAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnBA,oBAAA,MAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQD,2BAAAA,kBAAAA,IAACE,uBAAAA,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,0DACGC,6BACC,EAAA,UAAA;AAAA,QAAAH,iDAACI,oBAAAA,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DJ,2BAAA,kBAAA;AAAA,UAACK,oBAAA;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACL,2BAAAA,kBAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,2BAAA,kBAAA;AAAA,QAACM,oBAAA;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
@@ -66,6 +66,8 @@ import "../../api/queries/users/updateUsers.es.js";
66
66
  import "../../api/queries/watchers/getWatchers.es.js";
67
67
  import "../../api/queries/permissions/getPermissions.es.js";
68
68
  import "../../api/queries/grouping/getGrouping.es.js";
69
+ import "../../api/queries/versions/updateVersions.es.js";
70
+ import "../../api/queries/products/createProduct.es.js";
69
71
  import { Dialog, InputText, Toolbar, Button, SaveButton } from "@ynput/ayon-react-components";
70
72
  import { useRef, useState, useEffect } from "react";
71
73
  import { toast } from "react-toastify";
@@ -1 +1 @@
1
- {"version":3,"file":"EditReviewableDialog.es.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAG7C,YAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAI,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEV,YAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,YAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQA,kCAAAA,IAAC,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,+CACG,SACC,EAAA,UAAA;AAAA,QAAAA,sCAAC,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACA,kCAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"EditReviewableDialog.es.js","sources":["../../../../../src/components/ReviewablesList/EditReviewableDialog.tsx"],"sourcesContent":["import { useUpdateReviewableMutation } from '@shared/api'\nimport {\n Button,\n Dialog,\n DialogProps,\n InputText,\n SaveButton,\n Toolbar,\n} from '@ynput/ayon-react-components'\nimport { FC, FormEvent, useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport { RenameTitle } from './ReviewablesList.styled'\n\ninterface EditReviewableDialogProps extends DialogProps {\n label: string\n onClose: () => void\n activityId: string\n projectName: string\n versionId: string\n}\n\nconst EditReviewableDialog: FC<EditReviewableDialogProps> = ({\n onClose,\n label,\n projectName,\n versionId,\n activityId,\n ...props\n}) => {\n const labelRef = useRef<HTMLInputElement>(null)\n const [labelForm, setLabelForm] = useState('')\n\n // prefill the label form with current label\n useEffect(() => {\n if (!labelRef.current) return\n setLabelForm(label)\n // highlight the text\n labelRef.current?.select()\n\n return () => {\n setLabelForm('')\n }\n }, [label, labelRef.current])\n\n const [updateReviewable, { isLoading }] = useUpdateReviewableMutation()\n\n const handleUpdateReviewable = async () => {\n try {\n // update reviewable\n await updateReviewable({\n projectName,\n versionId,\n activityId,\n updateReviewablesRequest: {\n label: labelForm,\n },\n }).unwrap()\n\n toast.success('Reviewable updated successfully')\n\n // close dialog\n onClose()\n } catch (error) {\n console.error(error)\n toast.error('Failed to update reviewable')\n }\n }\n\n const handleFormSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (labelForm) {\n handleUpdateReviewable()\n }\n }\n\n const handleCancel = () => {\n // clear form\n setLabelForm('')\n // close dialog\n onClose()\n }\n\n return (\n <Dialog\n onClose={onClose}\n header={<RenameTitle>{`Editing label: ${label}`}</RenameTitle>}\n footer={\n <Toolbar>\n <Button label=\"Cancel\" onClick={handleCancel} variant=\"text\" />\n <SaveButton\n label=\"Save\"\n active={!!labelForm}\n saving={isLoading}\n type=\"submit\"\n form=\"reviewable-form\"\n />\n </Toolbar>\n }\n size=\"sm\"\n {...props}\n >\n <form onSubmit={handleFormSubmit} id=\"reviewable-form\">\n <InputText\n value={labelForm}\n onChange={(e) => setLabelForm(e.target.value)}\n placeholder=\"Enter a new label\"\n style={{ width: '100%' }}\n autoFocus\n onKeyDown={(e) =>\n e.key === 'Enter' && (e.ctrlKey || e.metaKey) && handleUpdateReviewable()\n }\n ref={labelRef}\n />\n </form>\n </Dialog>\n )\n}\n\nexport default EditReviewableDialog\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAG7C,YAAU,MAAM;;AACV,QAAA,CAAC,SAAS,QAAS;AACvB,iBAAa,KAAK;AAElB,mBAAS,YAAT,mBAAkB;AAElB,WAAO,MAAM;AACX,mBAAa,EAAE;AAAA,IACjB;AAAA,EACC,GAAA,CAAC,OAAO,SAAS,OAAO,CAAC;AAE5B,QAAM,CAAC,kBAAkB,EAAE,UAAW,CAAA,IAAI,4BAA4B;AAEtE,QAAM,yBAAyB,YAAY;AACrC,QAAA;AAEF,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,0BAA0B;AAAA,UACxB,OAAO;AAAA,QAAA;AAAA,MAEV,CAAA,EAAE,OAAO;AAEV,YAAM,QAAQ,iCAAiC;AAGvC,cAAA;AAAA,aACD,OAAO;AACd,cAAQ,MAAM,KAAK;AACnB,YAAM,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAE7C;AAEM,QAAA,mBAAmB,CAAC,MAAkC;AAC1D,MAAE,eAAe;AACjB,QAAI,WAAW;AACU,6BAAA;AAAA,IAAA;AAAA,EAE3B;AAEA,QAAM,eAAe,MAAM;AAEzB,iBAAa,EAAE;AAEP,YAAA;AAAA,EACV;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,QAAQA,kCAAAA,IAAC,aAAa,EAAA,UAAA,kBAAkB,KAAK,IAAG;AAAA,MAChD,+CACG,SACC,EAAA,UAAA;AAAA,QAAAA,sCAAC,UAAO,OAAM,UAAS,SAAS,cAAc,SAAQ,QAAO;AAAA,QAC7DA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAQ,CAAC,CAAC;AAAA,YACV,QAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACP,GACF;AAAA,MAEF,MAAK;AAAA,MACJ,GAAG;AAAA,MAEJ,UAACA,kCAAAA,IAAA,QAAA,EAAK,UAAU,kBAAkB,IAAG,mBACnC,UAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,UAC5C,aAAY;AAAA,UACZ,OAAO,EAAE,OAAO,OAAO;AAAA,UACvB,WAAS;AAAA,UACT,WAAW,CAAC,MACV,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,uBAAuB;AAAA,UAE1E,KAAK;AAAA,QAAA;AAAA,MAAA,EAET,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -68,6 +68,8 @@ require("../../api/queries/users/updateUsers.cjs.js");
68
68
  require("../../api/queries/watchers/getWatchers.cjs.js");
69
69
  require("../../api/queries/permissions/getPermissions.cjs.js");
70
70
  require("../../api/queries/grouping/getGrouping.cjs.js");
71
+ require("../../api/queries/versions/updateVersions.cjs.js");
72
+ require("../../api/queries/products/createProduct.cjs.js");
71
73
  const core = require("@dnd-kit/core");
72
74
  const sortable = require("@dnd-kit/sortable");
73
75
  require("@ynput/ayon-react-components");
@@ -96,6 +98,7 @@ require("../../context/pip/PiPWrapper.cjs.js");
96
98
  require("../../context/AddonProjectContext.cjs.js");
97
99
  require("../../context/AddonContext.cjs.js");
98
100
  require("../../context/PowerpackContext.cjs.js");
101
+ require("axios");
99
102
  const ReviewableCard = require("../ReviewableCard/ReviewableCard.cjs.js");
100
103
  const ReviewableProgressCard = require("../ReviewableProgressCard/ReviewableProgressCard.cjs.js");
101
104
  require("../FileThumbnail/FileThumbnail.cjs.js");
@@ -139,6 +142,11 @@ require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js"
139
142
  require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");
140
143
  require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");
141
144
  require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");
145
+ require("../../../../_virtual/runtime.cjs.js");
146
+ require("../../../../_virtual/semver.cjs.js");
147
+ require("react-redux");
148
+ require("custom-protocol-check");
149
+ require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
142
150
  require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
143
151
  require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
144
152
  require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
@@ -153,23 +161,17 @@ require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
153
161
  require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
154
162
  require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
155
163
  require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
156
- require("../../../../_virtual/runtime.cjs.js");
157
- require("../../../../_virtual/semver.cjs.js");
158
- require("react-redux");
159
- require("custom-protocol-check");
160
- require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
161
164
  require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");
162
165
  require("../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");
163
166
  require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");
167
+ require("../PlayableIcon/PlayableIcon.cjs.js");
164
168
  require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");
165
169
  require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");
166
170
  require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");
167
171
  require("../../containers/Actions/Actions.styled.cjs.js");
168
172
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
169
173
  require("../../containers/Actions/ActionIcon.cjs.js");
170
- require("../EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js");
171
- require("../ThumbnailUploader/ThumbnailUploader.styled.cjs.js");
172
- require("axios");
174
+ require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
173
175
  require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
174
176
  require("../EntityPath/EntityPath.styled.cjs.js");
175
177
  require("../EntityPath/SegmentProvider.cjs.js");
@@ -185,6 +187,8 @@ require("../AttributeEditor/components/MinMaxField.cjs.js");
185
187
  require("../EnumEditor/EnumEditor.styled.cjs.js");
186
188
  require("../SearchFilter/filterDates.cjs.js");
187
189
  require("../Badge/Badge.cjs.js");
190
+ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
191
+ require("../VersionUploader/context/VersionUploadContext.cjs.js");
188
192
  const ReviewablesList = ({
189
193
  projectName,
190
194
  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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"}
@@ -67,6 +67,8 @@ import "../../api/queries/users/updateUsers.es.js";
67
67
  import "../../api/queries/watchers/getWatchers.es.js";
68
68
  import "../../api/queries/permissions/getPermissions.es.js";
69
69
  import "../../api/queries/grouping/getGrouping.es.js";
70
+ import "../../api/queries/versions/updateVersions.es.js";
71
+ import "../../api/queries/products/createProduct.es.js";
70
72
  import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter, DragOverlay } from "@dnd-kit/core";
71
73
  import { sortableKeyboardCoordinates, SortableContext, verticalListSortingStrategy, arrayMove } from "@dnd-kit/sortable";
72
74
  import "@ynput/ayon-react-components";
@@ -95,6 +97,7 @@ import "../../context/pip/PiPWrapper.es.js";
95
97
  import "../../context/AddonProjectContext.es.js";
96
98
  import "../../context/AddonContext.es.js";
97
99
  import "../../context/PowerpackContext.es.js";
100
+ import "axios";
98
101
  import { ReviewableCard } from "../ReviewableCard/ReviewableCard.es.js";
99
102
  import { ReviewableProgressCard } from "../ReviewableProgressCard/ReviewableProgressCard.es.js";
100
103
  import "../FileThumbnail/FileThumbnail.es.js";
@@ -138,6 +141,11 @@ import "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
138
141
  import "../../containers/ProjectTreeTable/context/ProjectTableContext.es.js";
139
142
  import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
140
143
  import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
144
+ import "../../../../_virtual/runtime.es.js";
145
+ import "../../../../_virtual/semver.es.js";
146
+ import "react-redux";
147
+ import "custom-protocol-check";
148
+ import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
141
149
  import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
142
150
  import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
143
151
  import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
@@ -152,23 +160,17 @@ import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
152
160
  import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
153
161
  import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
154
162
  import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
155
- import "../../../../_virtual/runtime.es.js";
156
- import "../../../../_virtual/semver.es.js";
157
- import "react-redux";
158
- import "custom-protocol-check";
159
- import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
160
163
  import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
161
164
  import "../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.es.js";
162
165
  import "../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
166
+ import "../PlayableIcon/PlayableIcon.es.js";
163
167
  import "../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js";
164
168
  import "../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
165
169
  import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
166
170
  import "../../containers/Actions/Actions.styled.es.js";
167
171
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
168
172
  import "../../containers/Actions/ActionIcon.es.js";
169
- import "../EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js";
170
- import "../ThumbnailUploader/ThumbnailUploader.styled.es.js";
171
- import "axios";
173
+ import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
172
174
  import "../SimpleFormDialog/SimpleFormDialog.es.js";
173
175
  import "../EntityPath/EntityPath.styled.es.js";
174
176
  import "../EntityPath/SegmentProvider.es.js";
@@ -184,6 +186,8 @@ import "../AttributeEditor/components/MinMaxField.es.js";
184
186
  import "../EnumEditor/EnumEditor.styled.es.js";
185
187
  import "../SearchFilter/filterDates.es.js";
186
188
  import "../Badge/Badge.es.js";
189
+ import "../VersionUploader/components/UploadVersionDialog.es.js";
190
+ import "../VersionUploader/context/VersionUploadContext.es.js";
187
191
  const ReviewablesList = ({
188
192
  projectName,
189
193
  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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"}