@ynput/ayon-frontend-shared 0.2.17 → 0.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +12 -9
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +13 -10
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +6 -0
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +6 -0
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +4 -4
- package/dist/_virtual/index.cjs5.js +3 -5
- package/dist/_virtual/index.cjs5.js.map +1 -1
- package/dist/_virtual/index.cjs6.js +5 -3
- package/dist/_virtual/index.cjs6.js.map +1 -1
- package/dist/_virtual/index.cjs8.js +4 -4
- package/dist/_virtual/index.cjs9.js +4 -4
- package/dist/_virtual/index.es10.js +4 -4
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +4 -4
- package/dist/api.cjs.js +13 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +17 -4
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +9 -4
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +10 -5
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +12 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +12 -8
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +64 -23
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +64 -23
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js +9 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +9 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +5 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +5 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +24 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +24 -8
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +67 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +19 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +19 -3
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +15 -0
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +15 -0
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +82 -0
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/versions/updateVersions.es.js +82 -0
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +7 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +7 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +2 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
- package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
- package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +374 -114
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
- package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +374 -114
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js +43 -0
- package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +17 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +17 -15
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +12 -8
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -8
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +35 -107
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +35 -107
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +12 -8
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -8
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +12 -8
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -8
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +402 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +402 -0
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +12 -8
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -8
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +10 -2
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +10 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +10 -3
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +14 -0
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +12 -8
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -8
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +14 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +16 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +17 -10
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +0 -30
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +0 -30
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +51 -5
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +53 -7
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +47 -11
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +11 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +106 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +22 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +22 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +106 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +28 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +28 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +135 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +135 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +35 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +88 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +90 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +90 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -9
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +8 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +190 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +4 -147
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -145
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +12 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +7 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +7 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +2 -0
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +2 -0
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
- package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
- package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.cjs.js +1 -0
- package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
- package/dist/shared/src/util/confirmDelete.es.js +2 -0
- package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
- package/dist/shared/src/util/productTypes.cjs.js +1 -0
- package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
- package/dist/shared/src/util/productTypes.es.js +1 -0
- package/dist/shared/src/util/productTypes.es.js.map +1 -1
- package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
- package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
- package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
- package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
- package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
- package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
- package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
- package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
- package/dist/types/SimpleTable/SimpleTable.d.ts +1 -0
- package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +1 -1
- package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +5 -1
- package/dist/types/api/generated/folders.d.ts +1 -0
- package/dist/types/api/generated/graphql.d.ts +113 -41
- package/dist/types/api/queries/actions/getActions.d.ts +132 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +10 -4
- package/dist/types/api/queries/activities/updateActivities.d.ts +20 -8
- package/dist/types/api/queries/entities/getEntity.d.ts +10 -4
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +10 -4
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +10 -4
- package/dist/types/api/queries/entityLists/getLists.d.ts +1521 -6
- package/dist/types/api/queries/entityLists/types.d.ts +30 -1
- package/dist/types/api/queries/entityLists/updateLists.d.ts +166 -3
- package/dist/types/api/queries/index.d.ts +2 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +10 -4
- package/dist/types/api/queries/products/createProduct.d.ts +161 -0
- package/dist/types/api/queries/products/index.d.ts +1 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +10 -4
- package/dist/types/api/queries/users/getUsers.d.ts +10 -4
- package/dist/types/api/queries/versions/index.d.ts +1 -0
- package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
- package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
- package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
- package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
- package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
- package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
- package/dist/types/components/PlayableIcon/PlayableIcon.d.ts +4 -0
- package/dist/types/components/ReviewablesList/index.d.ts +1 -0
- package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
- package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
- package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
- package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
- package/dist/types/components/VersionUploader/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/containers/Actions/Actions.d.ts +7 -1
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +5 -3
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +6 -2
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +12 -2
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +3 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +3 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -1
- package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/utils/getTypeDefaultValue.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +20 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -11
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -0
- package/dist/types/context/DetailsPanelContext.d.ts +1 -0
- package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
- package/dist/types/util/confirmDelete.d.ts +2 -1
- package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
- package/dist/util.cjs.js +2 -0
- package/dist/util.cjs.js.map +1 -1
- package/dist/util.es.js +2 -0
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
- package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
- package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
- package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
- package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
- package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
- package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const jsxRuntime = require("../../../../_virtual/jsx-runtime.cjs.js");
|
|
4
|
-
const axios = require("axios");
|
|
5
|
-
const reactToastify = require("react-toastify");
|
|
6
4
|
const React = require("react");
|
|
7
5
|
const clsx = require("clsx");
|
|
8
6
|
const ayonReactComponents = require("@ynput/ayon-react-components");
|
|
9
|
-
|
|
7
|
+
require("../ThumbnailSimple/ThumbnailSimple.cjs.js");
|
|
8
|
+
require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");
|
|
9
|
+
require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");
|
|
10
|
+
require("react-toastify");
|
|
11
|
+
require("../../api/base/client.cjs.js");
|
|
10
12
|
require("../../api/generated/graphql.cjs.js");
|
|
11
13
|
require("../../api/generated/access.cjs.js");
|
|
12
14
|
require("../../api/generated/actions.cjs.js");
|
|
@@ -65,7 +67,7 @@ require("../../api/queries/overview/updateOverview.cjs.js");
|
|
|
65
67
|
require("../../api/queries/project/getProject.cjs.js");
|
|
66
68
|
require("../../api/queries/project/updateProject.cjs.js");
|
|
67
69
|
require("../../api/queries/review/getReview.cjs.js");
|
|
68
|
-
|
|
70
|
+
require("../../api/queries/review/updateReview.cjs.js");
|
|
69
71
|
require("../../api/queries/system/getSystem.cjs.js");
|
|
70
72
|
require("../../api/queries/userDashboard/getUserDashboard.cjs.js");
|
|
71
73
|
require("../../api/queries/users/getUsers.cjs.js");
|
|
@@ -73,9 +75,8 @@ require("../../api/queries/users/updateUsers.cjs.js");
|
|
|
73
75
|
require("../../api/queries/watchers/getWatchers.cjs.js");
|
|
74
76
|
require("../../api/queries/permissions/getPermissions.cjs.js");
|
|
75
77
|
require("../../api/queries/grouping/getGrouping.cjs.js");
|
|
76
|
-
require("
|
|
77
|
-
require("
|
|
78
|
-
require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");
|
|
78
|
+
require("../../api/queries/versions/updateVersions.cjs.js");
|
|
79
|
+
require("../../api/queries/products/createProduct.cjs.js");
|
|
79
80
|
require("@dnd-kit/core");
|
|
80
81
|
require("@dnd-kit/sortable");
|
|
81
82
|
require("./ReviewablesList.styled.cjs.js");
|
|
@@ -84,6 +85,7 @@ require("../../containers/ContextMenu/ContextMenuContext.cjs.js");
|
|
|
84
85
|
require("lodash");
|
|
85
86
|
require("../../util/pubsub.cjs.js");
|
|
86
87
|
const ReviewablesUpload_styled = require("./ReviewablesUpload.styled.cjs.js");
|
|
88
|
+
const useReviewablesUpload = require("./useReviewablesUpload.cjs.js");
|
|
87
89
|
require("../../context/RemoteModulesContext.cjs.js");
|
|
88
90
|
require("../../context/DetailsPanelContext.cjs.js");
|
|
89
91
|
require("../../context/ThumbnailUploaderContext.cjs.js");
|
|
@@ -136,6 +138,11 @@ require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js"
|
|
|
136
138
|
require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");
|
|
137
139
|
require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");
|
|
138
140
|
require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");
|
|
141
|
+
require("../../../../_virtual/runtime.cjs.js");
|
|
142
|
+
require("../../../../_virtual/semver.cjs.js");
|
|
143
|
+
require("react-redux");
|
|
144
|
+
require("custom-protocol-check");
|
|
145
|
+
require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
|
|
139
146
|
require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
|
|
140
147
|
require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
|
|
141
148
|
require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
|
|
@@ -150,22 +157,18 @@ require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
|
|
|
150
157
|
require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
|
|
151
158
|
require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
|
|
152
159
|
require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
|
|
153
|
-
require("../../../../_virtual/runtime.cjs.js");
|
|
154
|
-
require("../../../../_virtual/semver.cjs.js");
|
|
155
|
-
require("react-redux");
|
|
156
|
-
require("custom-protocol-check");
|
|
157
|
-
require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");
|
|
158
160
|
require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");
|
|
159
161
|
require("../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");
|
|
160
162
|
require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");
|
|
163
|
+
require("../PlayableIcon/PlayableIcon.cjs.js");
|
|
161
164
|
require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");
|
|
162
165
|
require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");
|
|
163
166
|
require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");
|
|
164
167
|
require("../../containers/Actions/Actions.styled.cjs.js");
|
|
165
168
|
require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
|
|
166
169
|
require("../../containers/Actions/ActionIcon.cjs.js");
|
|
167
|
-
require("../
|
|
168
|
-
require("
|
|
170
|
+
require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
|
|
171
|
+
require("axios");
|
|
169
172
|
require("../SimpleFormDialog/SimpleFormDialog.cjs.js");
|
|
170
173
|
require("../EntityPath/EntityPath.styled.cjs.js");
|
|
171
174
|
require("../EntityPath/SegmentProvider.cjs.js");
|
|
@@ -181,6 +184,8 @@ require("../AttributeEditor/components/MinMaxField.cjs.js");
|
|
|
181
184
|
require("../EnumEditor/EnumEditor.styled.cjs.js");
|
|
182
185
|
require("../SearchFilter/filterDates.cjs.js");
|
|
183
186
|
require("../Badge/Badge.cjs.js");
|
|
187
|
+
require("../VersionUploader/components/UploadVersionDialog.cjs.js");
|
|
188
|
+
require("../VersionUploader/context/VersionUploadContext.cjs.js");
|
|
184
189
|
const ReviewableUpload = ({
|
|
185
190
|
projectName,
|
|
186
191
|
taskId,
|
|
@@ -200,7 +205,19 @@ const ReviewableUpload = ({
|
|
|
200
205
|
}) => {
|
|
201
206
|
var _a;
|
|
202
207
|
const [isDraggingFile, setIsDraggingFile] = React.useState(false);
|
|
203
|
-
const
|
|
208
|
+
const {
|
|
209
|
+
handleFileUpload: uploadFiles,
|
|
210
|
+
handleRemoveUpload,
|
|
211
|
+
uploading
|
|
212
|
+
} = useReviewablesUpload.useReviewablesUpload({
|
|
213
|
+
projectName,
|
|
214
|
+
versionId,
|
|
215
|
+
taskId,
|
|
216
|
+
folderId,
|
|
217
|
+
productId,
|
|
218
|
+
dispatch,
|
|
219
|
+
onUpload
|
|
220
|
+
});
|
|
204
221
|
const canUpload = Boolean(versionId);
|
|
205
222
|
React.useEffect(() => {
|
|
206
223
|
if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {
|
|
@@ -211,9 +228,9 @@ const ReviewableUpload = ({
|
|
|
211
228
|
}
|
|
212
229
|
});
|
|
213
230
|
setPendingFiles([]);
|
|
214
|
-
|
|
231
|
+
uploadFiles(files);
|
|
215
232
|
}
|
|
216
|
-
}, [canUpload, versionId, pendingFiles.length]);
|
|
233
|
+
}, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles]);
|
|
217
234
|
const isImageFile = (file) => {
|
|
218
235
|
return file.type.startsWith("image/");
|
|
219
236
|
};
|
|
@@ -223,16 +240,6 @@ const ReviewableUpload = ({
|
|
|
223
240
|
preview: isImageFile(file) ? URL.createObjectURL(file) : void 0
|
|
224
241
|
}));
|
|
225
242
|
};
|
|
226
|
-
const handleRemoveUpload = (name) => {
|
|
227
|
-
if (!versionId) return;
|
|
228
|
-
setUploads((uploads) => {
|
|
229
|
-
var _a2;
|
|
230
|
-
return {
|
|
231
|
-
...uploads,
|
|
232
|
-
[versionId]: ((_a2 = uploads[versionId]) == null ? void 0 : _a2.filter((upload) => upload.name !== name)) || []
|
|
233
|
-
};
|
|
234
|
-
});
|
|
235
|
-
};
|
|
236
243
|
const handleFileUpload = async (files) => {
|
|
237
244
|
const fileArray = Array.from(files);
|
|
238
245
|
onFilesAdded == null ? void 0 : onFilesAdded(fileArray);
|
|
@@ -242,86 +249,7 @@ const ReviewableUpload = ({
|
|
|
242
249
|
}
|
|
243
250
|
return;
|
|
244
251
|
}
|
|
245
|
-
|
|
246
|
-
name: file.name,
|
|
247
|
-
size: file.size,
|
|
248
|
-
progress: 0
|
|
249
|
-
}));
|
|
250
|
-
const newUploadsForVersion = [...uploading[versionId] || [], ...uploadingFiles];
|
|
251
|
-
setUploads({ ...uploading, [versionId]: newUploadsForVersion });
|
|
252
|
-
const successHandler = (file) => (response) => {
|
|
253
|
-
if (!versionId) return;
|
|
254
|
-
console.log(`Upload successful for ${file.name}`);
|
|
255
|
-
const data = response.data;
|
|
256
|
-
if (!projectName) return;
|
|
257
|
-
dispatch(
|
|
258
|
-
// @ts-ignore
|
|
259
|
-
updateReview.reviewablesQueries.util.updateQueryData(
|
|
260
|
-
"getReviewablesForVersion",
|
|
261
|
-
{ projectName, versionId },
|
|
262
|
-
(draft) => {
|
|
263
|
-
if (!draft.reviewables) {
|
|
264
|
-
draft.reviewables = [];
|
|
265
|
-
}
|
|
266
|
-
draft.reviewables.push(data);
|
|
267
|
-
}
|
|
268
|
-
)
|
|
269
|
-
);
|
|
270
|
-
productId && dispatch(client.api.util.invalidateTags([{ type: "viewer", id: productId }]));
|
|
271
|
-
dispatch(client.api.util.invalidateTags([{ type: "viewer", id: versionId }]));
|
|
272
|
-
folderId && dispatch(client.api.util.invalidateTags([{ type: "viewer", id: folderId }]));
|
|
273
|
-
taskId && dispatch(client.api.util.invalidateTags([{ type: "viewer", id: taskId }]));
|
|
274
|
-
handleRemoveUpload(file.name);
|
|
275
|
-
};
|
|
276
|
-
const errorHandler = (file) => (error) => {
|
|
277
|
-
if (!versionId) return;
|
|
278
|
-
console.error(`Upload failed for ${file.name}: ${error}`);
|
|
279
|
-
reactToastify.toast.error(`Failed to upload file: ${file.name}`);
|
|
280
|
-
setUploads((uploads) => {
|
|
281
|
-
const currentUploads = uploads[versionId] || [];
|
|
282
|
-
const updatedUploads = currentUploads.map((upload) => {
|
|
283
|
-
if (upload.name !== file.name) return upload;
|
|
284
|
-
return {
|
|
285
|
-
...upload,
|
|
286
|
-
error: error.response.data.detail || error.message
|
|
287
|
-
};
|
|
288
|
-
});
|
|
289
|
-
return {
|
|
290
|
-
...uploads,
|
|
291
|
-
[versionId]: updatedUploads
|
|
292
|
-
};
|
|
293
|
-
});
|
|
294
|
-
};
|
|
295
|
-
const progressHandler = (file) => {
|
|
296
|
-
if (!versionId) return () => {
|
|
297
|
-
};
|
|
298
|
-
return (progressEvent) => setUploads((uploads) => {
|
|
299
|
-
const currentUploads = uploads[versionId] || [];
|
|
300
|
-
const updatedUploads = currentUploads.map((upload) => {
|
|
301
|
-
if (upload.name !== file.name) return upload;
|
|
302
|
-
return {
|
|
303
|
-
...upload,
|
|
304
|
-
progress: progressEvent.total ? Math.round(progressEvent.loaded / progressEvent.total * 100) : 0
|
|
305
|
-
};
|
|
306
|
-
});
|
|
307
|
-
return {
|
|
308
|
-
...uploads,
|
|
309
|
-
[versionId]: updatedUploads
|
|
310
|
-
};
|
|
311
|
-
});
|
|
312
|
-
};
|
|
313
|
-
try {
|
|
314
|
-
for (const file of fileArray) {
|
|
315
|
-
const autoLabel = file.name.split(".").slice(0, -1).join(".");
|
|
316
|
-
const url = `/api/projects/${projectName}/versions/${versionId}/reviewables?label=${autoLabel}`;
|
|
317
|
-
const headers = { "content-type": file.type, "x-file-name": file.name };
|
|
318
|
-
axios.post(url, file, { headers, onUploadProgress: progressHandler(file) }).then(successHandler(file)).catch(errorHandler(file));
|
|
319
|
-
}
|
|
320
|
-
onUpload && onUpload();
|
|
321
|
-
} catch (error) {
|
|
322
|
-
console.error(error);
|
|
323
|
-
reactToastify.toast.error("Failed to upload file/s");
|
|
324
|
-
}
|
|
252
|
+
await uploadFiles(files);
|
|
325
253
|
};
|
|
326
254
|
const handleInputChange = (event) => {
|
|
327
255
|
const files = event.target.files;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\nimport { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\n\n// components\nimport { ReviewableProgress, ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n handleFileUpload(files)\n }\n }, [canUpload, versionId, pendingFiles.length])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleRemoveUpload = (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n const uploadingFiles = fileArray.map((file) => ({\n name: file.name,\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[versionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [versionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!versionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: versionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(file.name)\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!versionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for versionId\n const currentUploads = uploads[versionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== file.name) return upload\n return {\n ...upload,\n error: error.response.data.detail || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [versionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!versionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for versionId\n const currentUploads = uploads[versionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== file.name) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // update state\n return {\n ...uploads,\n [versionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n for (const file of fileArray) {\n const autoLabel = file.name.split('.').slice(0, -1).join('.')\n\n const url = `/api/projects/${projectName}/versions/${versionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': file.name }\n axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n }\n // Callback after successful uploads\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["useState","useEffect","_a","reviewablesQueries","api","toast","jsxs","Fragment","jsx","Styled.ReviewablesList","ReviewableProgressCard","Styled.Upload","Styled.Dropzone","Icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["useState","useReviewablesUpload","useEffect","jsxs","Fragment","jsx","Styled.ReviewablesList","ReviewableProgressCard","Styled.Upload","Styled.Dropzone","Icon"],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import axios from "axios";
|
|
3
|
-
import { toast } from "react-toastify";
|
|
4
2
|
import { useState, useEffect } from "react";
|
|
5
3
|
import clsx from "clsx";
|
|
6
4
|
import { Icon } from "@ynput/ayon-react-components";
|
|
7
|
-
import
|
|
5
|
+
import "../ThumbnailSimple/ThumbnailSimple.es.js";
|
|
6
|
+
import "../EmptyPlaceholder/EmptyPlaceholder.es.js";
|
|
7
|
+
import "../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
8
|
+
import "react-toastify";
|
|
9
|
+
import "../../api/base/client.es.js";
|
|
8
10
|
import "../../api/generated/graphql.es.js";
|
|
9
11
|
import "../../api/generated/access.es.js";
|
|
10
12
|
import "../../api/generated/actions.es.js";
|
|
@@ -63,7 +65,7 @@ import "../../api/queries/overview/updateOverview.es.js";
|
|
|
63
65
|
import "../../api/queries/project/getProject.es.js";
|
|
64
66
|
import "../../api/queries/project/updateProject.es.js";
|
|
65
67
|
import "../../api/queries/review/getReview.es.js";
|
|
66
|
-
import
|
|
68
|
+
import "../../api/queries/review/updateReview.es.js";
|
|
67
69
|
import "../../api/queries/system/getSystem.es.js";
|
|
68
70
|
import "../../api/queries/userDashboard/getUserDashboard.es.js";
|
|
69
71
|
import "../../api/queries/users/getUsers.es.js";
|
|
@@ -71,9 +73,8 @@ import "../../api/queries/users/updateUsers.es.js";
|
|
|
71
73
|
import "../../api/queries/watchers/getWatchers.es.js";
|
|
72
74
|
import "../../api/queries/permissions/getPermissions.es.js";
|
|
73
75
|
import "../../api/queries/grouping/getGrouping.es.js";
|
|
74
|
-
import "
|
|
75
|
-
import "
|
|
76
|
-
import "../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
|
|
76
|
+
import "../../api/queries/versions/updateVersions.es.js";
|
|
77
|
+
import "../../api/queries/products/createProduct.es.js";
|
|
77
78
|
import "@dnd-kit/core";
|
|
78
79
|
import "@dnd-kit/sortable";
|
|
79
80
|
import "./ReviewablesList.styled.es.js";
|
|
@@ -82,6 +83,7 @@ import "../../containers/ContextMenu/ContextMenuContext.es.js";
|
|
|
82
83
|
import "lodash";
|
|
83
84
|
import "../../util/pubsub.es.js";
|
|
84
85
|
import { ReviewablesList, Upload, Dropzone } from "./ReviewablesUpload.styled.es.js";
|
|
86
|
+
import { useReviewablesUpload } from "./useReviewablesUpload.es.js";
|
|
85
87
|
import "../../context/RemoteModulesContext.es.js";
|
|
86
88
|
import "../../context/DetailsPanelContext.es.js";
|
|
87
89
|
import "../../context/ThumbnailUploaderContext.es.js";
|
|
@@ -134,6 +136,11 @@ import "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
|
|
|
134
136
|
import "../../containers/ProjectTreeTable/context/ProjectTableContext.es.js";
|
|
135
137
|
import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
|
|
136
138
|
import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
|
|
139
|
+
import "../../../../_virtual/runtime.es.js";
|
|
140
|
+
import "../../../../_virtual/semver.es.js";
|
|
141
|
+
import "react-redux";
|
|
142
|
+
import "custom-protocol-check";
|
|
143
|
+
import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
|
|
137
144
|
import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
|
|
138
145
|
import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
139
146
|
import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
|
|
@@ -148,22 +155,18 @@ import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
|
|
|
148
155
|
import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
|
|
149
156
|
import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
|
|
150
157
|
import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
|
|
151
|
-
import "../../../../_virtual/runtime.es.js";
|
|
152
|
-
import "../../../../_virtual/semver.es.js";
|
|
153
|
-
import "react-redux";
|
|
154
|
-
import "custom-protocol-check";
|
|
155
|
-
import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
|
|
156
158
|
import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
|
|
157
159
|
import "../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.es.js";
|
|
158
160
|
import "../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
|
|
161
|
+
import "../PlayableIcon/PlayableIcon.es.js";
|
|
159
162
|
import "../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js";
|
|
160
163
|
import "../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
|
|
161
164
|
import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
|
|
162
165
|
import "../../containers/Actions/Actions.styled.es.js";
|
|
163
166
|
import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
|
|
164
167
|
import "../../containers/Actions/ActionIcon.es.js";
|
|
165
|
-
import "../
|
|
166
|
-
import "
|
|
168
|
+
import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
|
|
169
|
+
import "axios";
|
|
167
170
|
import "../SimpleFormDialog/SimpleFormDialog.es.js";
|
|
168
171
|
import "../EntityPath/EntityPath.styled.es.js";
|
|
169
172
|
import "../EntityPath/SegmentProvider.es.js";
|
|
@@ -179,6 +182,8 @@ import "../AttributeEditor/components/MinMaxField.es.js";
|
|
|
179
182
|
import "../EnumEditor/EnumEditor.styled.es.js";
|
|
180
183
|
import "../SearchFilter/filterDates.es.js";
|
|
181
184
|
import "../Badge/Badge.es.js";
|
|
185
|
+
import "../VersionUploader/components/UploadVersionDialog.es.js";
|
|
186
|
+
import "../VersionUploader/context/VersionUploadContext.es.js";
|
|
182
187
|
const ReviewableUpload = ({
|
|
183
188
|
projectName,
|
|
184
189
|
taskId,
|
|
@@ -198,7 +203,19 @@ const ReviewableUpload = ({
|
|
|
198
203
|
}) => {
|
|
199
204
|
var _a;
|
|
200
205
|
const [isDraggingFile, setIsDraggingFile] = useState(false);
|
|
201
|
-
const
|
|
206
|
+
const {
|
|
207
|
+
handleFileUpload: uploadFiles,
|
|
208
|
+
handleRemoveUpload,
|
|
209
|
+
uploading
|
|
210
|
+
} = useReviewablesUpload({
|
|
211
|
+
projectName,
|
|
212
|
+
versionId,
|
|
213
|
+
taskId,
|
|
214
|
+
folderId,
|
|
215
|
+
productId,
|
|
216
|
+
dispatch,
|
|
217
|
+
onUpload
|
|
218
|
+
});
|
|
202
219
|
const canUpload = Boolean(versionId);
|
|
203
220
|
useEffect(() => {
|
|
204
221
|
if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {
|
|
@@ -209,9 +226,9 @@ const ReviewableUpload = ({
|
|
|
209
226
|
}
|
|
210
227
|
});
|
|
211
228
|
setPendingFiles([]);
|
|
212
|
-
|
|
229
|
+
uploadFiles(files);
|
|
213
230
|
}
|
|
214
|
-
}, [canUpload, versionId, pendingFiles.length]);
|
|
231
|
+
}, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles]);
|
|
215
232
|
const isImageFile = (file) => {
|
|
216
233
|
return file.type.startsWith("image/");
|
|
217
234
|
};
|
|
@@ -221,16 +238,6 @@ const ReviewableUpload = ({
|
|
|
221
238
|
preview: isImageFile(file) ? URL.createObjectURL(file) : void 0
|
|
222
239
|
}));
|
|
223
240
|
};
|
|
224
|
-
const handleRemoveUpload = (name) => {
|
|
225
|
-
if (!versionId) return;
|
|
226
|
-
setUploads((uploads) => {
|
|
227
|
-
var _a2;
|
|
228
|
-
return {
|
|
229
|
-
...uploads,
|
|
230
|
-
[versionId]: ((_a2 = uploads[versionId]) == null ? void 0 : _a2.filter((upload) => upload.name !== name)) || []
|
|
231
|
-
};
|
|
232
|
-
});
|
|
233
|
-
};
|
|
234
241
|
const handleFileUpload = async (files) => {
|
|
235
242
|
const fileArray = Array.from(files);
|
|
236
243
|
onFilesAdded == null ? void 0 : onFilesAdded(fileArray);
|
|
@@ -240,86 +247,7 @@ const ReviewableUpload = ({
|
|
|
240
247
|
}
|
|
241
248
|
return;
|
|
242
249
|
}
|
|
243
|
-
|
|
244
|
-
name: file.name,
|
|
245
|
-
size: file.size,
|
|
246
|
-
progress: 0
|
|
247
|
-
}));
|
|
248
|
-
const newUploadsForVersion = [...uploading[versionId] || [], ...uploadingFiles];
|
|
249
|
-
setUploads({ ...uploading, [versionId]: newUploadsForVersion });
|
|
250
|
-
const successHandler = (file) => (response) => {
|
|
251
|
-
if (!versionId) return;
|
|
252
|
-
console.log(`Upload successful for ${file.name}`);
|
|
253
|
-
const data = response.data;
|
|
254
|
-
if (!projectName) return;
|
|
255
|
-
dispatch(
|
|
256
|
-
// @ts-ignore
|
|
257
|
-
enhancedEndpoints.util.updateQueryData(
|
|
258
|
-
"getReviewablesForVersion",
|
|
259
|
-
{ projectName, versionId },
|
|
260
|
-
(draft) => {
|
|
261
|
-
if (!draft.reviewables) {
|
|
262
|
-
draft.reviewables = [];
|
|
263
|
-
}
|
|
264
|
-
draft.reviewables.push(data);
|
|
265
|
-
}
|
|
266
|
-
)
|
|
267
|
-
);
|
|
268
|
-
productId && dispatch(api.util.invalidateTags([{ type: "viewer", id: productId }]));
|
|
269
|
-
dispatch(api.util.invalidateTags([{ type: "viewer", id: versionId }]));
|
|
270
|
-
folderId && dispatch(api.util.invalidateTags([{ type: "viewer", id: folderId }]));
|
|
271
|
-
taskId && dispatch(api.util.invalidateTags([{ type: "viewer", id: taskId }]));
|
|
272
|
-
handleRemoveUpload(file.name);
|
|
273
|
-
};
|
|
274
|
-
const errorHandler = (file) => (error) => {
|
|
275
|
-
if (!versionId) return;
|
|
276
|
-
console.error(`Upload failed for ${file.name}: ${error}`);
|
|
277
|
-
toast.error(`Failed to upload file: ${file.name}`);
|
|
278
|
-
setUploads((uploads) => {
|
|
279
|
-
const currentUploads = uploads[versionId] || [];
|
|
280
|
-
const updatedUploads = currentUploads.map((upload) => {
|
|
281
|
-
if (upload.name !== file.name) return upload;
|
|
282
|
-
return {
|
|
283
|
-
...upload,
|
|
284
|
-
error: error.response.data.detail || error.message
|
|
285
|
-
};
|
|
286
|
-
});
|
|
287
|
-
return {
|
|
288
|
-
...uploads,
|
|
289
|
-
[versionId]: updatedUploads
|
|
290
|
-
};
|
|
291
|
-
});
|
|
292
|
-
};
|
|
293
|
-
const progressHandler = (file) => {
|
|
294
|
-
if (!versionId) return () => {
|
|
295
|
-
};
|
|
296
|
-
return (progressEvent) => setUploads((uploads) => {
|
|
297
|
-
const currentUploads = uploads[versionId] || [];
|
|
298
|
-
const updatedUploads = currentUploads.map((upload) => {
|
|
299
|
-
if (upload.name !== file.name) return upload;
|
|
300
|
-
return {
|
|
301
|
-
...upload,
|
|
302
|
-
progress: progressEvent.total ? Math.round(progressEvent.loaded / progressEvent.total * 100) : 0
|
|
303
|
-
};
|
|
304
|
-
});
|
|
305
|
-
return {
|
|
306
|
-
...uploads,
|
|
307
|
-
[versionId]: updatedUploads
|
|
308
|
-
};
|
|
309
|
-
});
|
|
310
|
-
};
|
|
311
|
-
try {
|
|
312
|
-
for (const file of fileArray) {
|
|
313
|
-
const autoLabel = file.name.split(".").slice(0, -1).join(".");
|
|
314
|
-
const url = `/api/projects/${projectName}/versions/${versionId}/reviewables?label=${autoLabel}`;
|
|
315
|
-
const headers = { "content-type": file.type, "x-file-name": file.name };
|
|
316
|
-
axios.post(url, file, { headers, onUploadProgress: progressHandler(file) }).then(successHandler(file)).catch(errorHandler(file));
|
|
317
|
-
}
|
|
318
|
-
onUpload && onUpload();
|
|
319
|
-
} catch (error) {
|
|
320
|
-
console.error(error);
|
|
321
|
-
toast.error("Failed to upload file/s");
|
|
322
|
-
}
|
|
250
|
+
await uploadFiles(files);
|
|
323
251
|
};
|
|
324
252
|
const handleInputChange = (event) => {
|
|
325
253
|
const files = event.target.files;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\nimport { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\n\n// components\nimport { ReviewableProgress, ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n handleFileUpload(files)\n }\n }, [canUpload, versionId, pendingFiles.length])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleRemoveUpload = (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n const uploadingFiles = fileArray.map((file) => ({\n name: file.name,\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[versionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [versionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!versionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: versionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(file.name)\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!versionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for versionId\n const currentUploads = uploads[versionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== file.name) return upload\n return {\n ...upload,\n error: error.response.data.detail || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [versionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!versionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for versionId\n const currentUploads = uploads[versionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== file.name) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // update state\n return {\n ...uploads,\n [versionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n for (const file of fileArray) {\n const autoLabel = file.name.split('.').slice(0, -1).join('.')\n\n const url = `/api/projects/${projectName}/versions/${versionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': file.name }\n axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n }\n // Callback after successful uploads\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["_a","reviewablesQueries","jsxs","Fragment","jsx","Styled.ReviewablesList","Styled.Upload","Styled.Dropzone"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesUpload.tsx"],"sourcesContent":["import { FC, useState, DragEvent, ChangeEvent, useEffect } from 'react'\nimport clsx from 'clsx'\n\nimport { Icon } from '@ynput/ayon-react-components'\n\n// components\nimport { ReviewableProgressCard } from '@shared/components'\nimport * as Styled from './ReviewablesUpload.styled'\nimport { useReviewablesUpload } from './useReviewablesUpload'\n\nexport interface ReviewableUploadProps extends React.HTMLProps<HTMLDivElement> {\n projectName: string | null\n taskId?: string | null\n folderId?: string | null\n versionId?: string | null\n productId?: string | null\n variant?: 'normal' | 'large'\n dispatch: any\n pendingFiles?: Array<{ file: File; preview?: string }>\n setPendingFiles?: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n onUpload?: () => void\n onFilesAdded?: (files: File[]) => void\n children?: any\n pt?: {\n upload?: React.HTMLProps<HTMLDivElement>\n dropzone?: React.HTMLProps<HTMLDivElement>\n }\n}\n\nexport const ReviewableUpload: FC<ReviewableUploadProps> = ({\n projectName,\n taskId,\n folderId,\n versionId,\n productId,\n onUpload,\n onFilesAdded,\n children,\n dispatch,\n variant = 'normal',\n pendingFiles = [],\n setPendingFiles,\n className,\n pt,\n ...props\n}) => {\n // are we dragging a file over?\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n\n // Use the custom hook for upload logic\n const {\n handleFileUpload: uploadFiles,\n handleRemoveUpload,\n uploading,\n } = useReviewablesUpload({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n })\n\n // Check if we can upload files straight away\n const canUpload = Boolean(versionId)\n\n // Monitor changes to versionId to trigger pending uploads\n useEffect(() => {\n if (canUpload && versionId && pendingFiles.length > 0 && setPendingFiles) {\n const files = pendingFiles.map((item) => item.file)\n // Clear pending files for this version and revoke object URLs\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n // Start upload\n uploadFiles(files)\n }\n }, [canUpload, versionId, pendingFiles.length, uploadFiles, setPendingFiles])\n\n // Helper function to check if file is an image\n const isImageFile = (file: File) => {\n return file.type.startsWith('image/')\n }\n\n // Helper function to create file items with previews\n const createFileItems = (files: File[]) => {\n return files.map((file) => ({\n file,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }))\n }\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const fileArray = Array.from(files)\n\n // Notify parent about files being added for version extraction\n onFilesAdded?.(fileArray)\n\n // If we can't upload yet, store files as pending\n if (!canUpload || !versionId) {\n if (setPendingFiles) {\n setPendingFiles((prev) => [...prev, ...createFileItems(fileArray)])\n }\n return\n }\n\n // Use the hook's upload function for actual uploading\n await uploadFiles(files)\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n\n // when the user drops a file\n const handleFileDrop = (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsDraggingFile(false)\n\n const files = event.dataTransfer.files\n\n if (files) {\n handleFileUpload(files)\n }\n }\n const variantStyles =\n variant === 'large' ? { minWidth: '360px', maxWidth: '480px', alignSelf: 'center' } : {}\n\n return (\n <>\n <Styled.ReviewablesList\n className={clsx(className, variant, { dragging: isDraggingFile })}\n {...props}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <>\n {children}\n {/* pending files */}\n {!canUpload &&\n pendingFiles?.map((item) => (\n <ReviewableProgressCard\n key={item.file.name}\n name={item.file.name}\n size={item.file.size}\n src={item.preview}\n type={'waiting'}\n onRemove={() => {\n if (setPendingFiles) {\n setPendingFiles((prev) => prev.filter((f) => f.file.name !== item.file.name))\n }\n }}\n />\n ))}\n {/* uploading items */}\n {versionId &&\n uploading[versionId]?.map((file) => (\n <ReviewableProgressCard\n key={file.name}\n {...file}\n type={'upload'}\n onRemove={() => handleRemoveUpload(file.name)}\n />\n ))}\n\n {/* upload button */}\n <Styled.Upload\n id=\"upload\"\n className={clsx('upload', variant)}\n style={variantStyles}\n {...pt?.upload}\n >\n <span>Drop or click to upload</span>\n <input type=\"file\" multiple onChange={handleInputChange} />\n </Styled.Upload>\n </>\n </Styled.ReviewablesList>\n\n {isDraggingFile && (\n <Styled.Dropzone\n onDragOver={(e) => e.preventDefault()}\n onDragLeave={() => setIsDraggingFile(false)}\n onDrop={handleFileDrop}\n {...pt?.dropzone}\n >\n <Icon icon=\"upload\" />\n <span>Upload reviewable</span>\n </Styled.Dropzone>\n )}\n </>\n )\n}\n\nexport default ReviewableUpload\n"],"names":["jsxs","Fragment","jsx","Styled.ReviewablesList","Styled.Upload","Styled.Dropzone"],"mappings":"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"}
|