@ynput/ayon-frontend-shared 0.2.16 → 0.2.18

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 (459) hide show
  1. package/dist/DetailsPanel.cjs.js +15 -13
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +15 -13
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +38 -34
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +20 -16
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/api.cjs.js +7 -0
  10. package/dist/api.cjs.js.map +1 -1
  11. package/dist/api.es.js +7 -0
  12. package/dist/api.es.js.map +1 -1
  13. package/dist/components.cjs.js +9 -4
  14. package/dist/components.cjs.js.map +1 -1
  15. package/dist/components.es.js +10 -5
  16. package/dist/components.es.js.map +1 -1
  17. package/dist/index.cjs.js +12 -10
  18. package/dist/index.cjs.js.map +1 -1
  19. package/dist/index.es.js +12 -10
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.cjs.js +1 -2
  22. package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.cjs.js.map +1 -1
  23. package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.es.js +1 -2
  24. package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.es.js.map +1 -1
  25. package/dist/shared/src/api/generated/graphql.cjs.js +26 -23
  26. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/graphql.es.js +26 -23
  28. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  29. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +4 -1
  30. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -1
  32. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  33. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +13 -1
  34. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  35. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +13 -1
  36. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  37. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
  38. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
  40. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  41. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +2 -0
  42. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  43. package/dist/shared/src/api/queries/overview/updateOverview.es.js +2 -0
  44. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
  46. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
  47. package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
  48. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
  49. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -0
  50. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  52. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +80 -0
  54. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
  55. package/dist/shared/src/api/queries/versions/updateVersions.es.js +80 -0
  56. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
  57. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
  58. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  59. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
  60. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  61. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +2 -0
  62. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  63. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +2 -0
  64. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  65. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
  66. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  67. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -1
  68. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
  70. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
  71. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
  72. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
  73. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +378 -120
  74. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
  75. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +378 -120
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
  77. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
  78. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
  79. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
  80. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
  81. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
  82. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
  83. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
  84. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
  85. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  86. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  87. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
  88. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  89. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js +2 -0
  90. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js.map +1 -1
  91. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js +2 -0
  92. package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js.map +1 -1
  93. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +5 -1
  94. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  95. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +5 -1
  96. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  97. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +23 -86
  98. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  99. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +23 -86
  100. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  101. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js +2 -0
  102. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js.map +1 -1
  103. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js +2 -0
  104. package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
  106. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
  108. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +12 -10
  110. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -10
  112. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +35 -109
  114. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  115. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +35 -109
  116. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  117. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +12 -10
  118. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  119. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -10
  120. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  121. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
  122. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
  123. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
  124. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
  125. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
  126. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  127. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
  128. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  129. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +28 -7
  130. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
  131. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +28 -7
  132. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
  133. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +12 -10
  134. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  135. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -10
  136. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  137. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
  138. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
  139. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
  140. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
  141. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +401 -0
  142. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
  143. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +401 -0
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
  145. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
  146. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
  147. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
  148. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
  149. package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
  150. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  151. package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
  152. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  153. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +12 -10
  154. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  155. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -10
  156. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  157. package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
  158. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
  160. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  161. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
  164. package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
  165. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +12 -10
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -10
  168. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +18 -14
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +18 -14
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +12 -10
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -10
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +12 -10
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -10
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +15 -11
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +15 -11
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
  190. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
  192. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
  194. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
  196. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  197. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +2 -2
  198. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +2 -2
  200. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
  201. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js +1 -1
  202. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js +1 -1
  204. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js.map +1 -1
  205. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
  206. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
  208. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
  210. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
  212. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +20 -11
  214. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +20 -11
  216. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +1 -1
  220. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +11 -10
  222. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -10
  224. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +3 -3
  226. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +3 -3
  228. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +1 -174
  230. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +2 -175
  232. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +212 -0
  234. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -0
  235. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +212 -0
  236. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -0
  237. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
  238. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
  240. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -185
  242. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +2 -186
  244. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +197 -0
  246. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -0
  247. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +197 -0
  248. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -0
  249. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js +1 -79
  250. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.es.js +2 -80
  252. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +84 -0
  254. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -0
  255. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +84 -0
  256. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -0
  257. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -277
  258. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +2 -278
  260. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +282 -0
  262. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -0
  263. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +282 -0
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -0
  265. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +3 -2
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +3 -2
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +2 -0
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +2 -0
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.es.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -0
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -0
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +8 -175
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +8 -175
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/{context/ProjectTableModulesContext.cjs.js → hooks/useProjectTableModules.cjs.js} +28 -48
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -0
  297. package/dist/shared/src/containers/ProjectTreeTable/{context/ProjectTableModulesContext.es.js → hooks/useProjectTableModules.es.js} +28 -48
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -0
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +4 -3
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -3
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +8 -5
  304. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +7 -4
  306. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
  308. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
  310. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
  319. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +13 -11
  320. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +13 -11
  322. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  323. package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
  324. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  325. package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
  326. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  327. package/dist/shared/src/context/DetailsPanelContext.cjs.js +2 -0
  328. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  329. package/dist/shared/src/context/DetailsPanelContext.es.js +2 -0
  330. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  331. package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
  332. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  333. package/dist/shared/src/context/PowerpackContext.es.js +2 -0
  334. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  335. package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
  336. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  337. package/dist/shared/src/context/RemoteModulesContext.es.js +3 -1
  338. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  339. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
  340. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  341. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
  342. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  343. package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
  344. package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
  345. package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
  346. package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
  347. package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
  348. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  349. package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
  350. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  351. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
  352. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  353. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
  354. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  355. package/dist/shared/src/hooks/useLoadModule.cjs.js +3 -3
  356. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  357. package/dist/shared/src/hooks/useLoadModule.es.js +3 -3
  358. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  359. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
  360. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  361. package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
  362. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  363. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
  364. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  365. package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
  366. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  367. package/dist/shared/src/util/productTypes.cjs.js +1 -0
  368. package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
  369. package/dist/shared/src/util/productTypes.es.js +1 -0
  370. package/dist/shared/src/util/productTypes.es.js.map +1 -1
  371. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
  372. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
  373. package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
  374. package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
  375. package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
  376. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
  377. package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
  378. package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
  379. package/dist/types/api/generated/graphql.d.ts +47 -36
  380. package/dist/types/api/queries/activities/getActivities.d.ts +4 -4
  381. package/dist/types/api/queries/activities/updateActivities.d.ts +8 -8
  382. package/dist/types/api/queries/entities/getEntity.d.ts +4 -4
  383. package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -4
  384. package/dist/types/api/queries/entities/updateEntity.d.ts +4 -4
  385. package/dist/types/api/queries/entityLists/getLists.d.ts +4 -4
  386. package/dist/types/api/queries/index.d.ts +2 -0
  387. package/dist/types/api/queries/overview/getOverview.d.ts +4 -4
  388. package/dist/types/api/queries/products/createProduct.d.ts +161 -0
  389. package/dist/types/api/queries/products/index.d.ts +1 -0
  390. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +4 -4
  391. package/dist/types/api/queries/users/getUsers.d.ts +4 -4
  392. package/dist/types/api/queries/versions/index.d.ts +1 -0
  393. package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
  394. package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
  395. package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
  396. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
  397. package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
  398. package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
  399. package/dist/types/components/ProjectTableSettings/ColumnItem.d.ts +1 -0
  400. package/dist/types/components/ProjectTableSettings/SortableColumnItem.d.ts +1 -0
  401. package/dist/types/components/ReviewablesList/index.d.ts +1 -0
  402. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
  403. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +1 -0
  404. package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
  405. package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
  406. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
  407. package/dist/types/components/VersionUploader/index.d.ts +2 -0
  408. package/dist/types/components/index.d.ts +2 -2
  409. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
  410. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
  411. package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +9 -2
  412. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +16 -16
  413. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsProvider.d.ts +9 -0
  414. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +6 -61
  415. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +60 -0
  416. package/dist/types/containers/ProjectTreeTable/context/SelectedRowsContext.d.ts +3 -8
  417. package/dist/types/containers/ProjectTreeTable/context/SelectedRowsProvider.d.ts +6 -0
  418. package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +2 -4
  419. package/dist/types/containers/ProjectTreeTable/context/SelectionCellsProvider.d.ts +4 -0
  420. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +4 -2
  421. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  422. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +1 -2
  423. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +2 -1
  424. package/dist/types/containers/ProjectTreeTable/hooks/useEntitiesMap.d.ts +1 -1
  425. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -3
  426. package/dist/types/containers/ProjectTreeTable/hooks/useGetGroupedFields.d.ts +1 -1
  427. package/dist/types/containers/ProjectTreeTable/{context/ProjectTableModulesContext.d.ts → hooks/useProjectTableModules.d.ts} +5 -12
  428. package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -10
  429. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +3 -3
  430. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  431. package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
  432. package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
  433. package/package.json +1 -1
  434. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
  435. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
  436. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
  437. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
  438. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
  439. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
  440. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
  441. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
  442. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
  443. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
  444. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
  445. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
  446. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
  447. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +0 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +0 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js +0 -33
  451. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js.map +0 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js +0 -33
  453. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js.map +0 -1
  454. package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
  455. package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
  456. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
  457. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
  458. package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
  459. package/dist/types/containers/ProjectTreeTable/context/ProjectTableSelectionContext.d.ts +0 -11
