@webiny/app-file-manager 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7be00a75a9
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/README.md +7 -28
- package/app.d.ts +2 -0
- package/app.js +57 -0
- package/app.js.map +1 -0
- package/domain/constants.d.ts +4 -0
- package/domain/constants.js +7 -0
- package/domain/constants.js.map +1 -0
- package/domain/permissionsSchema.d.ts +18 -0
- package/domain/permissionsSchema.js +32 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/domain/tagsHelpers.d.ts +16 -0
- package/domain/tagsHelpers.js +25 -0
- package/domain/tagsHelpers.js.map +1 -0
- package/domain/types.d.ts +34 -0
- package/domain/types.js +0 -0
- package/exports/admin/ui/file-manager.d.ts +2 -0
- package/exports/admin/ui/file-manager.js +1 -0
- package/features/deleteFile/DeleteFile.test.d.ts +1 -0
- package/features/deleteFile/DeleteFile.test.js +150 -0
- package/features/deleteFile/DeleteFile.test.js.map +1 -0
- package/features/deleteFile/DeleteFileGateway.d.ts +11 -0
- package/features/deleteFile/DeleteFileGateway.js +23 -0
- package/features/deleteFile/DeleteFileGateway.js.map +1 -0
- package/features/deleteFile/DeleteFileRepository.d.ts +12 -0
- package/features/deleteFile/DeleteFileRepository.js +26 -0
- package/features/deleteFile/DeleteFileRepository.js.map +1 -0
- package/features/deleteFile/DeleteFileUseCase.d.ts +10 -0
- package/features/deleteFile/DeleteFileUseCase.js +34 -0
- package/features/deleteFile/DeleteFileUseCase.js.map +1 -0
- package/features/deleteFile/abstractions.d.ts +36 -0
- package/features/deleteFile/abstractions.js +7 -0
- package/features/deleteFile/abstractions.js.map +1 -0
- package/features/deleteFile/feature.d.ts +3 -0
- package/features/deleteFile/feature.js +21 -0
- package/features/deleteFile/feature.js.map +1 -0
- package/features/deleteFile/index.d.ts +3 -0
- package/features/deleteFile/index.js +2 -0
- package/features/fileModel/FileModelProvider.d.ts +12 -0
- package/features/fileModel/FileModelProvider.js +21 -0
- package/features/fileModel/FileModelProvider.js.map +1 -0
- package/features/fileModel/GetFileModelGqlGateway.d.ts +12 -0
- package/features/fileModel/GetFileModelGqlGateway.js +38 -0
- package/features/fileModel/GetFileModelGqlGateway.js.map +1 -0
- package/features/fileModel/GetFileModelRepository.d.ts +14 -0
- package/features/fileModel/GetFileModelRepository.js +32 -0
- package/features/fileModel/GetFileModelRepository.js.map +1 -0
- package/features/fileModel/abstractions.d.ts +24 -0
- package/features/fileModel/abstractions.js +7 -0
- package/features/fileModel/abstractions.js.map +1 -0
- package/features/fileModel/feature.d.ts +1 -0
- package/features/fileModel/feature.js +15 -0
- package/features/fileModel/feature.js.map +1 -0
- package/features/fileModel/index.d.ts +2 -0
- package/features/fileModel/index.js +2 -0
- package/features/fileUploader/FileUploader.d.ts +23 -0
- package/features/fileUploader/FileUploader.js +243 -0
- package/features/fileUploader/FileUploader.js.map +1 -0
- package/features/fileUploader/FileUploader.test.d.ts +1 -0
- package/features/fileUploader/FileUploader.test.js +427 -0
- package/features/fileUploader/FileUploader.test.js.map +1 -0
- package/features/fileUploader/abstractions.d.ts +51 -0
- package/features/fileUploader/abstractions.js +5 -0
- package/features/fileUploader/abstractions.js.map +1 -0
- package/features/fileUploader/feature.d.ts +3 -0
- package/features/fileUploader/feature.js +17 -0
- package/features/fileUploader/feature.js.map +1 -0
- package/features/fileUploader/index.d.ts +3 -0
- package/features/fileUploader/index.js +2 -0
- package/features/fileUrlFormatter/FileUrlFormatter.d.ts +8 -0
- package/features/fileUrlFormatter/FileUrlFormatter.js +13 -0
- package/features/fileUrlFormatter/FileUrlFormatter.js.map +1 -0
- package/features/fileUrlFormatter/abstractions.d.ts +1 -0
- package/features/fileUrlFormatter/abstractions.js +1 -0
- package/features/fileUrlFormatter/feature.d.ts +1 -0
- package/features/fileUrlFormatter/feature.js +11 -0
- package/features/fileUrlFormatter/feature.js.map +1 -0
- package/features/getFile/GetFileGateway.d.ts +14 -0
- package/features/getFile/GetFileGateway.js +28 -0
- package/features/getFile/GetFileGateway.js.map +1 -0
- package/features/getFile/GetFileRepository.d.ts +11 -0
- package/features/getFile/GetFileRepository.js +18 -0
- package/features/getFile/GetFileRepository.js.map +1 -0
- package/features/getFile/GetFileUseCase.d.ts +10 -0
- package/features/getFile/GetFileUseCase.js +35 -0
- package/features/getFile/GetFileUseCase.js.map +1 -0
- package/features/getFile/abstractions.d.ts +38 -0
- package/features/getFile/abstractions.js +7 -0
- package/features/getFile/abstractions.js.map +1 -0
- package/features/getFile/feature.d.ts +3 -0
- package/features/getFile/feature.js +21 -0
- package/features/getFile/feature.js.map +1 -0
- package/features/getFile/index.d.ts +3 -0
- package/features/getFile/index.js +2 -0
- package/features/listFiles/ListFiles.test.d.ts +1 -0
- package/features/listFiles/ListFiles.test.js +192 -0
- package/features/listFiles/ListFiles.test.js.map +1 -0
- package/features/listFiles/ListFilesGateway.d.ts +13 -0
- package/features/listFiles/ListFilesGateway.js +35 -0
- package/features/listFiles/ListFilesGateway.js.map +1 -0
- package/features/listFiles/ListFilesRepository.d.ts +12 -0
- package/features/listFiles/ListFilesRepository.js +26 -0
- package/features/listFiles/ListFilesRepository.js.map +1 -0
- package/features/listFiles/ListFilesUseCase.d.ts +10 -0
- package/features/listFiles/ListFilesUseCase.js +28 -0
- package/features/listFiles/ListFilesUseCase.js.map +1 -0
- package/features/listFiles/abstractions.d.ts +45 -0
- package/features/listFiles/abstractions.js +7 -0
- package/features/listFiles/abstractions.js.map +1 -0
- package/features/listFiles/feature.d.ts +3 -0
- package/features/listFiles/feature.js +21 -0
- package/features/listFiles/feature.js.map +1 -0
- package/features/listFiles/index.d.ts +3 -0
- package/features/listFiles/index.js +2 -0
- package/features/permissions/abstractions.d.ts +17 -0
- package/features/permissions/abstractions.js +6 -0
- package/features/permissions/abstractions.js.map +1 -0
- package/features/permissions/feature.d.ts +14 -0
- package/features/permissions/feature.js +7 -0
- package/features/permissions/feature.js.map +1 -0
- package/features/resolveImageTool/ResolveImageTool.d.ts +40 -0
- package/features/resolveImageTool/ResolveImageTool.js +49 -0
- package/features/resolveImageTool/ResolveImageTool.js.map +1 -0
- package/features/resolveImageTool/feature.d.ts +1 -0
- package/features/resolveImageTool/feature.js +11 -0
- package/features/resolveImageTool/feature.js.map +1 -0
- package/features/settings/GetSettings.test.d.ts +1 -0
- package/features/settings/GetSettings.test.js +92 -0
- package/features/settings/GetSettings.test.js.map +1 -0
- package/features/settings/GetSettingsGateway.d.ts +12 -0
- package/features/settings/GetSettingsGateway.js +43 -0
- package/features/settings/GetSettingsGateway.js.map +1 -0
- package/features/settings/GetSettingsRepository.d.ts +14 -0
- package/features/settings/GetSettingsRepository.js +34 -0
- package/features/settings/GetSettingsRepository.js.map +1 -0
- package/features/settings/GetSettingsUseCase.d.ts +11 -0
- package/features/settings/GetSettingsUseCase.js +18 -0
- package/features/settings/GetSettingsUseCase.js.map +1 -0
- package/features/settings/SaveSettingsGateway.d.ts +12 -0
- package/features/settings/SaveSettingsGateway.js +50 -0
- package/features/settings/SaveSettingsGateway.js.map +1 -0
- package/features/settings/abstractions.d.ts +31 -0
- package/features/settings/abstractions.js +8 -0
- package/features/settings/abstractions.js.map +1 -0
- package/features/settings/feature.d.ts +3 -0
- package/features/settings/feature.js +23 -0
- package/features/settings/feature.js.map +1 -0
- package/features/settings/index.d.ts +3 -0
- package/features/settings/index.js +2 -0
- package/features/shared/FILE_FIELDS.d.ts +1 -0
- package/features/shared/FILE_FIELDS.js +32 -0
- package/features/shared/FILE_FIELDS.js.map +1 -0
- package/features/shared/FileFieldsProvider.d.ts +8 -0
- package/features/shared/FileFieldsProvider.js +14 -0
- package/features/shared/FileFieldsProvider.js.map +1 -0
- package/features/shared/FileFieldsProviderWithWcp.d.ts +12 -0
- package/features/shared/FileFieldsProviderWithWcp.js +25 -0
- package/features/shared/FileFieldsProviderWithWcp.js.map +1 -0
- package/features/shared/FilesListCache.d.ts +1 -0
- package/features/shared/FilesListCache.js +1 -0
- package/features/shared/abstractions.d.ts +13 -0
- package/features/shared/abstractions.js +6 -0
- package/features/shared/abstractions.js.map +1 -0
- package/features/shared/feature.d.ts +5 -0
- package/features/shared/feature.js +22 -0
- package/features/shared/feature.js.map +1 -0
- package/features/shared/index.d.ts +4 -0
- package/features/shared/index.js +3 -0
- package/features/shared/types.d.ts +16 -0
- package/features/shared/types.js +0 -0
- package/features/tags/ListTags.test.d.ts +1 -0
- package/features/tags/ListTags.test.js +126 -0
- package/features/tags/ListTags.test.js.map +1 -0
- package/features/tags/ListTagsGateway.d.ts +11 -0
- package/features/tags/ListTagsGateway.js +23 -0
- package/features/tags/ListTagsGateway.js.map +1 -0
- package/features/tags/ListTagsRepository.d.ts +12 -0
- package/features/tags/ListTagsRepository.js +25 -0
- package/features/tags/ListTagsRepository.js.map +1 -0
- package/features/tags/ListTagsUseCase.d.ts +10 -0
- package/features/tags/ListTagsUseCase.js +20 -0
- package/features/tags/ListTagsUseCase.js.map +1 -0
- package/features/tags/abstractions.d.ts +32 -0
- package/features/tags/abstractions.js +7 -0
- package/features/tags/abstractions.js.map +1 -0
- package/features/tags/feature.d.ts +3 -0
- package/features/tags/feature.js +21 -0
- package/features/tags/feature.js.map +1 -0
- package/features/tags/index.d.ts +3 -0
- package/features/tags/index.js +2 -0
- package/features/updateFile/UpdateFile.test.d.ts +1 -0
- package/features/updateFile/UpdateFile.test.js +260 -0
- package/features/updateFile/UpdateFile.test.js.map +1 -0
- package/features/updateFile/UpdateFileGateway.d.ts +12 -0
- package/features/updateFile/UpdateFileGateway.js +25 -0
- package/features/updateFile/UpdateFileGateway.js.map +1 -0
- package/features/updateFile/UpdateFileRepository.d.ts +14 -0
- package/features/updateFile/UpdateFileRepository.js +32 -0
- package/features/updateFile/UpdateFileRepository.js.map +1 -0
- package/features/updateFile/UpdateFileUseCase.d.ts +12 -0
- package/features/updateFile/UpdateFileUseCase.js +41 -0
- package/features/updateFile/UpdateFileUseCase.js.map +1 -0
- package/features/updateFile/abstractions.d.ts +53 -0
- package/features/updateFile/abstractions.js +7 -0
- package/features/updateFile/abstractions.js.map +1 -0
- package/features/updateFile/feature.d.ts +3 -0
- package/features/updateFile/feature.js +21 -0
- package/features/updateFile/feature.js.map +1 -0
- package/features/updateFile/index.d.ts +3 -0
- package/features/updateFile/index.js +2 -0
- package/index.d.ts +3 -2
- package/index.js +3 -37
- package/modules/Enterprise/HandleWebsocketMessages.d.ts +1 -0
- package/modules/Enterprise/HandleWebsocketMessages.js +53 -0
- package/modules/Enterprise/HandleWebsocketMessages.js.map +1 -0
- package/modules/Enterprise/components/ThreatScanInProgressFileBody.d.ts +2 -0
- package/modules/Enterprise/components/ThreatScanInProgressFileBody.js +22 -0
- package/modules/Enterprise/components/ThreatScanInProgressFileBody.js.map +1 -0
- package/modules/Enterprise/components/ThreatScanInProgressTableCell.d.ts +6 -0
- package/modules/Enterprise/components/ThreatScanInProgressTableCell.js +20 -0
- package/modules/Enterprise/components/ThreatScanInProgressTableCell.js.map +1 -0
- package/modules/Enterprise/constants.d.ts +3 -0
- package/modules/Enterprise/constants.js +6 -0
- package/modules/Enterprise/constants.js.map +1 -0
- package/modules/Enterprise/index.d.ts +2 -0
- package/modules/Enterprise/index.js +30 -0
- package/modules/Enterprise/index.js.map +1 -0
- package/modules/FileManagerRoutes.d.ts +2 -0
- package/modules/FileManagerRoutes.js +31 -0
- package/modules/FileManagerRoutes.js.map +1 -0
- package/modules/FileModelModule.d.ts +2 -0
- package/modules/FileModelModule.js +18 -0
- package/modules/FileModelModule.js.map +1 -0
- package/modules/FileUrlFormatter.d.ts +2 -0
- package/modules/FileUrlFormatter.js +9 -0
- package/modules/FileUrlFormatter.js.map +1 -0
- package/modules/HeadlessCms/fileField.d.ts +2 -0
- package/modules/HeadlessCms/fileField.js +44 -0
- package/modules/HeadlessCms/fileField.js.map +1 -0
- package/modules/HeadlessCms/fileRenderer/fileField.d.ts +2 -0
- package/modules/HeadlessCms/fileRenderer/fileField.js +53 -0
- package/modules/HeadlessCms/fileRenderer/fileField.js.map +1 -0
- package/modules/HeadlessCms/fileRenderer/fileFields.d.ts +2 -0
- package/modules/HeadlessCms/fileRenderer/fileFields.js +73 -0
- package/modules/HeadlessCms/fileRenderer/fileFields.js.map +1 -0
- package/modules/HeadlessCms/fileRenderer/utils.d.ts +2 -0
- package/modules/HeadlessCms/fileRenderer/utils.js +15 -0
- package/modules/HeadlessCms/fileRenderer/utils.js.map +1 -0
- package/modules/HeadlessCms/index.d.ts +1 -0
- package/modules/HeadlessCms/index.js +14 -0
- package/modules/HeadlessCms/index.js.map +1 -0
- package/modules/SecurityPermissions.d.ts +2 -0
- package/modules/SecurityPermissions.js +15 -0
- package/modules/SecurityPermissions.js.map +1 -0
- package/modules/Settings/assets/icons/folder-open.js +19 -0
- package/modules/Settings/assets/icons/folder-open.js.map +1 -0
- package/{admin → modules/Settings}/graphql.d.ts +7 -0
- package/modules/Settings/graphql.js +36 -0
- package/modules/Settings/graphql.js.map +1 -0
- package/modules/Settings/index.d.ts +2 -0
- package/modules/Settings/index.js +27 -0
- package/modules/Settings/index.js.map +1 -0
- package/modules/Settings/views/FileManagerSettings.d.ts +2 -0
- package/modules/Settings/views/FileManagerSettings.js +134 -0
- package/modules/Settings/views/FileManagerSettings.js.map +1 -0
- package/package.json +46 -37
- package/presentation/FileActions/FileDetails/CopyUrl.d.ts +2 -0
- package/presentation/FileActions/FileDetails/CopyUrl.js +19 -0
- package/presentation/FileActions/FileDetails/CopyUrl.js.map +1 -0
- package/presentation/FileActions/FileDetails/DeleteImage.d.ts +2 -0
- package/presentation/FileActions/FileDetails/DeleteImage.js +24 -0
- package/presentation/FileActions/FileDetails/DeleteImage.js.map +1 -0
- package/presentation/FileActions/FileDetails/Download.d.ts +2 -0
- package/presentation/FileActions/FileDetails/Download.js +19 -0
- package/presentation/FileActions/FileDetails/Download.js.map +1 -0
- package/presentation/FileActions/FileDetails/MoveToFolder.d.ts +2 -0
- package/presentation/FileActions/FileDetails/MoveToFolder.js +16 -0
- package/presentation/FileActions/FileDetails/MoveToFolder.js.map +1 -0
- package/presentation/FileActions/Grid/Delete.d.ts +2 -0
- package/presentation/FileActions/Grid/Delete.js +23 -0
- package/presentation/FileActions/Grid/Delete.js.map +1 -0
- package/presentation/FileActions/Grid/Download.d.ts +2 -0
- package/presentation/FileActions/Grid/Download.js +19 -0
- package/presentation/FileActions/Grid/Download.js.map +1 -0
- package/presentation/FileActions/Grid/MoveToFolder.d.ts +2 -0
- package/presentation/FileActions/Grid/MoveToFolder.js +16 -0
- package/presentation/FileActions/Grid/MoveToFolder.js.map +1 -0
- package/presentation/FileActions/Grid/Settings.d.ts +2 -0
- package/presentation/FileActions/Grid/Settings.js +23 -0
- package/presentation/FileActions/Grid/Settings.js.map +1 -0
- package/presentation/FileActions/index.d.ts +2 -0
- package/presentation/FileActions/index.js +39 -0
- package/presentation/FileActions/index.js.map +1 -0
- package/presentation/FileDetails/FileDetailsPresenter.d.ts +28 -0
- package/presentation/FileDetails/FileDetailsPresenter.js +138 -0
- package/presentation/FileDetails/FileDetailsPresenter.js.map +1 -0
- package/presentation/FileDetails/FileDetailsPresenter.test.d.ts +1 -0
- package/presentation/FileDetails/FileDetailsPresenter.test.js +280 -0
- package/presentation/FileDetails/FileDetailsPresenter.test.js.map +1 -0
- package/presentation/FileDetails/abstractions.d.ts +22 -0
- package/presentation/FileDetails/abstractions.js +5 -0
- package/presentation/FileDetails/abstractions.js.map +1 -0
- package/presentation/FileDetails/components/ActionButton.d.ts +10 -0
- package/presentation/FileDetails/components/ActionButton.js +15 -0
- package/presentation/FileDetails/components/ActionButton.js.map +1 -0
- package/presentation/FileDetails/components/Actions.d.ts +2 -0
- package/presentation/FileDetails/components/Actions.js +13 -0
- package/presentation/FileDetails/components/Actions.js.map +1 -0
- package/presentation/FileDetails/components/Content.d.ts +14 -0
- package/presentation/FileDetails/components/Content.js +20 -0
- package/presentation/FileDetails/components/Content.js.map +1 -0
- package/presentation/FileDetails/components/CreatedOn.d.ts +2 -0
- package/presentation/FileDetails/components/CreatedOn.js +21 -0
- package/presentation/FileDetails/components/CreatedOn.js.map +1 -0
- package/presentation/FileDetails/components/Description.d.ts +2 -0
- package/presentation/FileDetails/components/Description.js +16 -0
- package/presentation/FileDetails/components/Description.js.map +1 -0
- package/presentation/FileDetails/components/FileDetailsDrawer.d.ts +4 -0
- package/presentation/FileDetails/components/FileDetailsDrawer.js +73 -0
- package/presentation/FileDetails/components/FileDetailsDrawer.js.map +1 -0
- package/presentation/FileDetails/components/Preview.d.ts +2 -0
- package/presentation/FileDetails/components/Preview.js +15 -0
- package/presentation/FileDetails/components/Preview.js.map +1 -0
- package/presentation/FileDetails/components/Thumbnail.d.ts +2 -0
- package/presentation/FileDetails/components/Thumbnail.js +12 -0
- package/presentation/FileDetails/components/Thumbnail.js.map +1 -0
- package/presentation/FileDetails/feature.d.ts +3 -0
- package/presentation/FileDetails/feature.js +17 -0
- package/presentation/FileDetails/feature.js.map +1 -0
- package/presentation/FileDetails/index.d.ts +3 -0
- package/presentation/FileDetails/index.js +2 -0
- package/presentation/FileList/FileListDataSource.d.ts +20 -0
- package/presentation/FileList/FileListDataSource.js +122 -0
- package/presentation/FileList/FileListDataSource.js.map +1 -0
- package/presentation/FileList/FileListPresenter.test.d.ts +1 -0
- package/presentation/FileList/FileListPresenter.test.js +424 -0
- package/presentation/FileList/FileListPresenter.test.js.map +1 -0
- package/presentation/FileList/FileManagerPresenter.d.ts +43 -0
- package/presentation/FileList/FileManagerPresenter.js +213 -0
- package/presentation/FileList/FileManagerPresenter.js.map +1 -0
- package/presentation/FileList/FileManagerPresenterProvider.d.ts +9 -0
- package/presentation/FileList/FileManagerPresenterProvider.js +13 -0
- package/presentation/FileList/FileManagerPresenterProvider.js.map +1 -0
- package/presentation/FileList/abstractions.d.ts +76 -0
- package/presentation/FileList/abstractions.js +5 -0
- package/presentation/FileList/abstractions.js.map +1 -0
- package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.d.ts +6 -0
- package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.js +12 -0
- package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
- package/presentation/FileList/components/BottomInfoBar/ListStatus.d.ts +6 -0
- package/presentation/FileList/components/BottomInfoBar/ListStatus.js +20 -0
- package/presentation/FileList/components/BottomInfoBar/ListStatus.js.map +1 -0
- package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.d.ts +8 -0
- package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.js +56 -0
- package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/presentation/FileList/components/BottomInfoBar/index.d.ts +1 -0
- package/presentation/FileList/components/BottomInfoBar/index.js +1 -0
- package/presentation/FileList/components/BulkActions/ActionEdit.types.d.ts +2 -0
- package/presentation/FileList/components/BulkActions/ActionEdit.types.js +0 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.d.ts +35 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.js +55 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.js.map +1 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.d.ts +1 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.js +170 -0
- package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.d.ts +7 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.js +15 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.d.ts +15 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.js +44 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.d.ts +15 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.js +52 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.d.ts +61 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.js +111 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.d.ts +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.js +372 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.d.ts +8 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.js +31 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.d.ts +11 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.js +33 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/index.d.ts +1 -0
- package/presentation/FileList/components/BulkActions/BatchEditorDialog/index.js +1 -0
- package/presentation/FileList/components/BulkActions/BulkActionBar.d.ts +5 -0
- package/presentation/FileList/components/BulkActions/BulkActionBar.js +42 -0
- package/presentation/FileList/components/BulkActions/BulkActionBar.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BulkActionDelete.d.ts +4 -0
- package/presentation/FileList/components/BulkActions/BulkActionDelete.js +65 -0
- package/presentation/FileList/components/BulkActions/BulkActionDelete.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BulkActionEdit.d.ts +4 -0
- package/presentation/FileList/components/BulkActions/BulkActionEdit.js +105 -0
- package/presentation/FileList/components/BulkActions/BulkActionEdit.js.map +1 -0
- package/presentation/FileList/components/BulkActions/BulkActionMove.d.ts +4 -0
- package/presentation/FileList/components/BulkActions/BulkActionMove.js +87 -0
- package/presentation/FileList/components/BulkActions/BulkActionMove.js.map +1 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.d.ts +23 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.js +40 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.js.map +1 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.d.ts +1 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.js +319 -0
- package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.js.map +1 -0
- package/presentation/FileList/components/BulkActions/domain/Batch.d.ts +32 -0
- package/presentation/FileList/components/BulkActions/domain/Batch.js +32 -0
- package/presentation/FileList/components/BulkActions/domain/Batch.js.map +1 -0
- package/presentation/FileList/components/BulkActions/domain/BatchMapper.d.ts +4 -0
- package/presentation/FileList/components/BulkActions/domain/BatchMapper.js +14 -0
- package/presentation/FileList/components/BulkActions/domain/BatchMapper.js.map +1 -0
- package/presentation/FileList/components/BulkActions/domain/Field.d.ts +32 -0
- package/presentation/FileList/components/BulkActions/domain/Field.js +49 -0
- package/presentation/FileList/components/BulkActions/domain/Field.js.map +1 -0
- package/presentation/FileList/components/BulkActions/domain/FieldMapper.d.ts +7 -0
- package/presentation/FileList/components/BulkActions/domain/FieldMapper.js +21 -0
- package/presentation/FileList/components/BulkActions/domain/FieldMapper.js.map +1 -0
- package/presentation/FileList/components/BulkActions/domain/index.d.ts +4 -0
- package/presentation/FileList/components/BulkActions/domain/index.js +4 -0
- package/presentation/FileList/components/BulkActions/index.d.ts +5 -0
- package/presentation/FileList/components/BulkActions/index.js +5 -0
- package/presentation/FileList/components/BulkActions/useBulkActionWorker.d.ts +16 -0
- package/presentation/FileList/components/BulkActions/useBulkActionWorker.js +43 -0
- package/presentation/FileList/components/BulkActions/useBulkActionWorker.js.map +1 -0
- package/presentation/FileList/components/Empty/Empty.d.ts +8 -0
- package/presentation/FileList/components/Empty/Empty.js +20 -0
- package/presentation/FileList/components/Empty/Empty.js.map +1 -0
- package/presentation/FileList/components/Empty/index.d.ts +1 -0
- package/presentation/FileList/components/Empty/index.js +1 -0
- package/presentation/FileList/components/FileDropArea/FileDropArea.d.ts +9 -0
- package/presentation/FileList/components/FileDropArea/FileDropArea.js +62 -0
- package/presentation/FileList/components/FileDropArea/FileDropArea.js.map +1 -0
- package/presentation/FileList/components/FileDropArea/index.d.ts +1 -0
- package/presentation/FileList/components/FileDropArea/index.js +1 -0
- package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.d.ts +2 -0
- package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.js +11 -0
- package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.js.map +1 -0
- package/presentation/FileList/components/FileDropPlaceholder/index.d.ts +1 -0
- package/presentation/FileList/components/FileDropPlaceholder/index.js +1 -0
- package/presentation/FileList/components/FilePicker/FilePicker.d.ts +11 -0
- package/presentation/FileList/components/FilePicker/FilePicker.js +28 -0
- package/presentation/FileList/components/FilePicker/FilePicker.js.map +1 -0
- package/presentation/FileList/components/Filters/FilterByType.d.ts +2 -0
- package/presentation/FileList/components/Filters/FilterByType.js +39 -0
- package/presentation/FileList/components/Filters/FilterByType.js.map +1 -0
- package/presentation/FileList/components/Filters/SubFoldersToggle.d.ts +9 -0
- package/presentation/FileList/components/Filters/SubFoldersToggle.js +25 -0
- package/presentation/FileList/components/Filters/SubFoldersToggle.js.map +1 -0
- package/presentation/FileList/components/Filters/TagsFilter.d.ts +9 -0
- package/presentation/FileList/components/Filters/TagsFilter.js +86 -0
- package/presentation/FileList/components/Filters/TagsFilter.js.map +1 -0
- package/presentation/FileList/components/Filters/TypeFilter.d.ts +8 -0
- package/presentation/FileList/components/Filters/TypeFilter.js +46 -0
- package/presentation/FileList/components/Filters/TypeFilter.js.map +1 -0
- package/presentation/FileList/components/Filters/index.d.ts +3 -0
- package/presentation/FileList/components/Filters/index.js +3 -0
- package/presentation/FileList/components/Grid/ActionButton.d.ts +9 -0
- package/presentation/FileList/components/Grid/ActionButton.js +24 -0
- package/presentation/FileList/components/Grid/ActionButton.js.map +1 -0
- package/presentation/FileList/components/Grid/File.d.ts +32 -0
- package/presentation/FileList/components/Grid/File.js +84 -0
- package/presentation/FileList/components/Grid/File.js.map +1 -0
- package/presentation/FileList/components/Grid/FileGrid.d.ts +9 -0
- package/presentation/FileList/components/Grid/FileGrid.js +162 -0
- package/presentation/FileList/components/Grid/FileGrid.js.map +1 -0
- package/presentation/FileList/components/Grid/FileGrid.test.d.ts +1 -0
- package/presentation/FileList/components/Grid/FileGrid.test.js +387 -0
- package/presentation/FileList/components/Grid/FileGrid.test.js.map +1 -0
- package/presentation/FileList/components/Grid/index.d.ts +1 -0
- package/presentation/FileList/components/Grid/index.js +1 -0
- package/presentation/FileList/components/Header/FileManagerHeader.d.ts +7 -0
- package/presentation/FileList/components/Header/FileManagerHeader.js +114 -0
- package/presentation/FileList/components/Header/FileManagerHeader.js.map +1 -0
- package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.d.ts +2 -0
- package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.js +24 -0
- package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.js.map +1 -0
- package/presentation/FileList/components/LayoutSwitch/index.d.ts +1 -0
- package/presentation/FileList/components/LayoutSwitch/index.js +1 -0
- package/presentation/FileList/components/NoPermissions/NoPermissions.d.ts +2 -0
- package/presentation/FileList/components/NoPermissions/NoPermissions.js +27 -0
- package/presentation/FileList/components/NoPermissions/NoPermissions.js.map +1 -0
- package/presentation/FileList/components/NoPermissions/index.d.ts +1 -0
- package/presentation/FileList/components/NoPermissions/index.js +1 -0
- package/presentation/FileList/components/NoResults/NoResults.d.ts +2 -0
- package/presentation/FileList/components/NoResults/NoResults.js +21 -0
- package/presentation/FileList/components/NoResults/NoResults.js.map +1 -0
- package/presentation/FileList/components/NoResults/index.d.ts +1 -0
- package/presentation/FileList/components/NoResults/index.js +1 -0
- package/presentation/FileList/components/Search/SearchBar.d.ts +9 -0
- package/presentation/FileList/components/Search/SearchBar.js +33 -0
- package/presentation/FileList/components/Search/SearchBar.js.map +1 -0
- package/presentation/FileList/components/Search/index.d.ts +1 -0
- package/presentation/FileList/components/Search/index.js +1 -0
- package/presentation/FileList/components/Table/Actions/CopyFile.d.ts +2 -0
- package/presentation/FileList/components/Table/Actions/CopyFile.js +21 -0
- package/presentation/FileList/components/Table/Actions/CopyFile.js.map +1 -0
- package/presentation/FileList/components/Table/Actions/DeleteFile.d.ts +2 -0
- package/presentation/FileList/components/Table/Actions/DeleteFile.js +24 -0
- package/presentation/FileList/components/Table/Actions/DeleteFile.js.map +1 -0
- package/presentation/FileList/components/Table/Actions/EditFile.d.ts +2 -0
- package/presentation/FileList/components/Table/Actions/EditFile.js +19 -0
- package/presentation/FileList/components/Table/Actions/EditFile.js.map +1 -0
- package/presentation/FileList/components/Table/Actions/MoveFile.d.ts +2 -0
- package/presentation/FileList/components/Table/Actions/MoveFile.js +19 -0
- package/presentation/FileList/components/Table/Actions/MoveFile.js.map +1 -0
- package/presentation/FileList/components/Table/Actions/index.d.ts +4 -0
- package/presentation/FileList/components/Table/Actions/index.js +4 -0
- package/presentation/FileList/components/Table/Cells/CellActions.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellActions.js +28 -0
- package/presentation/FileList/components/Table/Cells/CellActions.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellAuthor.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellAuthor.js +10 -0
- package/presentation/FileList/components/Table/Cells/CellAuthor.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellCreated.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellCreated.js +13 -0
- package/presentation/FileList/components/Table/Cells/CellCreated.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellModified.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellModified.js +13 -0
- package/presentation/FileList/components/Table/Cells/CellModified.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellName.d.ts +16 -0
- package/presentation/FileList/components/Table/Cells/CellName.js +59 -0
- package/presentation/FileList/components/Table/Cells/CellName.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellSize.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellSize.js +14 -0
- package/presentation/FileList/components/Table/Cells/CellSize.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellThumbnail.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellThumbnail.js +12 -0
- package/presentation/FileList/components/Table/Cells/CellThumbnail.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/CellType.d.ts +2 -0
- package/presentation/FileList/components/Table/Cells/CellType.js +11 -0
- package/presentation/FileList/components/Table/Cells/CellType.js.map +1 -0
- package/presentation/FileList/components/Table/Cells/index.d.ts +7 -0
- package/presentation/FileList/components/Table/Cells/index.js +7 -0
- package/presentation/FileList/components/Table/FileTable.d.ts +12 -0
- package/presentation/FileList/components/Table/FileTable.js +79 -0
- package/presentation/FileList/components/Table/FileTable.js.map +1 -0
- package/presentation/FileList/components/Table/FileTable.test.d.ts +1 -0
- package/presentation/FileList/components/Table/FileTable.test.js +365 -0
- package/presentation/FileList/components/Table/FileTable.test.js.map +1 -0
- package/presentation/FileList/components/Table/index.d.ts +4 -0
- package/presentation/FileList/components/Table/index.js +3 -0
- package/presentation/FileList/components/TagsList/Empty.d.ts +6 -0
- package/presentation/FileList/components/TagsList/Empty.js +8 -0
- package/presentation/FileList/components/TagsList/Empty.js.map +1 -0
- package/presentation/FileList/components/TagsList/FilterSelect.d.ts +2 -0
- package/presentation/FileList/components/TagsList/FilterSelect.js +38 -0
- package/presentation/FileList/components/TagsList/FilterSelect.js.map +1 -0
- package/presentation/FileList/components/TagsList/FilterStatus.d.ts +7 -0
- package/presentation/FileList/components/TagsList/FilterStatus.js +25 -0
- package/presentation/FileList/components/TagsList/FilterStatus.js.map +1 -0
- package/presentation/FileList/components/TagsList/Tag.d.ts +9 -0
- package/presentation/FileList/components/TagsList/Tag.js +11 -0
- package/presentation/FileList/components/TagsList/Tag.js.map +1 -0
- package/presentation/FileList/components/TagsList/Tags.d.ts +8 -0
- package/presentation/FileList/components/TagsList/Tags.js +30 -0
- package/presentation/FileList/components/TagsList/Tags.js.map +1 -0
- package/presentation/FileList/components/TagsList/TagsList.d.ts +11 -0
- package/presentation/FileList/components/TagsList/TagsList.js +24 -0
- package/presentation/FileList/components/TagsList/TagsList.js.map +1 -0
- package/presentation/FileList/components/TagsList/index.d.ts +1 -0
- package/presentation/FileList/components/TagsList/index.js +1 -0
- package/presentation/FileList/components/Thumbnail/Thumbnail.d.ts +2 -0
- package/presentation/FileList/components/Thumbnail/Thumbnail.js +12 -0
- package/presentation/FileList/components/Thumbnail/Thumbnail.js.map +1 -0
- package/presentation/FileList/components/Thumbnail/index.d.ts +1 -0
- package/presentation/FileList/components/Thumbnail/index.js +1 -0
- package/presentation/FileList/components/Upload/UploadProgress.d.ts +9 -0
- package/presentation/FileList/components/Upload/UploadProgress.js +45 -0
- package/presentation/FileList/components/Upload/UploadProgress.js.map +1 -0
- package/presentation/FileList/components/Upload/index.d.ts +1 -0
- package/presentation/FileList/components/Upload/index.js +1 -0
- package/presentation/FileList/feature.d.ts +3 -0
- package/presentation/FileList/feature.js +17 -0
- package/presentation/FileList/feature.js.map +1 -0
- package/presentation/FileList/index.d.ts +5 -0
- package/presentation/FileList/index.js +3 -0
- package/presentation/FileManager/FileManagerRenderer.d.ts +2 -0
- package/presentation/FileManager/FileManagerRenderer.js +33 -0
- package/presentation/FileManager/FileManagerRenderer.js.map +1 -0
- package/presentation/FileManager/FileManagerView.d.ts +12 -0
- package/presentation/FileManager/FileManagerView.js +246 -0
- package/presentation/FileManager/FileManagerView.js.map +1 -0
- package/presentation/FileManager/OverlayContext.d.ts +14 -0
- package/presentation/FileManager/OverlayContext.js +11 -0
- package/presentation/FileManager/OverlayContext.js.map +1 -0
- package/presentation/FileManager/outputFileSelectionError.d.ts +2 -0
- package/presentation/FileManager/outputFileSelectionError.js +27 -0
- package/presentation/FileManager/outputFileSelectionError.js.map +1 -0
- package/presentation/Settings/SettingsPresenter.d.ts +14 -0
- package/presentation/Settings/SettingsPresenter.js +78 -0
- package/presentation/Settings/SettingsPresenter.js.map +1 -0
- package/presentation/Settings/components/SettingsView.d.ts +4 -0
- package/presentation/Settings/components/SettingsView.js +45 -0
- package/presentation/Settings/components/SettingsView.js.map +1 -0
- package/presentation/config/DefaultFileManagerConfig.d.ts +2 -0
- package/presentation/config/DefaultFileManagerConfig.js +118 -0
- package/presentation/config/DefaultFileManagerConfig.js.map +1 -0
- package/presentation/config/FileManagerViewConfig.d.ts +248 -0
- package/presentation/config/FileManagerViewConfig.js +74 -0
- package/presentation/config/FileManagerViewConfig.js.map +1 -0
- package/presentation/config/configComponents/Browser/BulkAction.d.ts +26 -0
- package/presentation/config/configComponents/Browser/BulkAction.js +57 -0
- package/presentation/config/configComponents/Browser/BulkAction.js.map +1 -0
- package/presentation/config/configComponents/Browser/BulkEditField.d.ts +10 -0
- package/presentation/config/configComponents/Browser/BulkEditField.js +24 -0
- package/presentation/config/configComponents/Browser/BulkEditField.js.map +1 -0
- package/presentation/config/configComponents/Browser/FileAction.d.ts +8 -0
- package/presentation/config/configComponents/Browser/FileAction.js +11 -0
- package/presentation/config/configComponents/Browser/FileAction.js.map +1 -0
- package/presentation/config/configComponents/Browser/Filter.d.ts +39 -0
- package/presentation/config/configComponents/Browser/Filter.js +37 -0
- package/presentation/config/configComponents/Browser/Filter.js.map +1 -0
- package/presentation/config/configComponents/Browser/FilterByTags.d.ts +5 -0
- package/presentation/config/configComponents/Browser/FilterByTags.js +14 -0
- package/presentation/config/configComponents/Browser/FilterByTags.js.map +1 -0
- package/presentation/config/configComponents/Browser/FiltersToWhere.d.ts +7 -0
- package/presentation/config/configComponents/Browser/FiltersToWhere.js +13 -0
- package/presentation/config/configComponents/Browser/FiltersToWhere.js.map +1 -0
- package/presentation/config/configComponents/Browser/FolderAction.d.ts +7 -0
- package/presentation/config/configComponents/Browser/FolderAction.js +10 -0
- package/presentation/config/configComponents/Browser/FolderAction.js.map +1 -0
- package/presentation/config/configComponents/Browser/FolderDropConfirmation.d.ts +5 -0
- package/presentation/config/configComponents/Browser/FolderDropConfirmation.js +7 -0
- package/presentation/config/configComponents/Browser/FolderDropConfirmation.js.map +1 -0
- package/presentation/config/configComponents/Browser/FolderFieldDecorator.d.ts +7 -0
- package/presentation/config/configComponents/Browser/FolderFieldDecorator.js +11 -0
- package/presentation/config/configComponents/Browser/FolderFieldDecorator.js.map +1 -0
- package/presentation/config/configComponents/Browser/Grid/Action.d.ts +31 -0
- package/presentation/config/configComponents/Browser/Grid/Action.js +33 -0
- package/presentation/config/configComponents/Browser/Grid/Action.js.map +1 -0
- package/presentation/config/configComponents/Browser/Grid/Thumbnail.d.ts +28 -0
- package/presentation/config/configComponents/Browser/Grid/Thumbnail.js +28 -0
- package/presentation/config/configComponents/Browser/Grid/Thumbnail.js.map +1 -0
- package/presentation/config/configComponents/Browser/Grid/index.d.ts +6 -0
- package/presentation/config/configComponents/Browser/Grid/index.js +0 -0
- package/presentation/config/configComponents/Browser/Table/Column.d.ts +32 -0
- package/presentation/config/configComponents/Browser/Table/Column.js +13 -0
- package/presentation/config/configComponents/Browser/Table/Column.js.map +1 -0
- package/presentation/config/configComponents/Browser/Table/Thumbnail.d.ts +28 -0
- package/presentation/config/configComponents/Browser/Table/Thumbnail.js +28 -0
- package/presentation/config/configComponents/Browser/Table/Thumbnail.js.map +1 -0
- package/presentation/config/configComponents/Browser/Table/index.d.ts +56 -0
- package/presentation/config/configComponents/Browser/Table/index.js +11 -0
- package/presentation/config/configComponents/Browser/Table/index.js.map +1 -0
- package/presentation/config/configComponents/Browser/index.d.ts +189 -0
- package/presentation/config/configComponents/Browser/index.js +47 -0
- package/presentation/config/configComponents/Browser/index.js.map +1 -0
- package/presentation/config/configComponents/FileDetails/Action.d.ts +31 -0
- package/presentation/config/configComponents/FileDetails/Action.js +30 -0
- package/presentation/config/configComponents/FileDetails/Action.js.map +1 -0
- package/presentation/config/configComponents/FileDetails/Thumbnail.d.ts +28 -0
- package/presentation/config/configComponents/FileDetails/Thumbnail.js +25 -0
- package/presentation/config/configComponents/FileDetails/Thumbnail.js.map +1 -0
- package/presentation/config/configComponents/FileDetails/Width.d.ts +5 -0
- package/presentation/config/configComponents/FileDetails/Width.js +13 -0
- package/presentation/config/configComponents/FileDetails/Width.js.map +1 -0
- package/presentation/config/configComponents/FileDetails/index.d.ts +52 -0
- package/presentation/config/configComponents/FileDetails/index.js +16 -0
- package/presentation/config/configComponents/FileDetails/index.js.map +1 -0
- package/presentation/config/fields/AccessControl.d.ts +7 -0
- package/presentation/config/fields/AccessControl.js +38 -0
- package/presentation/config/fields/AccessControl.js.map +1 -0
- package/presentation/config/fields/Tags.d.ts +2 -0
- package/presentation/config/fields/Tags.js +32 -0
- package/presentation/config/fields/Tags.js.map +1 -0
- package/presentation/config/fields/index.d.ts +2 -0
- package/presentation/config/fields/index.js +2 -0
- package/presentation/config/fields/useAccessControlField.d.ts +6 -0
- package/presentation/config/fields/useAccessControlField.js +21 -0
- package/presentation/config/fields/useAccessControlField.js.map +1 -0
- package/presentation/config/fields/useFileOrUndefined.d.ts +3 -0
- package/presentation/config/fields/useFileOrUndefined.js +13 -0
- package/presentation/config/fields/useFileOrUndefined.js.map +1 -0
- package/presentation/config/getThumbnailRenderer.d.ts +4 -0
- package/presentation/config/getThumbnailRenderer.js +16 -0
- package/presentation/config/getThumbnailRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.js +11 -0
- package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.js +18 -0
- package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.js +11 -0
- package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/GridItemImageRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/GridItemImageRenderer.js +18 -0
- package/presentation/config/thumbnailRenderers/GridItemImageRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.js +18 -0
- package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.js.map +1 -0
- package/presentation/config/thumbnailRenderers/TableItemImageRenderer.d.ts +2 -0
- package/presentation/config/thumbnailRenderers/TableItemImageRenderer.js +18 -0
- package/presentation/config/thumbnailRenderers/TableItemImageRenderer.js.map +1 -0
- package/presentation/contexts/FileProvider.d.ts +12 -0
- package/presentation/contexts/FileProvider.js +13 -0
- package/presentation/contexts/FileProvider.js.map +1 -0
- package/presentation/hooks/useCopyFile.d.ts +11 -0
- package/presentation/hooks/useCopyFile.js +24 -0
- package/presentation/hooks/useCopyFile.js.map +1 -0
- package/presentation/hooks/useDeleteFile.d.ts +9 -0
- package/presentation/hooks/useDeleteFile.js +35 -0
- package/presentation/hooks/useDeleteFile.js.map +1 -0
- package/presentation/hooks/useFile.d.ts +2 -0
- package/presentation/hooks/useFile.js +10 -0
- package/presentation/hooks/useFile.js.map +1 -0
- package/presentation/hooks/useMoveFileToFolder.d.ts +2 -0
- package/presentation/hooks/useMoveFileToFolder.js +36 -0
- package/presentation/hooks/useMoveFileToFolder.js.map +1 -0
- package/routes.d.ts +7 -0
- package/routes.js +17 -0
- package/routes.js.map +1 -0
- package/static/svg/folder-open.ae8d0fac.svg +1 -0
- package/admin/graphql.js +0 -24
- package/admin/graphql.js.map +0 -1
- package/admin/index.d.ts +0 -2
- package/admin/index.js +0 -16
- package/admin/index.js.map +0 -1
- package/admin/plugins/index.d.ts +0 -2
- package/admin/plugins/index.js +0 -18
- package/admin/plugins/index.js.map +0 -1
- package/admin/plugins/installation.d.ts +0 -3
- package/admin/plugins/installation.js +0 -134
- package/admin/plugins/installation.js.map +0 -1
- package/admin/plugins/permissionRenderer/FileManagerPermissions.d.ts +0 -14
- package/admin/plugins/permissionRenderer/FileManagerPermissions.js +0 -249
- package/admin/plugins/permissionRenderer/FileManagerPermissions.js.map +0 -1
- package/admin/plugins/permissionRenderer/index.d.ts +0 -3
- package/admin/plugins/permissionRenderer/index.js +0 -38
- package/admin/plugins/permissionRenderer/index.js.map +0 -1
- package/admin/views/FileManagerSettings.d.ts +0 -3
- package/admin/views/FileManagerSettings.js +0 -162
- package/admin/views/FileManagerSettings.js.map +0 -1
- package/index.js.map +0 -1
- package/types.d.ts +0 -26
- package/types.js +0 -5
- package/types.js.map +0 -1
- /package/{admin → modules/Settings}/assets/icons/folder-open.svg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/components/TagsList/Tag.js","sources":["../../../../../src/presentation/FileList/components/TagsList/Tag.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tag as AdminTag } from \"@webiny/admin-ui\";\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\ntype TagProps = {\n tagItem: TagItem;\n active: boolean;\n onTagClick: (tagItem: TagItem) => void;\n};\n\nexport const Tag = ({ tagItem, active, onTagClick }: TagProps) => {\n return (\n <div>\n <AdminTag\n variant={active ? \"accent\" : \"neutral-muted\"}\n content={tagItem.tag}\n onClick={() => onTagClick(tagItem)}\n onDismiss={active ? () => onTagClick(tagItem) : undefined}\n />\n </div>\n );\n};\n"],"names":["Tag","tagItem","active","onTagClick","AdminTag","undefined"],"mappings":";;AAUO,MAAMA,UAAM,CAAC,EAAEC,OAAO,EAAEC,MAAM,EAAEC,UAAU,EAAY,GAClD,WAAP,GACI,oBAAC,2BACG,oBAACC,KAAQA;QACL,SAASF,SAAS,WAAW;QAC7B,SAASD,QAAQ,GAAG;QACpB,SAAS,IAAME,WAAWF;QAC1B,WAAWC,SAAS,IAAMC,WAAWF,WAAWI"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { TagItem } from "@webiny/app-aco/types.js";
|
|
3
|
+
export interface TagsProps {
|
|
4
|
+
tags: TagItem[];
|
|
5
|
+
activeTags: string[];
|
|
6
|
+
onActivatedTagsChange: (tags: string[]) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const Tags: ({ tags, activeTags, onActivatedTagsChange }: TagsProps) => React.JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import react, { useCallback } from "react";
|
|
2
|
+
import { Tag } from "@webiny/admin-ui";
|
|
3
|
+
const Tags = ({ tags, activeTags, onActivatedTagsChange })=>{
|
|
4
|
+
const toggleTag = useCallback((tag)=>{
|
|
5
|
+
const finalTags = Array.isArray(activeTags) ? [
|
|
6
|
+
...activeTags
|
|
7
|
+
] : [];
|
|
8
|
+
if (finalTags.find((item)=>tag === item)) finalTags.splice(finalTags.indexOf(tag), 1);
|
|
9
|
+
else finalTags.push(tag);
|
|
10
|
+
onActivatedTagsChange(finalTags);
|
|
11
|
+
}, [
|
|
12
|
+
activeTags
|
|
13
|
+
]);
|
|
14
|
+
const getIsActive = useCallback((tagItem)=>activeTags.includes(tagItem.tag), [
|
|
15
|
+
activeTags
|
|
16
|
+
]);
|
|
17
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
18
|
+
className: "flex flex-col gap-sm"
|
|
19
|
+
}, tags.map((tagItem, index)=>/*#__PURE__*/ react.createElement("div", {
|
|
20
|
+
key: `tag-${index}`
|
|
21
|
+
}, /*#__PURE__*/ react.createElement(Tag, {
|
|
22
|
+
variant: getIsActive(tagItem) ? "accent" : "neutral-muted",
|
|
23
|
+
content: tagItem.tag,
|
|
24
|
+
onClick: ()=>toggleTag(tagItem.tag),
|
|
25
|
+
onDismiss: getIsActive(tagItem) ? ()=>toggleTag(tagItem.tag) : void 0
|
|
26
|
+
}))));
|
|
27
|
+
};
|
|
28
|
+
export { Tags };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=Tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/components/TagsList/Tags.js","sources":["../../../../../src/presentation/FileList/components/TagsList/Tags.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Tag as AdminTag } from \"@webiny/admin-ui\";\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\nexport interface TagsProps {\n tags: TagItem[];\n activeTags: string[];\n onActivatedTagsChange: (tags: string[]) => void;\n}\n\nexport const Tags = ({ tags, activeTags, onActivatedTagsChange }: TagsProps) => {\n const toggleTag = useCallback(\n (tag: TagItem[\"tag\"]) => {\n const finalTags = Array.isArray(activeTags) ? [...activeTags] : [];\n\n if (finalTags.find(item => tag === item)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n onActivatedTagsChange(finalTags);\n },\n [activeTags]\n );\n\n const getIsActive = useCallback(\n (tagItem: TagItem) => {\n return activeTags.includes(tagItem.tag);\n },\n [activeTags]\n );\n\n return (\n <div className={\"flex flex-col gap-sm\"}>\n {tags.map((tagItem, index) => (\n <div key={`tag-${index}`}>\n <AdminTag\n variant={getIsActive(tagItem) ? \"accent\" : \"neutral-muted\"}\n content={tagItem.tag}\n onClick={() => toggleTag(tagItem.tag)}\n onDismiss={getIsActive(tagItem) ? () => toggleTag(tagItem.tag) : undefined}\n />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["Tags","tags","activeTags","onActivatedTagsChange","toggleTag","useCallback","tag","finalTags","Array","item","getIsActive","tagItem","index","AdminTag","undefined"],"mappings":";;AAUO,MAAMA,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,qBAAqB,EAAa;IACvE,MAAMC,YAAYC,YACd,CAACC;QACG,MAAMC,YAAYC,MAAM,OAAO,CAACN,cAAc;eAAIA;SAAW,GAAG,EAAE;QAElE,IAAIK,UAAU,IAAI,CAACE,CAAAA,OAAQH,QAAQG,OAC/BF,UAAU,MAAM,CAACA,UAAU,OAAO,CAACD,MAAM;aAEzCC,UAAU,IAAI,CAACD;QAGnBH,sBAAsBI;IAC1B,GACA;QAACL;KAAW;IAGhB,MAAMQ,cAAcL,YAChB,CAACM,UACUT,WAAW,QAAQ,CAACS,QAAQ,GAAG,GAE1C;QAACT;KAAW;IAGhB,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;OACXD,KAAK,GAAG,CAAC,CAACU,SAASC,QAAAA,WAAAA,GAChB,oBAAC;YAAI,KAAK,CAAC,IAAI,EAAEA,OAAO;yBACpB,oBAACC,KAAQA;YACL,SAASH,YAAYC,WAAW,WAAW;YAC3C,SAASA,QAAQ,GAAG;YACpB,SAAS,IAAMP,UAAUO,QAAQ,GAAG;YACpC,WAAWD,YAAYC,WAAW,IAAMP,UAAUO,QAAQ,GAAG,IAAIG;;AAMzF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { TagItem } from "@webiny/app-aco/types.js";
|
|
3
|
+
interface TagListProps {
|
|
4
|
+
loading: boolean;
|
|
5
|
+
onActivatedTagsChange: (tags: string[]) => void;
|
|
6
|
+
tags: TagItem[];
|
|
7
|
+
activeTags: string[];
|
|
8
|
+
emptyDisclaimer?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const TagsList: ({ loading, tags, emptyDisclaimer, onActivatedTagsChange, activeTags }: TagListProps) => React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { Loader } from "@webiny/app-aco";
|
|
3
|
+
import { Empty } from "./Empty.js";
|
|
4
|
+
import { FilterSelect } from "./FilterSelect.js";
|
|
5
|
+
import { FilterStatus } from "./FilterStatus.js";
|
|
6
|
+
import { Tags } from "./Tags.js";
|
|
7
|
+
const TagsList = ({ loading, tags, emptyDisclaimer, onActivatedTagsChange, activeTags })=>{
|
|
8
|
+
if (loading) return /*#__PURE__*/ react.createElement(Loader, null);
|
|
9
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
10
|
+
className: "my-lg px-md"
|
|
11
|
+
}, 0 === tags.length ? /*#__PURE__*/ react.createElement(Empty, {
|
|
12
|
+
disclaimer: emptyDisclaimer
|
|
13
|
+
}) : /*#__PURE__*/ react.createElement(react.Fragment, null, tags.length > 1 && /*#__PURE__*/ react.createElement(FilterSelect, null), /*#__PURE__*/ react.createElement(FilterStatus, {
|
|
14
|
+
activeTags: activeTags,
|
|
15
|
+
onActivatedTagsChange: onActivatedTagsChange
|
|
16
|
+
}), /*#__PURE__*/ react.createElement(Tags, {
|
|
17
|
+
tags: tags,
|
|
18
|
+
activeTags: activeTags,
|
|
19
|
+
onActivatedTagsChange: onActivatedTagsChange
|
|
20
|
+
})));
|
|
21
|
+
};
|
|
22
|
+
export { TagsList };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=TagsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/components/TagsList/TagsList.js","sources":["../../../../../src/presentation/FileList/components/TagsList/TagsList.tsx"],"sourcesContent":["import React from \"react\";\nimport { Loader } from \"@webiny/app-aco\";\nimport { Empty } from \"./Empty.js\";\nimport { FilterSelect } from \"./FilterSelect.js\";\nimport { FilterStatus } from \"./FilterStatus.js\";\nimport { Tags } from \"./Tags.js\";\n\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\ninterface TagListProps {\n loading: boolean;\n onActivatedTagsChange: (tags: string[]) => void;\n tags: TagItem[];\n activeTags: string[];\n emptyDisclaimer?: string;\n}\n\nexport const TagsList = ({\n loading,\n tags,\n emptyDisclaimer,\n onActivatedTagsChange,\n activeTags\n}: TagListProps) => {\n if (loading) {\n return <Loader />;\n }\n\n return (\n <div className={\"my-lg px-md\"}>\n {tags.length === 0 ? (\n <Empty disclaimer={emptyDisclaimer} />\n ) : (\n <>\n {tags.length > 1 && <FilterSelect />}\n <FilterStatus\n activeTags={activeTags}\n onActivatedTagsChange={onActivatedTagsChange}\n />\n <Tags\n tags={tags}\n activeTags={activeTags}\n onActivatedTagsChange={onActivatedTagsChange}\n />\n </>\n )}\n </div>\n );\n};\n"],"names":["TagsList","loading","tags","emptyDisclaimer","onActivatedTagsChange","activeTags","Loader","Empty","FilterSelect","FilterStatus","Tags"],"mappings":";;;;;;AAiBO,MAAMA,WAAW,CAAC,EACrBC,OAAO,EACPC,IAAI,EACJC,eAAe,EACfC,qBAAqB,EACrBC,UAAU,EACC;IACX,IAAIJ,SACA,OAAO,WAAP,GAAO,oBAACK,QAAMA;IAGlB,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;OACXJ,AAAgB,MAAhBA,KAAK,MAAM,GAAS,WAAJ,GACb,oBAACK,OAAKA;QAAC,YAAYJ;uBAEnB,0CACKD,KAAK,MAAM,GAAG,KAAK,WAAL,GAAK,oBAACM,cAAYA,OAAAA,WAAAA,GACjC,oBAACC,cAAYA;QACT,YAAYJ;QACZ,uBAAuBD;sBAE3B,oBAACM,MAAIA;QACD,MAAMR;QACN,YAAYG;QACZ,uBAAuBD;;AAM/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TagsList.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TagsList.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { useFile } from "../../../hooks/useFile.js";
|
|
3
|
+
import { useFileManagerConfig } from "../../../../index.js";
|
|
4
|
+
const Thumbnail = ()=>{
|
|
5
|
+
const { file } = useFile();
|
|
6
|
+
const { browser, getThumbnailRenderer } = useFileManagerConfig();
|
|
7
|
+
const renderer = getThumbnailRenderer(browser.grid.itemThumbnails, file);
|
|
8
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, renderer?.element || null);
|
|
9
|
+
};
|
|
10
|
+
export { Thumbnail };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=Thumbnail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/components/Thumbnail/Thumbnail.js","sources":["../../../../../src/presentation/FileList/components/Thumbnail/Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { useFile } from \"~/presentation/hooks/useFile.js\";\nimport { useFileManagerConfig } from \"~/index.js\";\n\nexport const Thumbnail = () => {\n const { file } = useFile();\n const { browser, getThumbnailRenderer } = useFileManagerConfig();\n\n const renderer = getThumbnailRenderer(browser.grid.itemThumbnails, file);\n\n return <>{renderer?.element || null}</>;\n};\n"],"names":["Thumbnail","file","useFile","browser","getThumbnailRenderer","useFileManagerConfig","renderer"],"mappings":";;;AAIO,MAAMA,YAAY;IACrB,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAM,EAAEC,OAAO,EAAEC,oBAAoB,EAAE,GAAGC;IAE1C,MAAMC,WAAWF,qBAAqBD,QAAQ,IAAI,CAAC,cAAc,EAAEF;IAEnE,OAAO,WAAP,GAAO,0CAAGK,UAAU,WAAW;AACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Thumbnail.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Thumbnail.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Upload progress indicator that reads `vm.upload` from the FileListPresenter.
|
|
4
|
+
* Reuses the original UploadStatus markup — a bottom-center bar with progress
|
|
5
|
+
* and a close button.
|
|
6
|
+
*/
|
|
7
|
+
export declare const UploadProgress: (() => React.JSX.Element | null) & {
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import react, { useState } from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { IconButton, ProgressBar, Text, cn } from "@webiny/admin-ui";
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/close.svg";
|
|
5
|
+
import { i18n } from "@webiny/app/i18n/index.js";
|
|
6
|
+
import { useFileManagerPresenter } from "../../FileManagerPresenterProvider.js";
|
|
7
|
+
const t = i18n.ns("app-file-manager/presentation/upload-progress");
|
|
8
|
+
const UploadProgress_UploadProgress = observer(function() {
|
|
9
|
+
const { vm } = useFileManagerPresenter();
|
|
10
|
+
const { upload } = vm;
|
|
11
|
+
const [isVisible, setIsVisible] = useState(true);
|
|
12
|
+
if (0 === upload.jobs.length || !isVisible) return null;
|
|
13
|
+
const numberOfFiles = upload.jobs.length;
|
|
14
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
15
|
+
className: cn([
|
|
16
|
+
"p-md rounded-lg",
|
|
17
|
+
"bg-neutral-dark shadow-lg",
|
|
18
|
+
"absolute bottom-xxl left-2/4 -translate-x-1/2 z-10",
|
|
19
|
+
"flex items-center gap-sm-extra",
|
|
20
|
+
"animate-in slide-in-from-top-4 slide-in-from-left-1/2 duration-500"
|
|
21
|
+
]),
|
|
22
|
+
"data-testid": "fm-upload-progress"
|
|
23
|
+
}, /*#__PURE__*/ react.createElement(Text, {
|
|
24
|
+
as: "div",
|
|
25
|
+
size: "sm",
|
|
26
|
+
className: "text-neutral-disabled shrink-0"
|
|
27
|
+
}, t`Uploading {numberOfFiles} {label}`({
|
|
28
|
+
numberOfFiles: `${numberOfFiles}`,
|
|
29
|
+
label: 1 === numberOfFiles ? t`file` : t`files`
|
|
30
|
+
})), /*#__PURE__*/ react.createElement("div", {
|
|
31
|
+
className: "w-64"
|
|
32
|
+
}, /*#__PURE__*/ react.createElement(ProgressBar, {
|
|
33
|
+
value: upload.overallProgress.percentage,
|
|
34
|
+
valuePosition: "end",
|
|
35
|
+
className: "text-neutral-light"
|
|
36
|
+
})), /*#__PURE__*/ react.createElement(IconButton, {
|
|
37
|
+
onClick: ()=>setIsVisible(false),
|
|
38
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
39
|
+
variant: "ghost-negative",
|
|
40
|
+
size: "sm"
|
|
41
|
+
}));
|
|
42
|
+
});
|
|
43
|
+
export { UploadProgress_UploadProgress as UploadProgress };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=UploadProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/components/Upload/UploadProgress.js","sources":["../../../../../src/presentation/FileList/components/Upload/UploadProgress.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { cn, IconButton, ProgressBar, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as CloseIcon } from \"@webiny/icons/close.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { useFileManagerPresenter } from \"../../FileManagerPresenterProvider.js\";\n\nconst t = i18n.ns(\"app-file-manager/presentation/upload-progress\");\n\n/**\n * Upload progress indicator that reads `vm.upload` from the FileListPresenter.\n * Reuses the original UploadStatus markup — a bottom-center bar with progress\n * and a close button.\n */\nexport const UploadProgress = observer(function UploadProgress() {\n const { vm } = useFileManagerPresenter();\n const { upload } = vm;\n const [isVisible, setIsVisible] = useState(true);\n\n // Don't render when there are no jobs or the user dismissed it.\n if (upload.jobs.length === 0 || !isVisible) {\n return null;\n }\n\n const numberOfFiles = upload.jobs.length;\n\n return (\n <div\n className={cn([\n \"p-md rounded-lg\",\n \"bg-neutral-dark shadow-lg\",\n \"absolute bottom-xxl left-2/4 -translate-x-1/2 z-10\",\n \"flex items-center gap-sm-extra\",\n \"animate-in slide-in-from-top-4 slide-in-from-left-1/2 duration-500\"\n ])}\n data-testid={\"fm-upload-progress\"}\n >\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-disabled shrink-0\"}>\n {t`Uploading {numberOfFiles} {label}`({\n numberOfFiles: `${numberOfFiles}`,\n label: numberOfFiles === 1 ? t`file` : t`files`\n })}\n </Text>\n <div className={\"w-64\"}>\n <ProgressBar\n value={upload.overallProgress.percentage}\n valuePosition={\"end\"}\n className={\"text-neutral-light\"}\n />\n </div>\n <IconButton\n onClick={() => setIsVisible(false)}\n icon={<CloseIcon />}\n variant={\"ghost-negative\"}\n size={\"sm\"}\n />\n </div>\n );\n});\n"],"names":["t","i18n","UploadProgress","observer","vm","useFileManagerPresenter","upload","isVisible","setIsVisible","useState","numberOfFiles","cn","Text","ProgressBar","IconButton","CloseIcon"],"mappings":";;;;;;AAOA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAOX,MAAMC,gCAAiBC,SAAS;IACnC,MAAM,EAAEC,EAAE,EAAE,GAAGC;IACf,MAAM,EAAEC,MAAM,EAAE,GAAGF;IACnB,MAAM,CAACG,WAAWC,aAAa,GAAGC,SAAS;IAG3C,IAAIH,AAAuB,MAAvBA,OAAO,IAAI,CAAC,MAAM,IAAU,CAACC,WAC7B,OAAO;IAGX,MAAMG,gBAAgBJ,OAAO,IAAI,CAAC,MAAM;IAExC,OAAO,WAAP,GACI,oBAAC;QACG,WAAWK,GAAG;YACV;YACA;YACA;YACA;YACA;SACH;QACD,eAAa;qBAEb,oBAACC,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OACnCZ,CAAC,CAAC,iCAAiC,CAAC,CAAC;QAClC,eAAe,GAAGU,eAAe;QACjC,OAAOA,AAAkB,MAAlBA,gBAAsBV,CAAC,CAAC,IAAI,CAAC,GAAGA,CAAC,CAAC,KAAK,CAAC;IACnD,mBAEJ,oBAAC;QAAI,WAAW;qBACZ,oBAACa,aAAWA;QACR,OAAOP,OAAO,eAAe,CAAC,UAAU;QACxC,eAAe;QACf,WAAW;uBAGnB,oBAACQ,YAAUA;QACP,SAAS,IAAMN,aAAa;QAC5B,oBAAM,oBAACO,gBAASA;QAChB,SAAS;QACT,MAAM;;AAItB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UploadProgress } from "./UploadProgress.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UploadProgress } from "./UploadProgress.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { FileManagerPresenter } from "./abstractions.js";
|
|
3
|
+
import { FileManagerPresenter as external_FileManagerPresenter_js_FileManagerPresenter } from "./FileManagerPresenter.js";
|
|
4
|
+
const FileManagerPresenterFeature = createFeature({
|
|
5
|
+
name: "FileManager/FileManagerPresenter",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(external_FileManagerPresenter_js_FileManagerPresenter).inSingletonScope();
|
|
8
|
+
},
|
|
9
|
+
resolve (container) {
|
|
10
|
+
return {
|
|
11
|
+
presenter: container.resolve(FileManagerPresenter)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export { FileManagerPresenterFeature };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileList/feature.js","sources":["../../../src/presentation/FileList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { FileManagerPresenter as Abstraction } from \"./abstractions.js\";\nimport { FileManagerPresenter } from \"./FileManagerPresenter.js\";\n\nexport const FileManagerPresenterFeature = createFeature({\n name: \"FileManager/FileManagerPresenter\",\n register(container) {\n container.register(FileManagerPresenter).inSingletonScope();\n },\n resolve(container) {\n return {\n presenter: container.resolve(Abstraction)\n };\n }\n});\n"],"names":["FileManagerPresenterFeature","createFeature","container","FileManagerPresenter","Abstraction"],"mappings":";;;AAIO,MAAMA,8BAA8BC,cAAc;IACrD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uDAAsB,gBAAgB;IAC7D;IACA,SAAQD,SAAS;QACb,OAAO;YACH,WAAWA,UAAU,OAAO,CAACE;QACjC;IACJ;AACJ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FileManagerPresenterFeature } from "./feature.js";
|
|
2
|
+
export { FileManagerPresenter } from "./abstractions.js";
|
|
3
|
+
export type { IFileManagerPresenter, IFileManagerViewModel, IFileManagerActions, IFolderActions, IFileManagerInitConfig } from "./abstractions.js";
|
|
4
|
+
export { FileManagerPresenterProvider } from "./FileManagerPresenterProvider.js";
|
|
5
|
+
export { useFileManagerPresenter } from "./FileManagerPresenterProvider.js";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { FileManager } from "@webiny/app-admin";
|
|
3
|
+
import { FileManagerView } from "./FileManagerView.js";
|
|
4
|
+
const formatFileItem = (file)=>({
|
|
5
|
+
id: file.id,
|
|
6
|
+
src: file.src,
|
|
7
|
+
name: file.name,
|
|
8
|
+
type: file.type,
|
|
9
|
+
size: file.size,
|
|
10
|
+
width: file.metadata?.image?.width,
|
|
11
|
+
height: file.metadata?.image?.height,
|
|
12
|
+
extensions: file.extensions,
|
|
13
|
+
metadata: file.metadata
|
|
14
|
+
});
|
|
15
|
+
const FileManagerRendererDecorator = FileManager.Renderer.createDecorator(()=>function(props) {
|
|
16
|
+
const { onChange, onClose, multiple, accept, scope, overlay = true } = props;
|
|
17
|
+
const handleChange = (files)=>{
|
|
18
|
+
if (!onChange || !files.length) return;
|
|
19
|
+
multiple ? onChange(files.map(formatFileItem)) : onChange(formatFileItem(files[0]));
|
|
20
|
+
if (onClose) onClose();
|
|
21
|
+
};
|
|
22
|
+
return /*#__PURE__*/ react.createElement(FileManagerView, {
|
|
23
|
+
overlay: overlay,
|
|
24
|
+
onChange: handleChange,
|
|
25
|
+
onClose: onClose,
|
|
26
|
+
multiple: multiple,
|
|
27
|
+
accept: accept,
|
|
28
|
+
scope: scope
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
export { FileManagerRendererDecorator };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=FileManagerRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileManager/FileManagerRenderer.js","sources":["../../../src/presentation/FileManager/FileManagerRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FileManagerFileItem, FileManagerOnChange } from \"@webiny/app-admin\";\nimport { FileManager } from \"@webiny/app-admin\";\nimport type { FmFile } from \"~/features/shared/types.js\";\nimport { FileManagerView } from \"./FileManagerView.js\";\n\nconst formatFileItem = (file: FmFile): FileManagerFileItem => {\n return {\n id: file.id,\n src: file.src,\n name: file.name,\n type: file.type,\n size: file.size,\n width: file.metadata?.image?.width,\n height: file.metadata?.image?.height,\n extensions: file.extensions,\n metadata: file.metadata\n };\n};\n\nexport const FileManagerRendererDecorator = FileManager.Renderer.createDecorator(() => {\n return function FileManagerRendererImpl(props) {\n const { onChange, onClose, multiple, accept, scope, overlay = true } = props;\n\n const handleChange = (files: FmFile[]) => {\n if (!onChange || !files.length) {\n return;\n }\n\n if (multiple) {\n (onChange as FileManagerOnChange<FileManagerFileItem[]>)(files.map(formatFileItem));\n } else {\n (onChange as FileManagerOnChange<FileManagerFileItem>)(formatFileItem(files[0]));\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <FileManagerView\n overlay={overlay}\n onChange={handleChange}\n onClose={onClose}\n multiple={multiple}\n accept={accept}\n scope={scope}\n />\n );\n };\n});\n"],"names":["formatFileItem","file","FileManagerRendererDecorator","FileManager","props","onChange","onClose","multiple","accept","scope","overlay","handleChange","files","FileManagerView"],"mappings":";;;AAMA,MAAMA,iBAAiB,CAACC,OACb;QACH,IAAIA,KAAK,EAAE;QACX,KAAKA,KAAK,GAAG;QACb,MAAMA,KAAK,IAAI;QACf,MAAMA,KAAK,IAAI;QACf,MAAMA,KAAK,IAAI;QACf,OAAOA,KAAK,QAAQ,EAAE,OAAO;QAC7B,QAAQA,KAAK,QAAQ,EAAE,OAAO;QAC9B,YAAYA,KAAK,UAAU;QAC3B,UAAUA,KAAK,QAAQ;IAC3B;AAGG,MAAMC,+BAA+BC,YAAY,QAAQ,CAAC,eAAe,CAAC,IACtE,SAAiCC,KAAK;QACzC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,UAAU,IAAI,EAAE,GAAGN;QAEvE,MAAMO,eAAe,CAACC;YAClB,IAAI,CAACP,YAAY,CAACO,MAAM,MAAM,EAC1B;YAGAL,WACCF,SAAwDO,MAAM,GAAG,CAACZ,mBAElEK,SAAsDL,eAAeY,KAAK,CAAC,EAAE;YAGlF,IAAIN,SACAA;QAER;QAEA,OAAO,WAAP,GACI,oBAACO,iBAAeA;YACZ,SAASH;YACT,UAAUC;YACV,SAASL;YACT,UAAUC;YACV,QAAQC;YACR,OAAOC;;IAGnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { FmFile } from "../../features/shared/types.js";
|
|
3
|
+
export interface FileManagerViewProps {
|
|
4
|
+
overlay?: boolean;
|
|
5
|
+
onChange?: (files: FmFile[]) => void;
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
multiple?: boolean;
|
|
8
|
+
accept?: string[];
|
|
9
|
+
scope?: string;
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const FileManagerView: (props: FileManagerViewProps) => React.JSX.Element;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import react, { useCallback, useEffect, useMemo } from "react";
|
|
2
|
+
import { DiContainerProvider, useContainer, useFeature } from "@webiny/app";
|
|
3
|
+
import { observer } from "mobx-react-lite";
|
|
4
|
+
import { BrowserFilePicker } from "@webiny/app-admin/presentation/browserFilePicker/index.js";
|
|
5
|
+
import debounce from "lodash/debounce.js";
|
|
6
|
+
import { Heading, OverlayLoader, ScrollArea, Separator, useToast } from "@webiny/admin-ui";
|
|
7
|
+
import { i18n } from "@webiny/app/i18n/index.js";
|
|
8
|
+
import { DialogsProvider, LeftPanel, OverlayLayout, RightPanel, SplitView, useHotkeys } from "@webiny/app-admin";
|
|
9
|
+
import { FoldersFeature } from "@webiny/app-aco/features/folders/feature.js";
|
|
10
|
+
import { FolderTreePresenterFeature } from "@webiny/app-aco/presentation/folderTree/feature.js";
|
|
11
|
+
import { FileManagerPresenterFeature } from "../FileList/feature.js";
|
|
12
|
+
import { FileManagerPresenterProvider, useFileManagerPresenter } from "../FileList/FileManagerPresenterProvider.js";
|
|
13
|
+
import { FileDetailsPresenterFeature } from "../FileDetails/feature.js";
|
|
14
|
+
import { SharedCacheFeature } from "../../features/shared/feature.js";
|
|
15
|
+
import { ListFilesFeature } from "../../features/listFiles/feature.js";
|
|
16
|
+
import { GetFileFeature } from "../../features/getFile/feature.js";
|
|
17
|
+
import { DeleteFileFeature } from "../../features/deleteFile/feature.js";
|
|
18
|
+
import { UpdateFileFeature } from "../../features/updateFile/feature.js";
|
|
19
|
+
import { FileUploaderFeature } from "../../features/fileUploader/feature.js";
|
|
20
|
+
import { ListTagsFeature } from "../../features/tags/feature.js";
|
|
21
|
+
import { GetSettingsFeature } from "../../features/settings/feature.js";
|
|
22
|
+
import { FileManagerViewWithConfig, useFileManagerConfig } from "../config/FileManagerViewConfig.js";
|
|
23
|
+
import { FolderTree } from "@webiny/app-aco/presentation/folderTree/FolderTree.js";
|
|
24
|
+
import { BottomInfoBar } from "../FileList/components/BottomInfoBar/index.js";
|
|
25
|
+
import { BulkActionBar } from "../FileList/components/BulkActions/index.js";
|
|
26
|
+
import { FileDropPlaceholder } from "../FileList/components/FileDropPlaceholder/index.js";
|
|
27
|
+
import { Empty } from "../FileList/components/Empty/index.js";
|
|
28
|
+
import { FileDetailsDrawer } from "../FileDetails/components/FileDetailsDrawer.js";
|
|
29
|
+
import { FileGrid } from "../FileList/components/Grid/index.js";
|
|
30
|
+
import { FileManagerHeader } from "../FileList/components/Header/FileManagerHeader.js";
|
|
31
|
+
import { FileTable } from "../FileList/components/Table/index.js";
|
|
32
|
+
import { TagsList } from "../FileList/components/TagsList/index.js";
|
|
33
|
+
import { UploadProgress } from "../FileList/components/Upload/index.js";
|
|
34
|
+
import { GetSettingsRepository } from "../../features/settings/abstractions.js";
|
|
35
|
+
import { OverlayProvider, useOverlay } from "./OverlayContext.js";
|
|
36
|
+
import { outputFileSelectionError } from "./outputFileSelectionError.js";
|
|
37
|
+
const t = i18n.ns("app-admin/file-manager/file-manager-view");
|
|
38
|
+
const FileManagerView_FileManagerViewLayout = observer(function() {
|
|
39
|
+
const { vm, actions } = useFileManagerPresenter();
|
|
40
|
+
const { browser } = useFileManagerConfig();
|
|
41
|
+
const overlay = useOverlay();
|
|
42
|
+
const toast = useToast();
|
|
43
|
+
useHotkeys({
|
|
44
|
+
zIndex: 20,
|
|
45
|
+
keys: {
|
|
46
|
+
esc: ()=>overlay && overlay.onClose()
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const container = useContainer();
|
|
50
|
+
const settingsRepository = useMemo(()=>container.resolve(GetSettingsRepository), [
|
|
51
|
+
container
|
|
52
|
+
]);
|
|
53
|
+
const settings = settingsRepository.settings;
|
|
54
|
+
const uploadFiles = async (files)=>{
|
|
55
|
+
await actions.upload(files);
|
|
56
|
+
toast.showSuccessToast({
|
|
57
|
+
title: "File upload complete."
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const onError = useCallback((errors)=>{
|
|
61
|
+
const message = outputFileSelectionError(errors);
|
|
62
|
+
if (message) toast.showWarningToast({
|
|
63
|
+
title: message
|
|
64
|
+
});
|
|
65
|
+
else {
|
|
66
|
+
toast.showWarningToast({
|
|
67
|
+
title: "Couldn't process selected files."
|
|
68
|
+
});
|
|
69
|
+
console.error(errors);
|
|
70
|
+
}
|
|
71
|
+
}, []);
|
|
72
|
+
const loadMoreOnScroll = useCallback(debounce(async (scrollFrame)=>{
|
|
73
|
+
if (scrollFrame.top > 0.8) actions.loadMore();
|
|
74
|
+
}, 200), [
|
|
75
|
+
vm.list.pagination,
|
|
76
|
+
actions
|
|
77
|
+
]);
|
|
78
|
+
if (!vm.fileModel) return /*#__PURE__*/ react.createElement(OverlayLoader, {
|
|
79
|
+
text: t`Preparing File Manager...`
|
|
80
|
+
});
|
|
81
|
+
const isLoading = vm.list.pagination.loading && 0 === vm.list.rows.length;
|
|
82
|
+
const isEmpty = !vm.list.pagination.loading && 0 === vm.list.rows.length;
|
|
83
|
+
const renderList = (browseFiles)=>{
|
|
84
|
+
if (isLoading) return /*#__PURE__*/ react.createElement(OverlayLoader, {
|
|
85
|
+
text: t`Loading files...`,
|
|
86
|
+
size: "lg"
|
|
87
|
+
});
|
|
88
|
+
if (isEmpty) return /*#__PURE__*/ react.createElement(Empty, {
|
|
89
|
+
isSearchResult: !vm.showFolders,
|
|
90
|
+
browseFiles: browseFiles
|
|
91
|
+
});
|
|
92
|
+
if ("table" === vm.viewMode) return /*#__PURE__*/ react.createElement(ScrollArea, {
|
|
93
|
+
onScroll: loadMoreOnScroll
|
|
94
|
+
}, /*#__PURE__*/ react.createElement(FileTable, null));
|
|
95
|
+
return /*#__PURE__*/ react.createElement(ScrollArea, {
|
|
96
|
+
onScroll: loadMoreOnScroll
|
|
97
|
+
}, /*#__PURE__*/ react.createElement(FileGrid, null));
|
|
98
|
+
};
|
|
99
|
+
const content = /*#__PURE__*/ react.createElement(BrowserFilePicker, {
|
|
100
|
+
multiple: true,
|
|
101
|
+
maxSize: settings ? settings.uploadMaxFileSize + "b" : "1TB",
|
|
102
|
+
multipleMaxSize: "1TB",
|
|
103
|
+
accept: overlay?.accept ?? [],
|
|
104
|
+
onSuccess: uploadFiles,
|
|
105
|
+
onError: onError
|
|
106
|
+
}, ({ getDropZoneProps, browseFiles })=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(FileDetailsDrawer, null), /*#__PURE__*/ react.createElement(SplitView, {
|
|
107
|
+
namespace: "fm/file/list"
|
|
108
|
+
}, /*#__PURE__*/ react.createElement(LeftPanel, {
|
|
109
|
+
span: 2
|
|
110
|
+
}, /*#__PURE__*/ react.createElement("div", {
|
|
111
|
+
className: "flex flex-col h-main-content"
|
|
112
|
+
}, /*#__PURE__*/ react.createElement("div", {
|
|
113
|
+
className: "py-sm px-md"
|
|
114
|
+
}, /*#__PURE__*/ react.createElement(Heading, {
|
|
115
|
+
level: 5
|
|
116
|
+
}, t`File Manager`)), /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
|
|
117
|
+
className: "shrink-0 overflow-y-auto max-h-[66vh]"
|
|
118
|
+
}, /*#__PURE__*/ react.createElement(FolderTree, {
|
|
119
|
+
vm: vm.folders,
|
|
120
|
+
actions: actions.folders,
|
|
121
|
+
folderActions: browser.folder.actions,
|
|
122
|
+
dropConfirmation: browser.folder.dropConfirmation,
|
|
123
|
+
enableActions: true,
|
|
124
|
+
enableCreate: true
|
|
125
|
+
})), browser.filterByTags ? /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
|
|
126
|
+
className: "flex-1 overflow-y-auto min-h-0"
|
|
127
|
+
}, /*#__PURE__*/ react.createElement(TagsList, {
|
|
128
|
+
loading: false,
|
|
129
|
+
activeTags: vm.list.filters["tags"] ?? [],
|
|
130
|
+
tags: vm.tags.map((tag)=>({
|
|
131
|
+
tag: tag.tag,
|
|
132
|
+
count: tag.count
|
|
133
|
+
})),
|
|
134
|
+
onActivatedTagsChange: (tags)=>{
|
|
135
|
+
if (tags.length > 0) actions.filter.set("tags", tags);
|
|
136
|
+
else {
|
|
137
|
+
actions.filter.clear("tags");
|
|
138
|
+
actions.filter.clear("tags_rule");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}))) : null)), /*#__PURE__*/ react.createElement(RightPanel, {
|
|
142
|
+
span: 10
|
|
143
|
+
}, /*#__PURE__*/ react.createElement("div", {
|
|
144
|
+
className: "flex flex-col relative",
|
|
145
|
+
style: {
|
|
146
|
+
height: "calc(100vh - 45px"
|
|
147
|
+
}
|
|
148
|
+
}, /*#__PURE__*/ react.createElement(FileManagerHeader, {
|
|
149
|
+
browseFiles: browseFiles
|
|
150
|
+
}), /*#__PURE__*/ react.createElement("div", {
|
|
151
|
+
className: "flex-1",
|
|
152
|
+
...getDropZoneProps({
|
|
153
|
+
onDragEnter: ()=>actions.setDragging(true),
|
|
154
|
+
onDrop: ()=>actions.setDragging(false),
|
|
155
|
+
onDragLeave: (e)=>{
|
|
156
|
+
if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) actions.setDragging(false);
|
|
157
|
+
}
|
|
158
|
+
}),
|
|
159
|
+
"data-testid": "fm-list-wrapper"
|
|
160
|
+
}, !overlay && /*#__PURE__*/ react.createElement(BulkActionBar, null), renderList(browseFiles), vm.dragging && /*#__PURE__*/ react.createElement(FileDropPlaceholder, null), /*#__PURE__*/ react.createElement(UploadProgress, null)), /*#__PURE__*/ react.createElement(BottomInfoBar, {
|
|
161
|
+
accept: overlay?.accept ?? [],
|
|
162
|
+
listing: vm.list.pagination.loadingMore,
|
|
163
|
+
loading: vm.list.pagination.loading,
|
|
164
|
+
totalCount: vm.list.pagination.totalCount,
|
|
165
|
+
currentCount: vm.list.pagination.currentCount
|
|
166
|
+
}))))));
|
|
167
|
+
if (overlay) return /*#__PURE__*/ react.createElement(OverlayLayout, {
|
|
168
|
+
variant: "strong",
|
|
169
|
+
onExited: ()=>overlay.onClose()
|
|
170
|
+
}, content);
|
|
171
|
+
return content;
|
|
172
|
+
});
|
|
173
|
+
const FileManagerViewInner = observer(({ overlay = false, onChange, onClose, multiple, accept, scope, children })=>{
|
|
174
|
+
const { presenter } = useFeature(FileManagerPresenterFeature);
|
|
175
|
+
const overlayConfig = useMemo(()=>{
|
|
176
|
+
if (!overlay || !onChange || !onClose) return null;
|
|
177
|
+
const handleFileClick = (file)=>{
|
|
178
|
+
if (multiple) presenter.actions.selection.toggle(file.id);
|
|
179
|
+
else onChange([
|
|
180
|
+
file
|
|
181
|
+
]);
|
|
182
|
+
};
|
|
183
|
+
const confirmSelection = ()=>{
|
|
184
|
+
const selectedIds = presenter.vm.list.selection.selectedIds;
|
|
185
|
+
const selectedFiles = presenter.vm.list.rows.filter((f)=>selectedIds.has(f.id));
|
|
186
|
+
if (selectedFiles.length > 0) onChange(selectedFiles);
|
|
187
|
+
};
|
|
188
|
+
return {
|
|
189
|
+
onFileClick: handleFileClick,
|
|
190
|
+
confirmSelection,
|
|
191
|
+
onClose,
|
|
192
|
+
accept: accept ?? [],
|
|
193
|
+
multiple: multiple ?? false
|
|
194
|
+
};
|
|
195
|
+
}, [
|
|
196
|
+
overlay,
|
|
197
|
+
onChange,
|
|
198
|
+
onClose,
|
|
199
|
+
multiple,
|
|
200
|
+
accept
|
|
201
|
+
]);
|
|
202
|
+
useEffect(()=>{
|
|
203
|
+
presenter.init({
|
|
204
|
+
scope
|
|
205
|
+
});
|
|
206
|
+
return ()=>presenter.dispose();
|
|
207
|
+
}, [
|
|
208
|
+
presenter,
|
|
209
|
+
overlay,
|
|
210
|
+
scope
|
|
211
|
+
]);
|
|
212
|
+
const inner = /*#__PURE__*/ react.createElement(DialogsProvider, null, /*#__PURE__*/ react.createElement(FileManagerViewWithConfig, null, /*#__PURE__*/ react.createElement(FileManagerPresenterProvider, {
|
|
213
|
+
presenter: presenter
|
|
214
|
+
}, /*#__PURE__*/ react.createElement(FileManagerView_FileManagerViewLayout, null), children)));
|
|
215
|
+
if (overlayConfig) return /*#__PURE__*/ react.createElement(OverlayProvider, {
|
|
216
|
+
config: overlayConfig
|
|
217
|
+
}, inner);
|
|
218
|
+
return inner;
|
|
219
|
+
});
|
|
220
|
+
const FileManagerView = (props)=>{
|
|
221
|
+
const container = useContainer();
|
|
222
|
+
const scopedContainer = useMemo(()=>{
|
|
223
|
+
const child = container.createChildContainer();
|
|
224
|
+
SharedCacheFeature.register(child);
|
|
225
|
+
FoldersFeature.register(child, {
|
|
226
|
+
type: "FmFile"
|
|
227
|
+
});
|
|
228
|
+
FolderTreePresenterFeature.register(child);
|
|
229
|
+
ListFilesFeature.register(child);
|
|
230
|
+
GetFileFeature.register(child);
|
|
231
|
+
DeleteFileFeature.register(child);
|
|
232
|
+
UpdateFileFeature.register(child);
|
|
233
|
+
FileUploaderFeature.register(child);
|
|
234
|
+
ListTagsFeature.register(child);
|
|
235
|
+
GetSettingsFeature.register(child);
|
|
236
|
+
FileDetailsPresenterFeature.register(child);
|
|
237
|
+
FileManagerPresenterFeature.register(child);
|
|
238
|
+
return child;
|
|
239
|
+
}, []);
|
|
240
|
+
return /*#__PURE__*/ react.createElement(DiContainerProvider, {
|
|
241
|
+
container: scopedContainer
|
|
242
|
+
}, /*#__PURE__*/ react.createElement(FileManagerViewInner, props));
|
|
243
|
+
};
|
|
244
|
+
export { FileManagerView };
|
|
245
|
+
|
|
246
|
+
//# sourceMappingURL=FileManagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation/FileManager/FileManagerView.js","sources":["../../../src/presentation/FileManager/FileManagerView.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback } from \"react\";\nimport { DiContainerProvider, useContainer, useFeature } from \"@webiny/app\";\nimport { observer } from \"mobx-react-lite\";\nimport {\n BrowserFilePicker,\n type BrowserFilePickerRenderProps\n} from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport debounce from \"lodash/debounce.js\";\nimport { Heading, OverlayLoader, ScrollArea, Separator, useToast } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport {\n LeftPanel,\n OverlayLayout,\n RightPanel,\n SplitView,\n DialogsProvider,\n useHotkeys\n} from \"@webiny/app-admin\";\nimport { FoldersFeature } from \"@webiny/app-aco/features/folders/feature.js\";\nimport { FolderTreePresenterFeature } from \"@webiny/app-aco/presentation/folderTree/feature.js\";\nimport { FileManagerPresenterFeature } from \"~/presentation/FileList/feature.js\";\nimport {\n FileManagerPresenterProvider,\n useFileManagerPresenter\n} from \"~/presentation/FileList/FileManagerPresenterProvider.js\";\nimport { FileDetailsPresenterFeature } from \"~/presentation/FileDetails/feature.js\";\nimport { SharedCacheFeature } from \"~/features/shared/feature.js\";\nimport { ListFilesFeature } from \"~/features/listFiles/feature.js\";\nimport { GetFileFeature } from \"~/features/getFile/feature.js\";\nimport { DeleteFileFeature } from \"~/features/deleteFile/feature.js\";\nimport { UpdateFileFeature } from \"~/features/updateFile/feature.js\";\nimport { FileUploaderFeature } from \"~/features/fileUploader/feature.js\";\nimport { ListTagsFeature } from \"~/features/tags/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/feature.js\";\nimport {\n FileManagerViewWithConfig,\n useFileManagerConfig\n} from \"~/presentation/config/FileManagerViewConfig.js\";\nimport { FolderTree } from \"@webiny/app-aco/presentation/folderTree/FolderTree.js\";\nimport { BottomInfoBar } from \"~/presentation/FileList/components/BottomInfoBar/index.js\";\nimport { BulkActionBar } from \"~/presentation/FileList/components/BulkActions/index.js\";\nimport { FileDropPlaceholder } from \"~/presentation/FileList/components/FileDropPlaceholder/index.js\";\nimport { Empty } from \"~/presentation/FileList/components/Empty/index.js\";\nimport { FileDetailsDrawer } from \"~/presentation/FileDetails/components/FileDetailsDrawer.js\";\nimport { FileGrid } from \"~/presentation/FileList/components/Grid/index.js\";\nimport { FileManagerHeader } from \"~/presentation/FileList/components/Header/FileManagerHeader.js\";\nimport { FileTable } from \"~/presentation/FileList/components/Table/index.js\";\nimport { TagsList } from \"~/presentation/FileList/components/TagsList/index.js\";\nimport { UploadProgress } from \"~/presentation/FileList/components/Upload/index.js\";\nimport { GetSettingsRepository } from \"~/features/settings/abstractions.js\";\nimport { OverlayProvider, useOverlay } from \"./OverlayContext.js\";\n\nimport type { FmFile } from \"~/features/shared/types.js\";\nimport type {\n FileError,\n SelectedFile\n} from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport { outputFileSelectionError } from \"~/presentation/FileManager/outputFileSelectionError.js\";\nimport type { ScrollPosition } from \"@webiny/admin-ui\";\n\nexport interface FileManagerViewProps {\n overlay?: boolean;\n onChange?: (files: FmFile[]) => void;\n onClose?: () => void;\n multiple?: boolean;\n accept?: string[];\n scope?: string;\n children?: React.ReactNode;\n}\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\n// ---------------------------------------------------------------------------\n// Layout — uses original UI components, wired to the presenter.\n// ---------------------------------------------------------------------------\n\nconst FileManagerViewLayout = observer(function FileManagerViewLayout() {\n const { vm, actions } = useFileManagerPresenter();\n const { browser } = useFileManagerConfig();\n const overlay = useOverlay();\n const toast = useToast();\n\n useHotkeys({\n zIndex: 20,\n keys: {\n esc: () => overlay && overlay.onClose()\n }\n });\n\n const container = useContainer();\n const settingsRepository = useMemo(() => container.resolve(GetSettingsRepository), [container]);\n const settings = settingsRepository.settings;\n\n const uploadFiles = async (files: SelectedFile[]) => {\n await actions.upload(files);\n toast.showSuccessToast({ title: \"File upload complete.\" });\n };\n\n const onError = useCallback((errors: FileError[]) => {\n const message = outputFileSelectionError(errors);\n if (message) {\n toast.showWarningToast({ title: message });\n } else {\n toast.showWarningToast({ title: \"Couldn't process selected files.\" });\n console.error(errors);\n }\n }, []);\n\n const loadMoreOnScroll = useCallback(\n debounce(async (scrollFrame: ScrollPosition) => {\n if (scrollFrame.top > 0.8) {\n void actions.loadMore();\n }\n }, 200),\n [vm.list.pagination, actions]\n );\n\n if (!vm.fileModel) {\n return <OverlayLoader text={t`Preparing File Manager...`} />;\n }\n\n const isLoading = vm.list.pagination.loading && vm.list.rows.length === 0;\n const isEmpty = !vm.list.pagination.loading && vm.list.rows.length === 0;\n\n const renderList = (browseFiles: BrowserFilePickerRenderProps[\"browseFiles\"]) => {\n if (isLoading) {\n return <OverlayLoader text={t`Loading files...`} size={\"lg\"} />;\n }\n\n if (isEmpty) {\n return <Empty isSearchResult={!vm.showFolders} browseFiles={browseFiles} />;\n }\n\n if (vm.viewMode === \"table\") {\n return (\n <ScrollArea onScroll={loadMoreOnScroll}>\n <FileTable />\n </ScrollArea>\n );\n }\n\n return (\n <ScrollArea onScroll={loadMoreOnScroll}>\n <FileGrid />\n </ScrollArea>\n );\n };\n\n const content = (\n <BrowserFilePicker\n multiple\n maxSize={settings ? settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={overlay?.accept ?? []}\n onSuccess={uploadFiles}\n onError={onError}\n >\n {({ getDropZoneProps, browseFiles }) => (\n <>\n <FileDetailsDrawer />\n <SplitView namespace={\"fm/file/list\"}>\n <LeftPanel span={2}>\n <div className={\"flex flex-col h-main-content\"}>\n <div className={\"py-sm px-md\"}>\n <Heading level={5}>{t`File Manager`}</Heading>\n </div>\n <Separator />\n <div className={\"shrink-0 overflow-y-auto max-h-[66vh]\"}>\n <FolderTree\n vm={vm.folders}\n actions={actions.folders}\n folderActions={browser.folder.actions}\n dropConfirmation={browser.folder.dropConfirmation}\n enableActions={true}\n enableCreate={true}\n />\n </div>\n {browser.filterByTags ? (\n <>\n <Separator />\n <div className={\"flex-1 overflow-y-auto min-h-0\"}>\n <TagsList\n loading={false}\n activeTags={\n (vm.list.filters[\"tags\"] as string[]) ?? []\n }\n tags={vm.tags.map(tag => ({\n tag: tag.tag,\n count: tag.count\n }))}\n onActivatedTagsChange={tags => {\n if (tags.length > 0) {\n actions.filter.set(\"tags\", tags);\n } else {\n actions.filter.clear(\"tags\");\n actions.filter.clear(\"tags_rule\");\n }\n }}\n />\n </div>\n </>\n ) : null}\n </div>\n </LeftPanel>\n <RightPanel span={10}>\n <div\n className={\"flex flex-col relative\"}\n style={{ height: \"calc(100vh - 45px\" }}\n >\n <FileManagerHeader browseFiles={browseFiles} />\n <div\n className={\"flex-1\"}\n {...getDropZoneProps({\n onDragEnter: () => actions.setDragging(true),\n onDrop: () => actions.setDragging(false),\n onDragLeave: (e: React.DragEvent) => {\n if (\n !e.relatedTarget ||\n !e.currentTarget.contains(e.relatedTarget as Node)\n ) {\n actions.setDragging(false);\n }\n }\n })}\n data-testid={\"fm-list-wrapper\"}\n >\n {!overlay && <BulkActionBar />}\n {renderList(browseFiles)}\n {vm.dragging && <FileDropPlaceholder />}\n <UploadProgress />\n </div>\n <BottomInfoBar\n accept={overlay?.accept ?? []}\n listing={vm.list.pagination.loadingMore}\n loading={vm.list.pagination.loading}\n totalCount={vm.list.pagination.totalCount}\n currentCount={vm.list.pagination.currentCount}\n />\n </div>\n </RightPanel>\n </SplitView>\n </>\n )}\n </BrowserFilePicker>\n );\n\n if (overlay) {\n return (\n <OverlayLayout variant={\"strong\"} onExited={() => overlay.onClose()}>\n {content}\n </OverlayLayout>\n );\n }\n\n return content;\n});\n\n// ---------------------------------------------------------------------------\n// Inner component that resolves the presenter from the scoped container.\n// ---------------------------------------------------------------------------\n\nconst FileManagerViewInner = observer(\n ({\n overlay = false,\n onChange,\n onClose,\n multiple,\n accept,\n scope,\n children\n }: FileManagerViewProps) => {\n const { presenter } = useFeature(FileManagerPresenterFeature);\n\n const overlayConfig = useMemo(() => {\n if (!overlay || !onChange || !onClose) {\n return null;\n }\n\n const handleFileClick = (file: FmFile) => {\n if (multiple) {\n presenter.actions.selection.toggle(file.id);\n } else {\n onChange([file]);\n }\n };\n\n const confirmSelection = () => {\n const selectedIds = presenter.vm.list.selection.selectedIds;\n const selectedFiles = presenter.vm.list.rows.filter(f => selectedIds.has(f.id));\n if (selectedFiles.length > 0) {\n onChange(selectedFiles);\n }\n };\n\n return {\n onFileClick: handleFileClick,\n confirmSelection,\n onClose,\n accept: accept ?? [],\n multiple: multiple ?? false\n };\n }, [overlay, onChange, onClose, multiple, accept]);\n\n useEffect(() => {\n presenter.init({ scope });\n return () => presenter.dispose();\n }, [presenter, overlay, scope]);\n\n const inner = (\n <DialogsProvider>\n <FileManagerViewWithConfig>\n <FileManagerPresenterProvider presenter={presenter}>\n <FileManagerViewLayout />\n {children}\n </FileManagerPresenterProvider>\n </FileManagerViewWithConfig>\n </DialogsProvider>\n );\n\n if (overlayConfig) {\n return <OverlayProvider config={overlayConfig}>{inner}</OverlayProvider>;\n }\n\n return inner;\n }\n);\n\n// ---------------------------------------------------------------------------\n// FileManagerView — sets up DI container and renders the inner component.\n// ---------------------------------------------------------------------------\n\nexport const FileManagerView = (props: FileManagerViewProps) => {\n const container = useContainer();\n\n const scopedContainer = useMemo(() => {\n const child = container.createChildContainer();\n\n SharedCacheFeature.register(child);\n FoldersFeature.register(child, { type: \"FmFile\" });\n FolderTreePresenterFeature.register(child);\n ListFilesFeature.register(child);\n GetFileFeature.register(child);\n DeleteFileFeature.register(child);\n UpdateFileFeature.register(child);\n FileUploaderFeature.register(child);\n ListTagsFeature.register(child);\n GetSettingsFeature.register(child);\n FileDetailsPresenterFeature.register(child);\n FileManagerPresenterFeature.register(child);\n\n return child;\n }, []);\n\n return (\n <DiContainerProvider container={scopedContainer}>\n <FileManagerViewInner {...props} />\n </DiContainerProvider>\n );\n};\n"],"names":["t","i18n","FileManagerViewLayout","observer","vm","actions","useFileManagerPresenter","browser","useFileManagerConfig","overlay","useOverlay","toast","useToast","useHotkeys","container","useContainer","settingsRepository","useMemo","GetSettingsRepository","settings","uploadFiles","files","onError","useCallback","errors","message","outputFileSelectionError","console","loadMoreOnScroll","debounce","scrollFrame","OverlayLoader","isLoading","isEmpty","renderList","browseFiles","Empty","ScrollArea","FileTable","FileGrid","content","BrowserFilePicker","getDropZoneProps","FileDetailsDrawer","SplitView","LeftPanel","Heading","Separator","FolderTree","TagsList","tag","tags","RightPanel","FileManagerHeader","e","BulkActionBar","FileDropPlaceholder","UploadProgress","BottomInfoBar","OverlayLayout","FileManagerViewInner","onChange","onClose","multiple","accept","scope","children","presenter","useFeature","FileManagerPresenterFeature","overlayConfig","handleFileClick","file","confirmSelection","selectedIds","selectedFiles","f","useEffect","inner","DialogsProvider","FileManagerViewWithConfig","FileManagerPresenterProvider","OverlayProvider","FileManagerView","props","scopedContainer","child","SharedCacheFeature","FoldersFeature","FolderTreePresenterFeature","ListFilesFeature","GetFileFeature","DeleteFileFeature","UpdateFileFeature","FileUploaderFeature","ListTagsFeature","GetSettingsFeature","FileDetailsPresenterFeature","DiContainerProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAMlB,MAAMC,wCAAwBC,SAAS;IACnC,MAAM,EAAEC,EAAE,EAAEC,OAAO,EAAE,GAAGC;IACxB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IACpB,MAAMC,UAAUC;IAChB,MAAMC,QAAQC;IAEdC,WAAW;QACP,QAAQ;QACR,MAAM;YACF,KAAK,IAAMJ,WAAWA,QAAQ,OAAO;QACzC;IACJ;IAEA,MAAMK,YAAYC;IAClB,MAAMC,qBAAqBC,QAAQ,IAAMH,UAAU,OAAO,CAACI,wBAAwB;QAACJ;KAAU;IAC9F,MAAMK,WAAWH,mBAAmB,QAAQ;IAE5C,MAAMI,cAAc,OAAOC;QACvB,MAAMhB,QAAQ,MAAM,CAACgB;QACrBV,MAAM,gBAAgB,CAAC;YAAE,OAAO;QAAwB;IAC5D;IAEA,MAAMW,UAAUC,YAAY,CAACC;QACzB,MAAMC,UAAUC,yBAAyBF;QACzC,IAAIC,SACAd,MAAM,gBAAgB,CAAC;YAAE,OAAOc;QAAQ;aACrC;YACHd,MAAM,gBAAgB,CAAC;gBAAE,OAAO;YAAmC;YACnEgB,QAAQ,KAAK,CAACH;QAClB;IACJ,GAAG,EAAE;IAEL,MAAMI,mBAAmBL,YACrBM,SAAS,OAAOC;QACZ,IAAIA,YAAY,GAAG,GAAG,KACbzB,QAAQ,QAAQ;IAE7B,GAAG,MACH;QAACD,GAAG,IAAI,CAAC,UAAU;QAAEC;KAAQ;IAGjC,IAAI,CAACD,GAAG,SAAS,EACb,OAAO,WAAP,GAAO,oBAAC2B,eAAaA;QAAC,MAAM/B,CAAC,CAAC,yBAAyB,CAAC;;IAG5D,MAAMgC,YAAY5B,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,IAAIA,AAAwB,MAAxBA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;IACnE,MAAM6B,UAAU,CAAC7B,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,IAAIA,AAAwB,MAAxBA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;IAElE,MAAM8B,aAAa,CAACC;QAChB,IAAIH,WACA,OAAO,WAAP,GAAO,oBAACD,eAAaA;YAAC,MAAM/B,CAAC,CAAC,gBAAgB,CAAC;YAAE,MAAM;;QAG3D,IAAIiC,SACA,OAAO,WAAP,GAAO,oBAACG,OAAKA;YAAC,gBAAgB,CAAChC,GAAG,WAAW;YAAE,aAAa+B;;QAGhE,IAAI/B,AAAgB,YAAhBA,GAAG,QAAQ,EACX,OAAO,WAAP,GACI,oBAACiC,YAAUA;YAAC,UAAUT;yBAClB,oBAACU,WAASA;QAKtB,OAAO,WAAP,GACI,oBAACD,YAAUA;YAAC,UAAUT;yBAClB,oBAACW,UAAQA;IAGrB;IAEA,MAAMC,UAAU,WAAVA,GACF,oBAACC,mBAAiBA;QACd;QACA,SAAStB,WAAWA,SAAS,iBAAiB,GAAG,MAAM;QACvD,iBAAiB;QACjB,QAAQV,SAAS,UAAU,EAAE;QAC7B,WAAWW;QACX,SAASE;OAER,CAAC,EAAEoB,gBAAgB,EAAEP,WAAW,EAAE,iBAC/B,wDACI,oBAACQ,mBAAiBA,OAAAA,WAAAA,GAClB,oBAACC,WAASA;YAAC,WAAW;yBAClB,oBAACC,WAASA;YAAC,MAAM;yBACb,oBAAC;YAAI,WAAW;yBACZ,oBAAC;YAAI,WAAW;yBACZ,oBAACC,SAAOA;YAAC,OAAO;WAAI9C,CAAC,CAAC,YAAY,CAAC,kBAEvC,oBAAC+C,WAASA,OAAAA,WAAAA,GACV,oBAAC;YAAI,WAAW;yBACZ,oBAACC,YAAUA;YACP,IAAI5C,GAAG,OAAO;YACd,SAASC,QAAQ,OAAO;YACxB,eAAeE,QAAQ,MAAM,CAAC,OAAO;YACrC,kBAAkBA,QAAQ,MAAM,CAAC,gBAAgB;YACjD,eAAe;YACf,cAAc;aAGrBA,QAAQ,YAAY,GAAG,WAAH,GACjB,wDACI,oBAACwC,WAASA,OAAAA,WAAAA,GACV,oBAAC;YAAI,WAAW;yBACZ,oBAACE,UAAQA;YACL,SAAS;YACT,YACK7C,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAiB,EAAE;YAE/C,MAAMA,GAAG,IAAI,CAAC,GAAG,CAAC8C,CAAAA,MAAQ;oBACtB,KAAKA,IAAI,GAAG;oBACZ,OAAOA,IAAI,KAAK;gBACpB;YACA,uBAAuBC,CAAAA;gBACnB,IAAIA,KAAK,MAAM,GAAG,GACd9C,QAAQ,MAAM,CAAC,GAAG,CAAC,QAAQ8C;qBACxB;oBACH9C,QAAQ,MAAM,CAAC,KAAK,CAAC;oBACrBA,QAAQ,MAAM,CAAC,KAAK,CAAC;gBACzB;YACJ;eAIZ,sBAGZ,oBAAC+C,YAAUA;YAAC,MAAM;yBACd,oBAAC;YACG,WAAW;YACX,OAAO;gBAAE,QAAQ;YAAoB;yBAErC,oBAACC,mBAAiBA;YAAC,aAAalB;0BAChC,oBAAC;YACG,WAAW;YACV,GAAGO,iBAAiB;gBACjB,aAAa,IAAMrC,QAAQ,WAAW,CAAC;gBACvC,QAAQ,IAAMA,QAAQ,WAAW,CAAC;gBAClC,aAAa,CAACiD;oBACV,IACI,CAACA,EAAE,aAAa,IAChB,CAACA,EAAE,aAAa,CAAC,QAAQ,CAACA,EAAE,aAAa,GAEzCjD,QAAQ,WAAW,CAAC;gBAE5B;YACJ,EAAE;YACF,eAAa;WAEZ,CAACI,WAAW,WAAXA,GAAW,oBAAC8C,eAAaA,OAC1BrB,WAAWC,cACX/B,GAAG,QAAQ,IAAI,WAAJ,GAAI,oBAACoD,qBAAmBA,OAAAA,WAAAA,GACpC,oBAACC,gBAAcA,QAAAA,WAAAA,GAEnB,oBAACC,eAAaA;YACV,QAAQjD,SAAS,UAAU,EAAE;YAC7B,SAASL,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW;YACvC,SAASA,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;YACnC,YAAYA,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU;YACzC,cAAcA,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;IAU7E,IAAIK,SACA,OAAO,WAAP,GACI,oBAACkD,eAAaA;QAAC,SAAS;QAAU,UAAU,IAAMlD,QAAQ,OAAO;OAC5D+B;IAKb,OAAOA;AACX;AAMA,MAAMoB,uBAAuBzD,SACzB,CAAC,EACGM,UAAU,KAAK,EACfoD,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACW;IACnB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IAEjC,MAAMC,gBAAgBrD,QAAQ;QAC1B,IAAI,CAACR,WAAW,CAACoD,YAAY,CAACC,SAC1B,OAAO;QAGX,MAAMS,kBAAkB,CAACC;YACrB,IAAIT,UACAI,UAAU,OAAO,CAAC,SAAS,CAAC,MAAM,CAACK,KAAK,EAAE;iBAE1CX,SAAS;gBAACW;aAAK;QAEvB;QAEA,MAAMC,mBAAmB;YACrB,MAAMC,cAAcP,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW;YAC3D,MAAMQ,gBAAgBR,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAACS,CAAAA,IAAKF,YAAY,GAAG,CAACE,EAAE,EAAE;YAC7E,IAAID,cAAc,MAAM,GAAG,GACvBd,SAASc;QAEjB;QAEA,OAAO;YACH,aAAaJ;YACbE;YACAX;YACA,QAAQE,UAAU,EAAE;YACpB,UAAUD,YAAY;QAC1B;IACJ,GAAG;QAACtD;QAASoD;QAAUC;QAASC;QAAUC;KAAO;IAEjDa,UAAU;QACNV,UAAU,IAAI,CAAC;YAAEF;QAAM;QACvB,OAAO,IAAME,UAAU,OAAO;IAClC,GAAG;QAACA;QAAW1D;QAASwD;KAAM;IAE9B,MAAMa,QAAQ,WAARA,GACF,oBAACC,iBAAeA,MAAAA,WAAAA,GACZ,oBAACC,2BAAyBA,MAAAA,WAAAA,GACtB,oBAACC,8BAA4BA;QAAC,WAAWd;qBACrC,oBAACjE,uCAAqBA,OACrBgE;IAMjB,IAAII,eACA,OAAO,WAAP,GAAO,oBAACY,iBAAeA;QAAC,QAAQZ;OAAgBQ;IAGpD,OAAOA;AACX;AAOG,MAAMK,kBAAkB,CAACC;IAC5B,MAAMtE,YAAYC;IAElB,MAAMsE,kBAAkBpE,QAAQ;QAC5B,MAAMqE,QAAQxE,UAAU,oBAAoB;QAE5CyE,mBAAmB,QAAQ,CAACD;QAC5BE,eAAe,QAAQ,CAACF,OAAO;YAAE,MAAM;QAAS;QAChDG,2BAA2B,QAAQ,CAACH;QACpCI,iBAAiB,QAAQ,CAACJ;QAC1BK,eAAe,QAAQ,CAACL;QACxBM,kBAAkB,QAAQ,CAACN;QAC3BO,kBAAkB,QAAQ,CAACP;QAC3BQ,oBAAoB,QAAQ,CAACR;QAC7BS,gBAAgB,QAAQ,CAACT;QACzBU,mBAAmB,QAAQ,CAACV;QAC5BW,4BAA4B,QAAQ,CAACX;QACrCjB,4BAA4B,QAAQ,CAACiB;QAErC,OAAOA;IACX,GAAG,EAAE;IAEL,OAAO,WAAP,GACI,oBAACY,qBAAmBA;QAAC,WAAWb;qBAC5B,oBAACzB,sBAAyBwB;AAGtC"}
|