@@ -84,11 +84,13 @@ require("../../api/queries/users/updateUsers.cjs.js");
84
84
  require("../../api/queries/watchers/getWatchers.cjs.js");
85
85
  require("../../api/queries/permissions/getPermissions.cjs.js");
86
86
  require("../../api/queries/grouping/getGrouping.cjs.js");
87
+ require("../../api/queries/versions/updateVersions.cjs.js");
88
+ require("../../api/queries/products/createProduct.cjs.js");
87
89
  require("@dnd-kit/core");
88
90
  require("@dnd-kit/sortable");
89
91
  require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");
90
- require("axios");
91
92
  require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");
93
+ require("axios");
92
94
  require("../../context/RemoteModulesContext.cjs.js");
93
95
  require("../../context/DetailsPanelContext.cjs.js");
94
96
  require("../../context/ThumbnailUploaderContext.cjs.js");
@@ -133,17 +135,15 @@ require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");
133
135
  require("../Feed/Feed.styled.cjs.js");
134
136
  require("date-fns");
135
137
  require("../ProjectTreeTable/ProjectTreeTable.cjs.js");
138
+ require("../ProjectTreeTable/context/CellEditingContext.cjs.js");
139
+ require("../ProjectTreeTable/context/ClipboardContext.cjs.js");
140
+ require("@tanstack/react-table");
136
141
  require("../ProjectTreeTable/context/SelectionCellsContext.cjs.js");
142
+ require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");
137
143
  require("../ProjectTreeTable/context/ProjectTableContext.cjs.js");
138
144
  require("../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");
139
145
  require("../ProjectTreeTable/context/SelectedRowsContext.cjs.js");
140
- require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");
141
- require("../ProjectTreeTable/context/CellEditingContext.cjs.js");
142
- require("../ProjectTreeTable/context/ClipboardContext.cjs.js");
143
- require("../ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
144
146
  require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");
145
- require("../ProjectTreeTable/context/ProjectTableModulesContext.cjs.js");
146
- require("@tanstack/react-table");
147
147
  require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
148
148
  require("../ProjectTreeTable/widgets/DateWidget.cjs.js");
149
149
  require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");
@@ -157,12 +157,13 @@ require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
157
157
  require("../ProjectTreeTable/components/SelectionCell.cjs.js");
158
158
  require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");
159
159
  require("../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
160
- const versionsToRepresentations = require("./versionsToRepresentations.cjs.js");
161
- require("../DetailsPanel/DetailsPanel.styled.cjs.js");
162
160
  require("../../../../_virtual/runtime.cjs.js");
163
161
  require("../../../../_virtual/semver.cjs.js");
164
162
  require("react-redux");
165
163
  require("custom-protocol-check");
164
+ require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
165
+ const versionsToRepresentations = require("./versionsToRepresentations.cjs.js");
166
+ require("../DetailsPanel/DetailsPanel.styled.cjs.js");
166
167
  require("../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");
167
168
  require("../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");
168
169
  require("../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");
@@ -171,8 +172,7 @@ require("../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js
171
172
  require("../Actions/Actions.styled.cjs.js");
172
173
  require("../Actions/ActionsDropdown/ActionsDropdown.cjs.js");
173
174
  require("../Actions/ActionIcon.cjs.js");
174
- require("../../components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js");
175
- require("../../components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js");
175
+ require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
176
176
  require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");
177
177
  require("../../components/EntityPath/EntityPath.styled.cjs.js");
178
178
  require("../../components/EntityPath/SegmentProvider.cjs.js");
@@ -188,6 +188,8 @@ require("../../components/AttributeEditor/components/MinMaxField.cjs.js");
188
188
  require("../../components/EnumEditor/EnumEditor.styled.cjs.js");
189
189
  require("../../components/SearchFilter/filterDates.cjs.js");
190
190
  require("../../components/Badge/Badge.cjs.js");
191
+ require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");
192
+ require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");
191
193
  const columns = [
192
194
  {
193
195
  field: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkBA,MAAQ,QAAA,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAOD,MAAAA,QAAQ,MAAM;AAElB,WAAAE,YAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAIC,qBAAA,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAC,iDAACC,oBAAAA,YACC,EAAA,UAAAD,2BAAA,kBAAA;AAAA,MAACE,cAAA;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAF,2BAAA,kBAAA;AAAA,YAACG,WAAA;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCH,2BAAA,kBAAA;AAAA,MAACI,cAAA;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;;"}
1
+ {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":"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"}
@@ -82,11 +82,13 @@ import "../../api/queries/users/updateUsers.es.js";
82
82
  import "../../api/queries/watchers/getWatchers.es.js";
83
83
  import "../../api/queries/permissions/getPermissions.es.js";
84
84
  import "../../api/queries/grouping/getGrouping.es.js";
85
+ import "../../api/queries/versions/updateVersions.es.js";
86
+ import "../../api/queries/products/createProduct.es.js";
85
87
  import "@dnd-kit/core";
86
88
  import "@dnd-kit/sortable";
87
89
  import "../../components/ReviewablesList/ReviewablesList.styled.es.js";
88
- import "axios";
89
90
  import "../../components/ReviewablesList/ReviewablesUpload.styled.es.js";
91
+ import "axios";
90
92
  import "../../context/RemoteModulesContext.es.js";
91
93
  import "../../context/DetailsPanelContext.es.js";
92
94
  import "../../context/ThumbnailUploaderContext.es.js";
@@ -131,17 +133,15 @@ import "../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
131
133
  import "../Feed/Feed.styled.es.js";
132
134
  import "date-fns";
133
135
  import "../ProjectTreeTable/ProjectTreeTable.es.js";
136
+ import "../ProjectTreeTable/context/CellEditingContext.es.js";
137
+ import "../ProjectTreeTable/context/ClipboardContext.es.js";
138
+ import "@tanstack/react-table";
134
139
  import "../ProjectTreeTable/context/SelectionCellsContext.es.js";
140
+ import "../ProjectTreeTable/context/ColumnSettingsContext.es.js";
135
141
  import "../ProjectTreeTable/context/ProjectTableContext.es.js";
136
142
  import "../ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
137
143
  import "../ProjectTreeTable/context/SelectedRowsContext.es.js";
138
- import "../ProjectTreeTable/context/ColumnSettingsContext.es.js";
139
- import "../ProjectTreeTable/context/CellEditingContext.es.js";
140
- import "../ProjectTreeTable/context/ClipboardContext.es.js";
141
- import "../ProjectTreeTable/context/ProjectTableSelectionContext.es.js";
142
144
  import "../ProjectTreeTable/context/ProjectDataContext.es.js";
143
- import "../ProjectTreeTable/context/ProjectTableModulesContext.es.js";
144
- import "@tanstack/react-table";
145
145
  import "../ProjectTreeTable/widgets/CollapsedWidget.es.js";
146
146
  import "../ProjectTreeTable/widgets/DateWidget.es.js";
147
147
  import "../ProjectTreeTable/widgets/EnumWidget.es.js";
@@ -155,12 +155,13 @@ import "../ProjectTreeTable/ProjectTreeTable.styled.es.js";
155
155
  import "../ProjectTreeTable/components/SelectionCell.es.js";
156
156
  import "../ProjectTreeTable/components/RowSelectionHeader.es.js";
157
157
  import "../ProjectTreeTable/widgets/LoadMoreWidget.es.js";
158
- import versionsToRepresentations from "./versionsToRepresentations.es.js";
159
- import "../DetailsPanel/DetailsPanel.styled.es.js";
160
158
  import "../../../../_virtual/runtime.es.js";
161
159
  import "../../../../_virtual/semver.es.js";
162
160
  import "react-redux";
163
161
  import "custom-protocol-check";
162
+ import "../ProjectTreeTable/components/GroupSettingsFallback.es.js";
163
+ import versionsToRepresentations from "./versionsToRepresentations.es.js";
164
+ import "../DetailsPanel/DetailsPanel.styled.es.js";
164
165
  import "../DetailsPanel/FeedFilters/FeedFilters.styled.es.js";
165
166
  import "../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
166
167
  import "../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -169,8 +170,7 @@ import "../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
169
170
  import "../Actions/Actions.styled.es.js";
170
171
  import "../Actions/ActionsDropdown/ActionsDropdown.es.js";
171
172
  import "../Actions/ActionIcon.es.js";
172
- import "../../components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js";
173
- import "../../components/ThumbnailUploader/ThumbnailUploader.styled.es.js";
173
+ import "../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
174
174
  import "../../components/SimpleFormDialog/SimpleFormDialog.es.js";
175
175
  import "../../components/EntityPath/EntityPath.styled.es.js";
176
176
  import "../../components/EntityPath/SegmentProvider.es.js";
@@ -186,6 +186,8 @@ import "../../components/AttributeEditor/components/MinMaxField.es.js";
186
186
  import "../../components/EnumEditor/EnumEditor.styled.es.js";
187
187
  import "../../components/SearchFilter/filterDates.es.js";
188
188
  import "../../components/Badge/Badge.es.js";
189
+ import "../../components/VersionUploader/components/UploadVersionDialog.es.js";
190
+ import "../../components/VersionUploader/context/VersionUploadContext.es.js";
189
191
  const columns = [
190
192
  {
191
193
  field: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"RepresentationsList.es.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkB,QAAQ,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAI,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAO,QAAQ,MAAM;AAElB,WAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAI,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAC,sCAAC,YACC,EAAA,UAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"RepresentationsList.es.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkB,QAAQ,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAI,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAO,QAAQ,MAAM;AAElB,WAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAI,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAC,sCAAC,YACC,EAAA,UAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;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 React = require("react");
72
74
  const AddonProjectContext = React.createContext(void 0);
73
75
  const AddonProjectProvider = ({
@@ -1 +1 @@
1
- {"version":3,"file":"AddonProjectContext.cjs.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["import { ProjectModel, useGetProjectQuery } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport router from 'react-router-dom'\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n}\n\nexport type RouterTypes = {\n useParams: typeof router.useParams\n useNavigate: typeof router.useNavigate\n useLocation: typeof router.useLocation\n useSearchParams: typeof router.useSearchParams\n}\n\nexport interface RemoteAddonProjectProps {\n projectName: string\n router: RouterTypes\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextProps extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n ...props\n}: AddonProjectContextProps) => {\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n return (\n <AddonProjectContext.Provider value={{ ...props, projectName, project }}>\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["createContext","useGetProjectQuery","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,sBAAsBA,oBAAmD,MAAS;AAEjF,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAgC;AACxB,QAAA,EAAE,MAAM,QAAA,IAAYC,WAAA;AAAA,IACxB,EAAE,YAAmC;AAAA,IACrC,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AAEE,SAAAC,iDAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,GAAG,OAAO,aAAa,QAAQ,GACnE,SACH,CAAA;AAEJ;AAEO,MAAM,yBAAyB,MAAM;AACpC,QAAA,UAAUC,iBAAW,mBAAmB;AAC9C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,kEAAkE;AAAA,EAAA;AAE7E,SAAA;AACT;;;"}
1
+ {"version":3,"file":"AddonProjectContext.cjs.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["import { ProjectModel, useGetProjectQuery } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport router from 'react-router-dom'\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n}\n\nexport type RouterTypes = {\n useParams: typeof router.useParams\n useNavigate: typeof router.useNavigate\n useLocation: typeof router.useLocation\n useSearchParams: typeof router.useSearchParams\n}\n\nexport interface RemoteAddonProjectProps {\n projectName: string\n router: RouterTypes\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextProps extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n ...props\n}: AddonProjectContextProps) => {\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n return (\n <AddonProjectContext.Provider value={{ ...props, projectName, project }}>\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["createContext","useGetProjectQuery","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,sBAAsBA,oBAAmD,MAAS;AAEjF,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAgC;AACxB,QAAA,EAAE,MAAM,QAAA,IAAYC,WAAA;AAAA,IACxB,EAAE,YAAmC;AAAA,IACrC,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AAEE,SAAAC,iDAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,GAAG,OAAO,aAAa,QAAQ,GACnE,SACH,CAAA;AAEJ;AAEO,MAAM,yBAAyB,MAAM;AACpC,QAAA,UAAUC,iBAAW,mBAAmB;AAC9C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,kEAAkE;AAAA,EAAA;AAE7E,SAAA;AACT;;;"}
@@ -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 { createContext, useContext } from "react";
70
72
  const AddonProjectContext = createContext(void 0);
71
73
  const AddonProjectProvider = ({
@@ -1 +1 @@
1
- {"version":3,"file":"AddonProjectContext.es.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["import { ProjectModel, useGetProjectQuery } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport router from 'react-router-dom'\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n}\n\nexport type RouterTypes = {\n useParams: typeof router.useParams\n useNavigate: typeof router.useNavigate\n useLocation: typeof router.useLocation\n useSearchParams: typeof router.useSearchParams\n}\n\nexport interface RemoteAddonProjectProps {\n projectName: string\n router: RouterTypes\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextProps extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n ...props\n}: AddonProjectContextProps) => {\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n return (\n <AddonProjectContext.Provider value={{ ...props, projectName, project }}>\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,sBAAsB,cAAmD,MAAS;AAEjF,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAgC;AACxB,QAAA,EAAE,MAAM,QAAA,IAAY;AAAA,IACxB,EAAE,YAAmC;AAAA,IACrC,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AAEE,SAAAA,sCAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,GAAG,OAAO,aAAa,QAAQ,GACnE,SACH,CAAA;AAEJ;AAEO,MAAM,yBAAyB,MAAM;AACpC,QAAA,UAAU,WAAW,mBAAmB;AAC9C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,kEAAkE;AAAA,EAAA;AAE7E,SAAA;AACT;"}
1
+ {"version":3,"file":"AddonProjectContext.es.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["import { ProjectModel, useGetProjectQuery } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport router from 'react-router-dom'\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n}\n\nexport type RouterTypes = {\n useParams: typeof router.useParams\n useNavigate: typeof router.useNavigate\n useLocation: typeof router.useLocation\n useSearchParams: typeof router.useSearchParams\n}\n\nexport interface RemoteAddonProjectProps {\n projectName: string\n router: RouterTypes\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextProps extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n ...props\n}: AddonProjectContextProps) => {\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n return (\n <AddonProjectContext.Provider value={{ ...props, projectName, project }}>\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,sBAAsB,cAAmD,MAAS;AAEjF,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAgC;AACxB,QAAA,EAAE,MAAM,QAAA,IAAY;AAAA,IACxB,EAAE,YAAmC;AAAA,IACrC,EAAE,MAAM,CAAC,YAAY;AAAA,EACvB;AAEE,SAAAA,sCAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,GAAG,OAAO,aAAa,QAAQ,GACnE,SACH,CAAA;AAEJ;AAEO,MAAM,yBAAyB,MAAM;AACpC,QAAA,UAAU,WAAW,mBAAmB;AAC9C,MAAI,CAAC,SAAS;AACN,UAAA,IAAI,MAAM,kEAAkE;AAAA,EAAA;AAE7E,SAAA;AACT;"}
@@ -73,6 +73,8 @@ require("../api/queries/users/updateUsers.cjs.js");
73
73
  require("../api/queries/watchers/getWatchers.cjs.js");
74
74
  require("../api/queries/permissions/getPermissions.cjs.js");
75
75
  require("../api/queries/grouping/getGrouping.cjs.js");
76
+ require("../api/queries/versions/updateVersions.cjs.js");
77
+ require("../api/queries/products/createProduct.cjs.js");
76
78
  require("lodash");
77
79
  require("react-toastify");
78
80
  require("./ThumbnailUploaderContext.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsPanelContext.cjs.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, ReactNode, useState } from 'react'\nimport { useLocalStorage } from '@shared/hooks'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport type { UserModel } from '@shared/api'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\n\nexport type FeedFilters = 'activity' | 'comments' | 'versions' | 'checklists'\n\nexport type DetailsPanelTab = FeedFilters | 'attribs' | 'files'\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n setTab: (scope: string, tab: DetailsPanelTab) => void\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'activity',\n ...forwardedProps\n}) => {\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n if (tabsByScope[scope]) {\n return tabsByScope[scope]\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n const setTab = useCallback(\n (scope: string, tab: DetailsPanelTab) => {\n // Create a new state object based on current tabsByScope\n const newState = { ...tabsByScope }\n newState[scope] = tab\n\n // Update the state with the new object\n setTabsByScope(newState)\n },\n [tabsByScope, setTabsByScope],\n )\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n setHighlightedActivities([])\n }, [])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n setTab,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n feedAnnotations,\n setFeedAnnotations,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getTabForScope, setTab, getOpenForScope, setPanelOpen } = useDetailsPanelContext()\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab: getTabForScope(scope),\n setTab: (tab: DetailsPanelTab) => setTab(scope, tab),\n isFeed: ['activity', 'comments', 'versions', 'checklists'].includes(getTabForScope(scope)),\n }\n}\n"],"names":["createContext","useState","useCallback","useLocalStorage","pip","jsx","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"DetailsPanelContext.cjs.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, ReactNode, useState } from 'react'\nimport { useLocalStorage } from '@shared/hooks'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport type { UserModel } from '@shared/api'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\n\nexport type FeedFilters = 'activity' | 'comments' | 'versions' | 'checklists'\n\nexport type DetailsPanelTab = FeedFilters | 'attribs' | 'files'\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n setTab: (scope: string, tab: DetailsPanelTab) => void\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'activity',\n ...forwardedProps\n}) => {\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n if (tabsByScope[scope]) {\n return tabsByScope[scope]\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n const setTab = useCallback(\n (scope: string, tab: DetailsPanelTab) => {\n // Create a new state object based on current tabsByScope\n const newState = { ...tabsByScope }\n newState[scope] = tab\n\n // Update the state with the new object\n setTabsByScope(newState)\n },\n [tabsByScope, setTabsByScope],\n )\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n setHighlightedActivities([])\n }, [])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n setTab,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n feedAnnotations,\n setFeedAnnotations,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getTabForScope, setTab, getOpenForScope, setPanelOpen } = useDetailsPanelContext()\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab: getTabForScope(scope),\n setTab: (tab: DetailsPanelTab) => setTab(scope, tab),\n isFeed: ['activity', 'comments', 'versions', 'checklists'].includes(getTabForScope(scope)),\n }\n}\n"],"names":["createContext","useState","useCallback","useLocalStorage","pip","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFA,MAAM,sBAAsBA,oBAAmD,MAAS;AAQjF,MAAM,uBAA4D,CAAC;AAAA,EACxE;AAAA,EACA,aAAa;AAAA,EACb,GAAG;AACL,MAAM;AAEJ,QAAM,CAAC,kBAAkB,mBAAmB,IAAIC,MAAAA,SAA2B,CAAA,CAAE;AAC7E,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,MAAAA,SAAoC,CAAA,CAAE;AAGpF,QAAM,kBAAkBC,MAAA;AAAA,IACtB,CAAC,UAA2B;AAEtB,UAAA,iBAAiB,KAAK,GAAG;AAC3B,eAAO,iBAAiB,KAAK;AAAA,MAAA;AAIxB,aAAA;AAAA,IACT;AAAA,IACA,CAAC,gBAAgB;AAAA,EACnB;AAEA,QAAM,eAAeA,MAAA;AAAA,IACnB,CAAC,OAAe,WAAoB;AAE5B,YAAA,WAAW,EAAE,GAAG,iBAAiB;AACvC,eAAS,KAAK,IAAI;AAGlB,0BAAoB,QAAQ;AAAA,IAC9B;AAAA,IACA,CAAC,gBAAgB;AAAA,EACnB;AAGM,QAAA,CAAC,aAAa,cAAc,IAAIC,gBAAA;AAAA,IACpC;AAAA,IACA,CAAA;AAAA,EACF;AAGA,QAAM,iBAAiBD,MAAA;AAAA,IACrB,CAAC,UAAmC;AAE9B,UAAA,YAAY,KAAK,GAAG;AACtB,eAAO,YAAY,KAAK;AAAA,MAAA;AAInB,aAAA;AAAA,IACT;AAAA,IACA,CAAC,aAAa,UAAU;AAAA,EAC1B;AAGA,QAAM,SAASA,MAAA;AAAA,IACb,CAAC,OAAe,QAAyB;AAEjC,YAAA,WAAW,EAAE,GAAG,YAAY;AAClC,eAAS,KAAK,IAAI;AAGlB,qBAAe,QAAQ;AAAA,IACzB;AAAA,IACA,CAAC,aAAa,cAAc;AAAA,EAC9B;AAGA,QAAM,CAAC,UAAU,WAAW,IAAID,MAAAA,SAA0B,IAAI;AAGxD,QAAA,eAAeC,kBAAqD,CAAC,WAAW;AACpF,gBAAY,MAAM;AAAA,EACpB,GAAG,EAAE;AAGC,QAAA,gBAAgBA,MAAAA,YAAY,MAAM;AACtC,gBAAY,IAAI;AAChB,6BAAyB,CAAA,CAAE;AAAA,EAC7B,GAAG,EAAE;AAEL,QAAM,CAAC,KAAK,MAAM,IAAID,MAAAA,SAAiC,IAAI;AAErD,QAAA,UAAUC,kBAAY,CAACE,SAAyB;AACpD,WAAOA,IAAG;AAAA,EACZ,GAAG,EAAE;AACC,QAAA,WAAWF,MAAAA,YAAY,MAAM;AACjC,WAAO,IAAI;AAAA,EACb,GAAG,EAAE;AAEL,QAAM,CAAC,uBAAuB,wBAAwB,IAAID,MAAAA,SAAmB,CAAA,CAAE;AAE/E,QAAM,QAAQ;AAAA;AAAA,IAEZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AAEA,SAAQI,2BAAAA,kBAAAA,IAAA,oBAAoB,UAApB,EAA6B,OAAe,SAAS,CAAA;AAC/D;AAGO,MAAM,yBAAyB,MAA+B;AAC7D,QAAA,UAAUC,iBAAW,mBAAmB;AAC9C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,uDAAuD;AAAA,EAAA;AAElE,SAAA;AACT;AAGa,MAAA,wBAAwB,CAAC,UAAkB;AACtD,QAAM,EAAE,gBAAgB,QAAQ,iBAAiB,aAAA,IAAiB,uBAAuB;AAElF,SAAA;AAAA,IACL,QAAQ,gBAAgB,KAAK;AAAA,IAC7B,SAAS,CAAC,WAAoB,aAAa,OAAO,MAAM;AAAA,IACxD,YAAY,eAAe,KAAK;AAAA,IAChC,QAAQ,CAAC,QAAyB,OAAO,OAAO,GAAG;AAAA,IACnD,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,EAAE,SAAS,eAAe,KAAK,CAAC;AAAA,EAC3F;AACF;;;;"}
@@ -71,6 +71,8 @@ import "../api/queries/users/updateUsers.es.js";
71
71
  import "../api/queries/watchers/getWatchers.es.js";
72
72
  import "../api/queries/permissions/getPermissions.es.js";
73
73
  import "../api/queries/grouping/getGrouping.es.js";
74
+ import "../api/queries/versions/updateVersions.es.js";
75
+ import "../api/queries/products/createProduct.es.js";
74
76
  import "lodash";
75
77
  import "react-toastify";
76
78
  import "./ThumbnailUploaderContext.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsPanelContext.es.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, ReactNode, useState } from 'react'\nimport { useLocalStorage } from '@shared/hooks'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport type { UserModel } from '@shared/api'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\n\nexport type FeedFilters = 'activity' | 'comments' | 'versions' | 'checklists'\n\nexport type DetailsPanelTab = FeedFilters | 'attribs' | 'files'\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n setTab: (scope: string, tab: DetailsPanelTab) => void\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'activity',\n ...forwardedProps\n}) => {\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n if (tabsByScope[scope]) {\n return tabsByScope[scope]\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n const setTab = useCallback(\n (scope: string, tab: DetailsPanelTab) => {\n // Create a new state object based on current tabsByScope\n const newState = { ...tabsByScope }\n newState[scope] = tab\n\n // Update the state with the new object\n setTabsByScope(newState)\n },\n [tabsByScope, setTabsByScope],\n )\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n setHighlightedActivities([])\n }, [])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n setTab,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n feedAnnotations,\n setFeedAnnotations,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getTabForScope, setTab, getOpenForScope, setPanelOpen } = useDetailsPanelContext()\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab: getTabForScope(scope),\n setTab: (tab: DetailsPanelTab) => setTab(scope, tab),\n isFeed: ['activity', 'comments', 'versions', 'checklists'].includes(getTabForScope(scope)),\n }\n}\n"],"names":["pip","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"DetailsPanelContext.es.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useCallback, ReactNode, useState } from 'react'\nimport { useLocalStorage } from '@shared/hooks'\nimport { DetailsPanelEntityType } from '@shared/api'\nimport type { UserModel } from '@shared/api'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\n\nexport type FeedFilters = 'activity' | 'comments' | 'versions' | 'checklists'\n\nexport type DetailsPanelTab = FeedFilters | 'attribs' | 'files'\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n setTab: (scope: string, tab: DetailsPanelTab) => void\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'activity',\n ...forwardedProps\n}) => {\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n if (tabsByScope[scope]) {\n return tabsByScope[scope]\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n const setTab = useCallback(\n (scope: string, tab: DetailsPanelTab) => {\n // Create a new state object based on current tabsByScope\n const newState = { ...tabsByScope }\n newState[scope] = tab\n\n // Update the state with the new object\n setTabsByScope(newState)\n },\n [tabsByScope, setTabsByScope],\n )\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n setHighlightedActivities([])\n }, [])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n setTab,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n feedAnnotations,\n setFeedAnnotations,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getTabForScope, setTab, getOpenForScope, setPanelOpen } = useDetailsPanelContext()\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab: getTabForScope(scope),\n setTab: (tab: DetailsPanelTab) => setTab(scope, tab),\n isFeed: ['activity', 'comments', 'versions', 'checklists'].includes(getTabForScope(scope)),\n }\n}\n"],"names":["pip","jsx"],"mappings":"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"}
@@ -72,6 +72,8 @@ require("../api/queries/users/updateUsers.cjs.js");
72
72
  require("../api/queries/watchers/getWatchers.cjs.js");
73
73
  require("../api/queries/permissions/getPermissions.cjs.js");
74
74
  require("../api/queries/grouping/getGrouping.cjs.js");
75
+ require("../api/queries/versions/updateVersions.cjs.js");
76
+ require("../api/queries/products/createProduct.cjs.js");
75
77
  require("lodash");
76
78
  require("react-toastify");
77
79
  require("./RemoteModulesContext.cjs.js");
@@ -1 +1 @@
1
- {"version":3,"file":"PowerpackContext.cjs.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\ntype PowerpackDialog = {\n label: string\n description: string\n bullet: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialog\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialog | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({ children }: { children: ReactNode }) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useLoadModule","useEffect","useMemo","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmBA,oBAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC,EAAE,eAAwC;AAC1E,QAAM,CAAC,mBAAmB,kBAAkB,IAC1CC,MAAAA,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAIC,cAAAA,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC/B,UAAI,UAAU;AACR,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EAAA,GACZ,CAAC,UAAU,iBAAiB,CAAC;AAEhC,QAAM,QAAQC,MAAA;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQC,2BAAAA,kBAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAUC,iBAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;;;;"}
1
+ {"version":3,"file":"PowerpackContext.cjs.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\ntype PowerpackDialog = {\n label: string\n description: string\n bullet: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialog\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialog | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({ children }: { children: ReactNode }) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["createContext","useState","useLoadModule","useEffect","useMemo","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmBA,oBAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC,EAAE,eAAwC;AAC1E,QAAM,CAAC,mBAAmB,kBAAkB,IAC1CC,MAAAA,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAIC,cAAAA,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC/B,UAAI,UAAU;AACR,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EAAA,GACZ,CAAC,UAAU,iBAAiB,CAAC;AAEhC,QAAM,QAAQC,MAAA;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQC,2BAAAA,kBAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAUC,iBAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;;;;"}
@@ -70,6 +70,8 @@ import "../api/queries/users/updateUsers.es.js";
70
70
  import "../api/queries/watchers/getWatchers.es.js";
71
71
  import "../api/queries/permissions/getPermissions.es.js";
72
72
  import "../api/queries/grouping/getGrouping.es.js";
73
+ import "../api/queries/versions/updateVersions.es.js";
74
+ import "../api/queries/products/createProduct.es.js";
73
75
  import "lodash";
74
76
  import "react-toastify";
75
77
  import "./RemoteModulesContext.es.js";
@@ -1 +1 @@
1
- {"version":3,"file":"PowerpackContext.es.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\ntype PowerpackDialog = {\n label: string\n description: string\n bullet: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialog\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialog | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({ children }: { children: ReactNode }) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmB,cAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC,EAAE,eAAwC;AAC1E,QAAM,CAAC,mBAAmB,kBAAkB,IAC1C,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAI,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAED,YAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC/B,UAAI,UAAU;AACR,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EAAA,GACZ,CAAC,UAAU,iBAAiB,CAAC;AAEhC,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQA,kCAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAU,WAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;"}
1
+ {"version":3,"file":"PowerpackContext.es.js","sources":["../../../../src/context/PowerpackContext.tsx"],"sourcesContent":["import { useLoadModule } from '@shared/hooks'\nimport { createContext, useContext, ReactNode, useState, useEffect, useMemo } from 'react'\n\nexport type PowerpackFeature =\n | 'slicer'\n | 'annotations'\n | 'releases'\n | 'advancedFilters'\n | 'listAttributes'\n | 'groupAttributes'\ntype PowerpackDialog = {\n label: string\n description: string\n bullet: string\n}\n\nexport const powerpackFeatures: {\n [key in PowerpackFeature]: PowerpackDialog\n} = {\n slicer: {\n label: 'Slicer',\n description: 'Advanced filtering system for project organization.',\n bullet: 'Powerful project filtering tools',\n },\n annotations: {\n label: 'Annotations',\n description: 'Create detailed visual feedback directly on media files.',\n bullet: 'Advanced media review tools',\n },\n releases: {\n label: 'Release History',\n description: 'Access and download the complete archive of releases',\n bullet: 'Full release archive access',\n },\n advancedFilters: {\n label: 'Advanced Filters',\n description: 'Customize your view and find your data with powerful filtering options',\n bullet: 'Advanced filtering options',\n },\n listAttributes: {\n label: 'List Attributes',\n description: 'Add custom attributes to your lists for better collaboration and organization.',\n bullet: 'Custom attributes for lists',\n },\n groupAttributes: {\n label: 'Group Attributes',\n description: 'Group tasks by assignees, status, or other attributes for better organization.',\n bullet: 'Group tasks by attributes',\n },\n}\nexport type PowerpackContextType = {\n selectedPowerPack: null | PowerpackFeature\n setPowerpackDialog: (open: PowerpackContextType['selectedPowerPack']) => void\n powerpackDialog: PowerpackDialog | null\n powerLicense: boolean\n}\n\nconst PowerpackContext = createContext<PowerpackContextType | undefined>(undefined)\n\nexport const PowerpackProvider = ({ children }: { children: ReactNode }) => {\n const [selectedPowerPack, setPowerpackDialog] =\n useState<PowerpackContextType['selectedPowerPack']>(null)\n\n const resolvePowerPackDialog = (selected: PowerpackContextType['selectedPowerPack']) => {\n if (!selected) return null\n return powerpackFeatures[selected]\n }\n\n // check license state\n const [powerLicense, setPowerLicense] = useState(false)\n\n // Define the type for the license check function\n type CheckPowerLicenseFunction = () => Promise<boolean>\n\n // Fallback function that returns false when the module isn't loaded\n const fallbackCheckLicense: CheckPowerLicenseFunction = async () => false\n\n // Load the remote module\n const [checkPowerLicense, { isLoaded, isLoading }] = useLoadModule<CheckPowerLicenseFunction>({\n addon: 'powerpack',\n remote: 'license',\n module: 'checkPowerLicense',\n fallback: fallbackCheckLicense,\n })\n\n useEffect(() => {\n const checkLicense = async () => {\n if (isLoaded) {\n try {\n const hasPowerLicense = await checkPowerLicense()\n setPowerLicense(hasPowerLicense)\n } catch (error) {\n console.error('Error checking power license:', error)\n setPowerLicense(false)\n }\n }\n }\n\n checkLicense()\n }, [isLoaded, checkPowerLicense])\n\n const value = useMemo(\n () => ({\n powerLicense: powerLicense,\n selectedPowerPack,\n setPowerpackDialog,\n powerpackDialog: resolvePowerPackDialog(selectedPowerPack),\n }),\n [powerLicense, selectedPowerPack, setPowerpackDialog],\n )\n\n return <PowerpackContext.Provider value={value}>{children}</PowerpackContext.Provider>\n}\n\nexport const usePowerpack = () => {\n const context = useContext(PowerpackContext)\n if (context === undefined) {\n throw new Error('usePowerpack must be used within a PowerpackProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,oBAET;AAAA,EACF,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,EAAA;AAEZ;AAQA,MAAM,mBAAmB,cAAgD,MAAS;AAE3E,MAAM,oBAAoB,CAAC,EAAE,eAAwC;AAC1E,QAAM,CAAC,mBAAmB,kBAAkB,IAC1C,SAAoD,IAAI;AAEpD,QAAA,yBAAyB,CAAC,aAAwD;AAClF,QAAA,CAAC,SAAiB,QAAA;AACtB,WAAO,kBAAkB,QAAQ;AAAA,EACnC;AAGA,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAMtD,QAAM,uBAAkD,YAAY;AAGpE,QAAM,CAAC,mBAAmB,EAAE,UAAU,UAAW,CAAA,IAAI,cAAyC;AAAA,IAC5F,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EAAA,CACX;AAED,YAAU,MAAM;AACd,UAAM,eAAe,YAAY;AAC/B,UAAI,UAAU;AACR,YAAA;AACI,gBAAA,kBAAkB,MAAM,kBAAkB;AAChD,0BAAgB,eAAe;AAAA,iBACxB,OAAO;AACN,kBAAA,MAAM,iCAAiC,KAAK;AACpD,0BAAgB,KAAK;AAAA,QAAA;AAAA,MACvB;AAAA,IAEJ;AAEa,iBAAA;AAAA,EAAA,GACZ,CAAC,UAAU,iBAAiB,CAAC;AAEhC,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,uBAAuB,iBAAiB;AAAA,IAAA;AAAA,IAE3D,CAAC,cAAc,mBAAmB,kBAAkB;AAAA,EACtD;AAEA,SAAQA,kCAAAA,IAAA,iBAAiB,UAAjB,EAA0B,OAAe,SAAS,CAAA;AAC5D;AAEO,MAAM,eAAe,MAAM;AAC1B,QAAA,UAAU,WAAW,gBAAgB;AAC3C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,sDAAsD;AAAA,EAAA;AAEjE,SAAA;AACT;"}
@@ -70,6 +70,8 @@ require("../api/queries/users/updateUsers.cjs.js");
70
70
  require("../api/queries/watchers/getWatchers.cjs.js");
71
71
  require("../api/queries/permissions/getPermissions.cjs.js");
72
72
  require("../api/queries/grouping/getGrouping.cjs.js");
73
+ require("../api/queries/versions/updateVersions.cjs.js");
74
+ require("../api/queries/products/createProduct.cjs.js");
73
75
  const RemoteModulesContext = React.createContext({
74
76
  isLoading: true,
75
77
  modules: [],
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteModulesContext.cjs.js","sources":["../../../../src/context/RemoteModulesContext.tsx"],"sourcesContent":["import { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { registerRemotes } from '@module-federation/enhanced/runtime'\nimport {\n FrontendModuleListItem,\n useListFrontendModulesQuery,\n useGetSiteInfoQuery,\n} from '@shared/api'\n\ntype Module = {\n remote: string\n addon: string\n version: string\n modules: string[]\n}\n\ntype RemoteModulesContextType = {\n isLoading: boolean\n modules: FrontendModuleListItem[]\n remotesInitialized: boolean\n}\n\nconst RemoteModulesContext = createContext<RemoteModulesContextType>({\n isLoading: true,\n modules: [],\n remotesInitialized: false,\n})\n\ntype Props = {\n children: ReactNode\n skip?: boolean\n}\n\nexport const RemoteModulesProvider = ({ children, skip }: Props) => {\n // only load if logged in\n const { data: addonRemoteModules = [], isLoading } = useListFrontendModulesQuery(undefined, {\n skip,\n })\n\n const { data: info = {}, isLoading: isLoadingInfo } = useGetSiteInfoQuery(\n { full: true },\n { skip },\n )\n\n const [remotesInitialized, setRemotesInitialized] = useState(false)\n\n useEffect(() => {\n // waiting for loading or it has already been initialized\n if (isLoading || isLoadingInfo || remotesInitialized) return\n\n // no remotes found, nothing to do\n if (!addonRemoteModules.length) {\n setRemotesInitialized(true)\n return\n }\n\n // create a flat map of modules to load\n const allRemotes: Module[] = []\n\n addonRemoteModules.forEach((addon) => {\n const { addonName, addonVersion, modules = {} } = addon\n\n Object.entries(modules).forEach(([remote, modules]) => {\n allRemotes.push({\n remote,\n addon: addonName,\n version: addonVersion,\n modules,\n })\n })\n })\n\n console.log('registerAddonRemotes', allRemotes)\n registerRemotes(\n allRemotes.map((r) => ({\n name: r.remote,\n alias: r.remote,\n entry: `/addons/${r.addon || r.remote}/${r.version}/frontend/modules/${\n r.remote\n }/remoteEntry.js?server=${info?.releaseInfo?.version || info?.releaseInfo}-${\n info?.releaseInfo?.buildDate\n }-${new Date().getTime()}`,\n type: 'module',\n })),\n )\n\n setRemotesInitialized(true)\n }, [addonRemoteModules, isLoading, isLoadingInfo, remotesInitialized])\n\n return (\n <RemoteModulesContext.Provider\n value={{\n isLoading,\n modules: addonRemoteModules,\n remotesInitialized,\n }}\n >\n {children}\n </RemoteModulesContext.Provider>\n )\n}\n\nexport const useRemoteModules = () => {\n const context = useContext(RemoteModulesContext)\n\n if (context === undefined) {\n throw new Error('useRemoteModules must be used within a RemoteModulesProvider')\n }\n\n return context\n}\n"],"names":["createContext","useListFrontendModulesQuery","useGetSiteInfoQuery","useState","useEffect","modules","registerRemotes","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAuBA,MAAAA,cAAwC;AAAA,EACnE,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV,oBAAoB;AACtB,CAAC;AAOM,MAAM,wBAAwB,CAAC,EAAE,UAAU,WAAkB;AAE5D,QAAA,EAAE,MAAM,qBAAqB,CAAA,GAAI,UAAU,IAAIC,sCAA4B,QAAW;AAAA,IAC1F;AAAA,EAAA,CACD;AAED,QAAM,EAAE,MAAM,OAAO,CAAI,GAAA,WAAW,kBAAkBC,UAAA;AAAA,IACpD,EAAE,MAAM,KAAK;AAAA,IACb,EAAE,KAAK;AAAA,EACT;AAEA,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,MAAAA,SAAS,KAAK;AAElEC,QAAAA,UAAU,MAAM;AAEV,QAAA,aAAa,iBAAiB,mBAAoB;AAGlD,QAAA,CAAC,mBAAmB,QAAQ;AAC9B,4BAAsB,IAAI;AAC1B;AAAA,IAAA;AAIF,UAAM,aAAuB,CAAC;AAEX,uBAAA,QAAQ,CAAC,UAAU;AACpC,YAAM,EAAE,WAAW,cAAc,UAAU,CAAA,EAAO,IAAA;AAE3C,aAAA,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQC,QAAO,MAAM;AACrD,mBAAW,KAAK;AAAA,UACd;AAAA,UACA,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAAA;AAAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAEO,YAAA,IAAI,wBAAwB,UAAU;AAC9CC,YAAA,eAAA;AAAA,MACE,WAAW,IAAI,CAAC,MAAO;;AAAA;AAAA,UACrB,MAAM,EAAE;AAAA,UACR,OAAO,EAAE;AAAA,UACT,OAAO,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,OAAO,qBAChD,EAAE,MACJ,4BAA0B,kCAAM,gBAAN,mBAAmB,aAAW,6BAAM,YAAW,KACvE,kCAAM,gBAAN,mBAAmB,SACrB,KAAQ,oBAAA,KAAA,GAAO,QAAS,CAAA;AAAA,UACxB,MAAM;AAAA,QAAA;AAAA,OACN;AAAA,IACJ;AAEA,0BAAsB,IAAI;AAAA,KACzB,CAAC,oBAAoB,WAAW,eAAe,kBAAkB,CAAC;AAGnE,SAAAC,2BAAA,kBAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;AAEO,MAAM,mBAAmB,MAAM;AAC9B,QAAA,UAAUC,iBAAW,oBAAoB;AAE/C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,8DAA8D;AAAA,EAAA;AAGzE,SAAA;AACT;;;"}
1
+ {"version":3,"file":"RemoteModulesContext.cjs.js","sources":["../../../../src/context/RemoteModulesContext.tsx"],"sourcesContent":["import { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { registerRemotes } from '@module-federation/enhanced/runtime'\nimport {\n FrontendModuleListItem,\n useListFrontendModulesQuery,\n useGetSiteInfoQuery,\n} from '@shared/api'\n\ntype Module = {\n remote: string\n addon: string\n version: string\n modules: string[]\n}\n\ntype RemoteModulesContextType = {\n isLoading: boolean\n modules: FrontendModuleListItem[]\n remotesInitialized: boolean\n}\n\nconst RemoteModulesContext = createContext<RemoteModulesContextType>({\n isLoading: true,\n modules: [],\n remotesInitialized: false,\n})\n\ntype Props = {\n children: ReactNode\n skip?: boolean\n}\n\nexport const RemoteModulesProvider = ({ children, skip }: Props) => {\n // only load if logged in\n const { data: addonRemoteModules = [], isLoading } = useListFrontendModulesQuery(undefined, {\n skip,\n })\n\n const { data: info = {}, isLoading: isLoadingInfo } = useGetSiteInfoQuery(\n { full: true },\n { skip },\n )\n\n const [remotesInitialized, setRemotesInitialized] = useState(false)\n\n useEffect(() => {\n // waiting for loading or it has already been initialized\n if (isLoading || isLoadingInfo || remotesInitialized) return\n\n // no remotes found, nothing to do\n if (!addonRemoteModules.length) {\n setRemotesInitialized(true)\n return\n }\n\n // create a flat map of modules to load\n const allRemotes: Module[] = []\n\n addonRemoteModules.forEach((addon) => {\n const { addonName, addonVersion, modules = {} } = addon\n\n Object.entries(modules).forEach(([remote, modules]) => {\n allRemotes.push({\n remote,\n addon: addonName,\n version: addonVersion,\n modules,\n })\n })\n })\n\n console.log('registerAddonRemotes', allRemotes)\n registerRemotes(\n allRemotes.map((r) => ({\n name: r.remote,\n alias: r.remote,\n entry: `/addons/${r.addon || r.remote}/${r.version}/frontend/modules/${\n r.remote\n }/remoteEntry.js?server=${info?.releaseInfo?.version || info?.releaseInfo}-${\n info?.releaseInfo?.buildDate\n }-${new Date().getTime()}`,\n type: 'module',\n })),\n )\n\n setRemotesInitialized(true)\n }, [addonRemoteModules, isLoading, isLoadingInfo, remotesInitialized])\n\n return (\n <RemoteModulesContext.Provider\n value={{\n isLoading,\n modules: addonRemoteModules,\n remotesInitialized,\n }}\n >\n {children}\n </RemoteModulesContext.Provider>\n )\n}\n\nexport const useRemoteModules = () => {\n const context = useContext(RemoteModulesContext)\n\n if (context === undefined) {\n throw new Error('useRemoteModules must be used within a RemoteModulesProvider')\n }\n\n return context\n}\n"],"names":["createContext","useListFrontendModulesQuery","useGetSiteInfoQuery","useState","useEffect","modules","registerRemotes","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAuBA,MAAAA,cAAwC;AAAA,EACnE,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV,oBAAoB;AACtB,CAAC;AAOM,MAAM,wBAAwB,CAAC,EAAE,UAAU,WAAkB;AAE5D,QAAA,EAAE,MAAM,qBAAqB,CAAA,GAAI,UAAU,IAAIC,sCAA4B,QAAW;AAAA,IAC1F;AAAA,EAAA,CACD;AAED,QAAM,EAAE,MAAM,OAAO,CAAI,GAAA,WAAW,kBAAkBC,UAAA;AAAA,IACpD,EAAE,MAAM,KAAK;AAAA,IACb,EAAE,KAAK;AAAA,EACT;AAEA,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,MAAAA,SAAS,KAAK;AAElEC,QAAAA,UAAU,MAAM;AAEV,QAAA,aAAa,iBAAiB,mBAAoB;AAGlD,QAAA,CAAC,mBAAmB,QAAQ;AAC9B,4BAAsB,IAAI;AAC1B;AAAA,IAAA;AAIF,UAAM,aAAuB,CAAC;AAEX,uBAAA,QAAQ,CAAC,UAAU;AACpC,YAAM,EAAE,WAAW,cAAc,UAAU,CAAA,EAAO,IAAA;AAE3C,aAAA,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQC,QAAO,MAAM;AACrD,mBAAW,KAAK;AAAA,UACd;AAAA,UACA,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAAA;AAAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAEO,YAAA,IAAI,wBAAwB,UAAU;AAC9CC,YAAA,eAAA;AAAA,MACE,WAAW,IAAI,CAAC,MAAO;;AAAA;AAAA,UACrB,MAAM,EAAE;AAAA,UACR,OAAO,EAAE;AAAA,UACT,OAAO,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,OAAO,qBAChD,EAAE,MACJ,4BAA0B,kCAAM,gBAAN,mBAAmB,aAAW,6BAAM,YAAW,KACvE,kCAAM,gBAAN,mBAAmB,SACrB,KAAQ,oBAAA,KAAA,GAAO,QAAS,CAAA;AAAA,UACxB,MAAM;AAAA,QAAA;AAAA,OACN;AAAA,IACJ;AAEA,0BAAsB,IAAI;AAAA,KACzB,CAAC,oBAAoB,WAAW,eAAe,kBAAkB,CAAC;AAGnE,SAAAC,2BAAA,kBAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;AAEO,MAAM,mBAAmB,MAAM;AAC9B,QAAA,UAAUC,iBAAW,oBAAoB;AAE/C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,8DAA8D;AAAA,EAAA;AAGzE,SAAA;AACT;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../../../_virtual/jsx-runtime.es.js";
2
- import { createContext, useContext, useState, useEffect } from "react";
2
+ import { createContext, useState, useEffect, useContext } from "react";
3
3
  import { r as runtimeExports } from "../../../_virtual/runtime.es.js";
4
4
  import "../api/base/client.es.js";
5
5
  import "../api/generated/graphql.es.js";
@@ -68,6 +68,8 @@ import "../api/queries/users/updateUsers.es.js";
68
68
  import "../api/queries/watchers/getWatchers.es.js";
69
69
  import "../api/queries/permissions/getPermissions.es.js";
70
70
  import "../api/queries/grouping/getGrouping.es.js";
71
+ import "../api/queries/versions/updateVersions.es.js";
72
+ import "../api/queries/products/createProduct.es.js";
71
73
  const RemoteModulesContext = createContext({
72
74
  isLoading: true,
73
75
  modules: [],
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteModulesContext.es.js","sources":["../../../../src/context/RemoteModulesContext.tsx"],"sourcesContent":["import { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { registerRemotes } from '@module-federation/enhanced/runtime'\nimport {\n FrontendModuleListItem,\n useListFrontendModulesQuery,\n useGetSiteInfoQuery,\n} from '@shared/api'\n\ntype Module = {\n remote: string\n addon: string\n version: string\n modules: string[]\n}\n\ntype RemoteModulesContextType = {\n isLoading: boolean\n modules: FrontendModuleListItem[]\n remotesInitialized: boolean\n}\n\nconst RemoteModulesContext = createContext<RemoteModulesContextType>({\n isLoading: true,\n modules: [],\n remotesInitialized: false,\n})\n\ntype Props = {\n children: ReactNode\n skip?: boolean\n}\n\nexport const RemoteModulesProvider = ({ children, skip }: Props) => {\n // only load if logged in\n const { data: addonRemoteModules = [], isLoading } = useListFrontendModulesQuery(undefined, {\n skip,\n })\n\n const { data: info = {}, isLoading: isLoadingInfo } = useGetSiteInfoQuery(\n { full: true },\n { skip },\n )\n\n const [remotesInitialized, setRemotesInitialized] = useState(false)\n\n useEffect(() => {\n // waiting for loading or it has already been initialized\n if (isLoading || isLoadingInfo || remotesInitialized) return\n\n // no remotes found, nothing to do\n if (!addonRemoteModules.length) {\n setRemotesInitialized(true)\n return\n }\n\n // create a flat map of modules to load\n const allRemotes: Module[] = []\n\n addonRemoteModules.forEach((addon) => {\n const { addonName, addonVersion, modules = {} } = addon\n\n Object.entries(modules).forEach(([remote, modules]) => {\n allRemotes.push({\n remote,\n addon: addonName,\n version: addonVersion,\n modules,\n })\n })\n })\n\n console.log('registerAddonRemotes', allRemotes)\n registerRemotes(\n allRemotes.map((r) => ({\n name: r.remote,\n alias: r.remote,\n entry: `/addons/${r.addon || r.remote}/${r.version}/frontend/modules/${\n r.remote\n }/remoteEntry.js?server=${info?.releaseInfo?.version || info?.releaseInfo}-${\n info?.releaseInfo?.buildDate\n }-${new Date().getTime()}`,\n type: 'module',\n })),\n )\n\n setRemotesInitialized(true)\n }, [addonRemoteModules, isLoading, isLoadingInfo, remotesInitialized])\n\n return (\n <RemoteModulesContext.Provider\n value={{\n isLoading,\n modules: addonRemoteModules,\n remotesInitialized,\n }}\n >\n {children}\n </RemoteModulesContext.Provider>\n )\n}\n\nexport const useRemoteModules = () => {\n const context = useContext(RemoteModulesContext)\n\n if (context === undefined) {\n throw new Error('useRemoteModules must be used within a RemoteModulesProvider')\n }\n\n return context\n}\n"],"names":["modules","registerRemotes","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAuB,cAAwC;AAAA,EACnE,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV,oBAAoB;AACtB,CAAC;AAOM,MAAM,wBAAwB,CAAC,EAAE,UAAU,WAAkB;AAE5D,QAAA,EAAE,MAAM,qBAAqB,CAAA,GAAI,UAAU,IAAI,4BAA4B,QAAW;AAAA,IAC1F;AAAA,EAAA,CACD;AAED,QAAM,EAAE,MAAM,OAAO,CAAI,GAAA,WAAW,kBAAkB;AAAA,IACpD,EAAE,MAAM,KAAK;AAAA,IACb,EAAE,KAAK;AAAA,EACT;AAEA,QAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAS,KAAK;AAElE,YAAU,MAAM;AAEV,QAAA,aAAa,iBAAiB,mBAAoB;AAGlD,QAAA,CAAC,mBAAmB,QAAQ;AAC9B,4BAAsB,IAAI;AAC1B;AAAA,IAAA;AAIF,UAAM,aAAuB,CAAC;AAEX,uBAAA,QAAQ,CAAC,UAAU;AACpC,YAAM,EAAE,WAAW,cAAc,UAAU,CAAA,EAAO,IAAA;AAE3C,aAAA,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQA,QAAO,MAAM;AACrD,mBAAW,KAAK;AAAA,UACd;AAAA,UACA,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAAA;AAAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAEO,YAAA,IAAI,wBAAwB,UAAU;AAC9CC,mBAAA;AAAA,MACE,WAAW,IAAI,CAAC,MAAO;;AAAA;AAAA,UACrB,MAAM,EAAE;AAAA,UACR,OAAO,EAAE;AAAA,UACT,OAAO,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,OAAO,qBAChD,EAAE,MACJ,4BAA0B,kCAAM,gBAAN,mBAAmB,aAAW,6BAAM,YAAW,KACvE,kCAAM,gBAAN,mBAAmB,SACrB,KAAQ,oBAAA,KAAA,GAAO,QAAS,CAAA;AAAA,UACxB,MAAM;AAAA,QAAA;AAAA,OACN;AAAA,IACJ;AAEA,0BAAsB,IAAI;AAAA,KACzB,CAAC,oBAAoB,WAAW,eAAe,kBAAkB,CAAC;AAGnE,SAAAC,kCAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;AAEO,MAAM,mBAAmB,MAAM;AAC9B,QAAA,UAAU,WAAW,oBAAoB;AAE/C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,8DAA8D;AAAA,EAAA;AAGzE,SAAA;AACT;"}
1
+ {"version":3,"file":"RemoteModulesContext.es.js","sources":["../../../../src/context/RemoteModulesContext.tsx"],"sourcesContent":["import { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { registerRemotes } from '@module-federation/enhanced/runtime'\nimport {\n FrontendModuleListItem,\n useListFrontendModulesQuery,\n useGetSiteInfoQuery,\n} from '@shared/api'\n\ntype Module = {\n remote: string\n addon: string\n version: string\n modules: string[]\n}\n\ntype RemoteModulesContextType = {\n isLoading: boolean\n modules: FrontendModuleListItem[]\n remotesInitialized: boolean\n}\n\nconst RemoteModulesContext = createContext<RemoteModulesContextType>({\n isLoading: true,\n modules: [],\n remotesInitialized: false,\n})\n\ntype Props = {\n children: ReactNode\n skip?: boolean\n}\n\nexport const RemoteModulesProvider = ({ children, skip }: Props) => {\n // only load if logged in\n const { data: addonRemoteModules = [], isLoading } = useListFrontendModulesQuery(undefined, {\n skip,\n })\n\n const { data: info = {}, isLoading: isLoadingInfo } = useGetSiteInfoQuery(\n { full: true },\n { skip },\n )\n\n const [remotesInitialized, setRemotesInitialized] = useState(false)\n\n useEffect(() => {\n // waiting for loading or it has already been initialized\n if (isLoading || isLoadingInfo || remotesInitialized) return\n\n // no remotes found, nothing to do\n if (!addonRemoteModules.length) {\n setRemotesInitialized(true)\n return\n }\n\n // create a flat map of modules to load\n const allRemotes: Module[] = []\n\n addonRemoteModules.forEach((addon) => {\n const { addonName, addonVersion, modules = {} } = addon\n\n Object.entries(modules).forEach(([remote, modules]) => {\n allRemotes.push({\n remote,\n addon: addonName,\n version: addonVersion,\n modules,\n })\n })\n })\n\n console.log('registerAddonRemotes', allRemotes)\n registerRemotes(\n allRemotes.map((r) => ({\n name: r.remote,\n alias: r.remote,\n entry: `/addons/${r.addon || r.remote}/${r.version}/frontend/modules/${\n r.remote\n }/remoteEntry.js?server=${info?.releaseInfo?.version || info?.releaseInfo}-${\n info?.releaseInfo?.buildDate\n }-${new Date().getTime()}`,\n type: 'module',\n })),\n )\n\n setRemotesInitialized(true)\n }, [addonRemoteModules, isLoading, isLoadingInfo, remotesInitialized])\n\n return (\n <RemoteModulesContext.Provider\n value={{\n isLoading,\n modules: addonRemoteModules,\n remotesInitialized,\n }}\n >\n {children}\n </RemoteModulesContext.Provider>\n )\n}\n\nexport const useRemoteModules = () => {\n const context = useContext(RemoteModulesContext)\n\n if (context === undefined) {\n throw new Error('useRemoteModules must be used within a RemoteModulesProvider')\n }\n\n return context\n}\n"],"names":["modules","registerRemotes","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,uBAAuB,cAAwC;AAAA,EACnE,WAAW;AAAA,EACX,SAAS,CAAC;AAAA,EACV,oBAAoB;AACtB,CAAC;AAOM,MAAM,wBAAwB,CAAC,EAAE,UAAU,WAAkB;AAE5D,QAAA,EAAE,MAAM,qBAAqB,CAAA,GAAI,UAAU,IAAI,4BAA4B,QAAW;AAAA,IAC1F;AAAA,EAAA,CACD;AAED,QAAM,EAAE,MAAM,OAAO,CAAI,GAAA,WAAW,kBAAkB;AAAA,IACpD,EAAE,MAAM,KAAK;AAAA,IACb,EAAE,KAAK;AAAA,EACT;AAEA,QAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAS,KAAK;AAElE,YAAU,MAAM;AAEV,QAAA,aAAa,iBAAiB,mBAAoB;AAGlD,QAAA,CAAC,mBAAmB,QAAQ;AAC9B,4BAAsB,IAAI;AAC1B;AAAA,IAAA;AAIF,UAAM,aAAuB,CAAC;AAEX,uBAAA,QAAQ,CAAC,UAAU;AACpC,YAAM,EAAE,WAAW,cAAc,UAAU,CAAA,EAAO,IAAA;AAE3C,aAAA,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQA,QAAO,MAAM;AACrD,mBAAW,KAAK;AAAA,UACd;AAAA,UACA,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAAA;AAAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAEO,YAAA,IAAI,wBAAwB,UAAU;AAC9CC,mBAAA;AAAA,MACE,WAAW,IAAI,CAAC,MAAO;;AAAA;AAAA,UACrB,MAAM,EAAE;AAAA,UACR,OAAO,EAAE;AAAA,UACT,OAAO,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE,OAAO,qBAChD,EAAE,MACJ,4BAA0B,kCAAM,gBAAN,mBAAmB,aAAW,6BAAM,YAAW,KACvE,kCAAM,gBAAN,mBAAmB,SACrB,KAAQ,oBAAA,KAAA,GAAO,QAAS,CAAA;AAAA,UACxB,MAAM;AAAA,QAAA;AAAA,OACN;AAAA,IACJ;AAEA,0BAAsB,IAAI;AAAA,KACzB,CAAC,oBAAoB,WAAW,eAAe,kBAAkB,CAAC;AAGnE,SAAAC,kCAAA;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;AAEO,MAAM,mBAAmB,MAAM;AAC9B,QAAA,UAAU,WAAW,oBAAoB;AAE/C,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,8DAA8D;AAAA,EAAA;AAGzE,SAAA;AACT;"}
@@ -10,18 +10,29 @@ const useCreateContextMenu = require("../containers/ContextMenu/useCreateContext
10
10
  const ThumbnailUploadContext = React.createContext({});
11
11
  const ThumbnailUploadProvider = ({
12
12
  children = [],
13
- inputRef
13
+ thumbnailInputRef,
14
+ versionsInputRef
14
15
  }) => {
15
16
  const [_, setFileUploadInProgress] = React.useState(false);
16
17
  const [ctxMenuShow] = useCreateContextMenu.useCreateContextMenu();
17
18
  const resetFileUploadState = () => setFileUploadInProgress(false);
18
19
  const ctxMenuItems = () => [
19
20
  {
20
- label: "Upload new thumbnail",
21
+ label: "Upload thumbnail",
21
22
  icon: "add_photo_alternate",
22
23
  command: () => {
23
- if (inputRef) {
24
- inputRef.current.click();
24
+ if (thumbnailInputRef) {
25
+ thumbnailInputRef.current.click();
26
+ }
27
+ return setFileUploadInProgress(true);
28
+ }
29
+ },
30
+ {
31
+ label: "Upload version",
32
+ icon: "layers",
33
+ command: () => {
34
+ if (versionsInputRef) {
35
+ versionsInputRef.current.click();
25
36
  }
26
37
  return setFileUploadInProgress(true);
27
38
  }