@strapi/upload 5.29.0 → 5.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/ai/components/AIAssetCard.js +31 -9
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +25 -3
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js +3 -2
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +3 -2
- package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.js +5 -4
- package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs +2 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs +1 -1
- package/dist/admin/components/AssetCard/DocAssetCard.js +3 -7
- package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/DocAssetCard.mjs +3 -7
- package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.js +5 -4
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +2 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +2 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +2 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +3 -3
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +2 -2
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +1 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js +9 -6
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +8 -5
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +15 -34
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +15 -34
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +5 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +3 -2
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +3 -3
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +2 -2
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +3 -2
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +3 -2
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
- package/dist/admin/components/FilterList/FilterList.js.map +1 -1
- package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
- package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
- package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +8 -10
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +5 -7
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
- package/dist/admin/components/SelectTree/Option.js.map +1 -1
- package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
- package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
- package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.js +1 -0
- package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs +1 -0
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
- package/dist/admin/components/TableList/CellContent.js +1 -1
- package/dist/admin/components/TableList/CellContent.mjs +1 -1
- package/dist/admin/components/TableList/PreviewCell.js +5 -4
- package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.mjs +2 -1
- package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
- package/dist/admin/components/TableList/TableList.js +1 -0
- package/dist/admin/components/TableList/TableList.js.map +1 -1
- package/dist/admin/components/TableList/TableList.mjs +1 -0
- package/dist/admin/components/TableList/TableList.mjs.map +1 -1
- package/dist/admin/components/TableList/TableRows.js +1 -0
- package/dist/admin/components/TableList/TableRows.js.map +1 -1
- package/dist/admin/components/TableList/TableRows.mjs +1 -0
- package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +3 -2
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +2 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +3 -3
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +2 -2
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +3 -3
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +2 -2
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
- package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
- package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
- package/dist/admin/constants.js +5 -10
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs +5 -11
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/enums.js +20 -0
- package/dist/admin/enums.js.map +1 -0
- package/dist/admin/enums.mjs +17 -0
- package/dist/admin/enums.mjs.map +1 -0
- package/dist/admin/hooks/useBulkEdit.js +1 -1
- package/dist/admin/hooks/useBulkEdit.mjs +1 -1
- package/dist/admin/hooks/useBulkMove.js +1 -1
- package/dist/admin/hooks/useBulkMove.mjs +1 -1
- package/dist/admin/hooks/useBulkRemove.js +1 -1
- package/dist/admin/hooks/useBulkRemove.mjs +1 -1
- package/dist/admin/hooks/useConfig.js +2 -1
- package/dist/admin/hooks/useConfig.js.map +1 -1
- package/dist/admin/hooks/useConfig.mjs +2 -1
- package/dist/admin/hooks/useConfig.mjs.map +1 -1
- package/dist/admin/hooks/useEditAsset.js +1 -1
- package/dist/admin/hooks/useEditAsset.js.map +1 -1
- package/dist/admin/hooks/useEditAsset.mjs +1 -1
- package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
- package/dist/admin/hooks/useEditFolder.js.map +1 -1
- package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolder.js +1 -1
- package/dist/admin/hooks/useFolder.js.map +1 -1
- package/dist/admin/hooks/useFolder.mjs +1 -1
- package/dist/admin/hooks/useFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolderStructure.js +1 -1
- package/dist/admin/hooks/useFolderStructure.mjs +1 -1
- package/dist/admin/hooks/useModalQueryParams.js +2 -2
- package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
- package/dist/admin/hooks/useModalQueryParams.mjs +1 -1
- package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -1
- package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
- package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js +24 -0
- package/dist/admin/hooks/useTracking.js.map +1 -0
- package/dist/admin/hooks/useTracking.mjs +22 -0
- package/dist/admin/hooks/useTracking.mjs.map +1 -0
- package/dist/admin/hooks/useUpload.js.map +1 -1
- package/dist/admin/hooks/useUpload.mjs.map +1 -1
- package/dist/admin/index.js +1 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +5 -5
- package/dist/admin/package.json.mjs +5 -5
- package/dist/admin/pages/App/App.js +1 -1
- package/dist/admin/pages/App/App.mjs +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +1 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +1 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js +1 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs +1 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.js +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.mjs +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.js +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.mjs +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js +3 -2
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +3 -2
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Header.js +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Header.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Header.mjs +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Header.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js +1 -0
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +1 -0
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +1 -1
- package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +1 -1
- package/dist/admin/src/constants.d.ts +0 -6
- package/dist/admin/src/enums.d.ts +12 -0
- package/dist/admin/src/hooks/useTracking.d.ts +4 -0
- package/dist/admin/src/utils/icons.d.ts +14 -0
- package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
- package/dist/admin/src/utils/typeFromMime.d.ts +2 -2
- package/dist/admin/src/utils/urlsToAssets.d.ts +1 -1
- package/dist/admin/translations/pt-BR.json.js +75 -7
- package/dist/admin/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/translations/pt-BR.json.mjs +75 -7
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/utils/formatBytes.js.map +1 -1
- package/dist/admin/utils/formatBytes.mjs.map +1 -1
- package/dist/admin/utils/formatDuration.js.map +1 -1
- package/dist/admin/utils/formatDuration.mjs.map +1 -1
- package/dist/admin/utils/getFolderURL.js.map +1 -1
- package/dist/admin/utils/getFolderURL.mjs.map +1 -1
- package/dist/admin/utils/getTrad.js.map +1 -1
- package/dist/admin/utils/getTrad.mjs.map +1 -1
- package/dist/admin/utils/icons.js +23 -0
- package/dist/admin/utils/icons.js.map +1 -0
- package/dist/admin/utils/icons.mjs +19 -0
- package/dist/admin/utils/icons.mjs.map +1 -0
- package/dist/admin/utils/normalizeAPIError.js.map +1 -1
- package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/admin/utils/typeFromMime.js +15 -11
- package/dist/admin/utils/typeFromMime.js.map +1 -1
- package/dist/admin/utils/typeFromMime.mjs +15 -11
- package/dist/admin/utils/typeFromMime.mjs.map +1 -1
- package/dist/server/controllers/admin-folder-file.js +2 -2
- package/dist/server/controllers/admin-folder-file.js.map +1 -1
- package/dist/server/controllers/admin-folder-file.mjs +2 -2
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +1 -1
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +1 -1
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/utils/folders.js.map +1 -1
- package/dist/server/controllers/utils/folders.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
- package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/folder.js +1 -1
- package/dist/server/controllers/validation/admin/folder.js.map +1 -1
- package/dist/server/controllers/validation/admin/folder.mjs +1 -1
- package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/services/ai-metadata.js.map +1 -1
- package/dist/server/services/ai-metadata.mjs.map +1 -1
- package/dist/server/services/api-upload-folder.js.map +1 -1
- package/dist/server/services/api-upload-folder.mjs.map +1 -1
- package/dist/server/services/folder.js.map +1 -1
- package/dist/server/services/folder.mjs.map +1 -1
- package/dist/server/services/image-manipulation.js.map +1 -1
- package/dist/server/services/image-manipulation.mjs.map +1 -1
- package/dist/server/services/metrics.js +14 -1
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs +14 -1
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/services/upload.js +8 -8
- package/dist/server/services/upload.js.map +1 -1
- package/dist/server/services/upload.mjs +8 -8
- package/dist/server/services/upload.mjs.map +1 -1
- package/dist/server/services/weekly-metrics.js +3 -6
- package/dist/server/services/weekly-metrics.js.map +1 -1
- package/dist/server/services/weekly-metrics.mjs +3 -6
- package/dist/server/services/weekly-metrics.mjs.map +1 -1
- package/dist/server/src/index.d.ts +1 -1
- package/dist/server/src/services/index.d.ts +1 -1
- package/dist/server/src/services/metrics.d.ts +1 -0
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/upload.d.ts.map +1 -1
- package/dist/server/src/services/weekly-metrics.d.ts +0 -1
- package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
- package/dist/server/utils/cron.js.map +1 -1
- package/dist/server/utils/cron.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableList.mjs","sources":["../../../../admin/src/components/TableList/TableList.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport {\n Checkbox,\n IconButton,\n Table,\n Th,\n Thead,\n Tooltip,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { CaretDown, CaretUp } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { tableHeaders } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { TableRows } from './TableRows';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nexport interface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableListProps {\n isFolderSelectionAllowed?: boolean;\n allowedTypes?: AllowedTypes[];\n assetCount?: number;\n folderCount?: number;\n indeterminate?: boolean;\n onChangeSort?: ((sortQuery: string) => void) | null;\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset?: ((asset: FileRow) => void) | null;\n onEditFolder?: ((folder: FolderRow) => void) | null;\n onSelectAll: (checked: boolean | string, rows?: FolderRow[] | FileRow[]) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows?: FileRow[] | FolderRow[];\n selected?: FileRow[] | FolderRow[];\n shouldDisableBulkSelect?: boolean;\n sortQuery?: string;\n}\n\nexport const TableList = ({\n assetCount = 0,\n folderCount = 0,\n indeterminate = false,\n onChangeSort = null,\n onChangeFolder = null,\n onEditAsset = null,\n onEditFolder = null,\n onSelectAll,\n onSelectOne,\n rows = [],\n selected = [],\n shouldDisableBulkSelect = false,\n sortQuery = '',\n}: TableListProps) => {\n const { formatMessage } = useIntl();\n const [sortBy, sortOrder] = sortQuery.split(':');\n\n const handleClickSort = (isSorted: boolean, name: string) => {\n const nextSortOrder = isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC';\n const nextSort = `${name}:${nextSortOrder}`;\n\n onChangeSort && onChangeSort(nextSort);\n };\n\n return (\n <Table colCount={tableHeaders.length + 2} rowCount={assetCount + folderCount + 1}>\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all folders & assets',\n })}\n disabled={shouldDisableBulkSelect}\n onCheckedChange={(checked) => onSelectAll(checked, rows)}\n checked={\n indeterminate && !shouldDisableBulkSelect\n ? 'indeterminate'\n : (assetCount > 0 || folderCount > 0) &&\n selected.length === assetCount + folderCount\n }\n />\n </Th>\n {tableHeaders.map(({ metadatas: { label, isSortable }, name, key }) => {\n const isSorted = sortBy === name;\n const isUp = sortOrder === 'ASC';\n const tableHeaderLabel = formatMessage(label);\n const sortLabel = formatMessage(\n { id: 'list.table.header.sort', defaultMessage: 'Sort on {label}' },\n { label: tableHeaderLabel }\n );\n\n return (\n <Th\n action={\n isSorted && (\n <IconButton\n label={sortLabel}\n onClick={() => handleClickSort(isSorted, name)}\n variant=\"ghost\"\n >\n {isUp ? <CaretUp /> : <CaretDown />}\n </IconButton>\n )\n }\n key={key}\n >\n <Tooltip label={isSortable ? sortLabel : tableHeaderLabel}>\n {isSortable ? (\n <Typography\n onClick={() => handleClickSort(isSorted, name)}\n tag={isSorted ? 'span' : 'button'}\n textColor=\"neutral600\"\n variant=\"sigma\"\n >\n {tableHeaderLabel}\n </Typography>\n ) : (\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n )}\n </Tooltip>\n </Th>\n );\n })}\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: getTrad('list.table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableRows\n onChangeFolder={onChangeFolder}\n onEditAsset={onEditAsset!}\n onEditFolder={onEditFolder!}\n rows={rows}\n onSelectOne={onSelectOne}\n selected={selected}\n />\n </Table>\n );\n};\n"],"names":["TableList","assetCount","folderCount","indeterminate","onChangeSort","onChangeFolder","onEditAsset","onEditFolder","onSelectAll","onSelectOne","rows","selected","shouldDisableBulkSelect","sortQuery","formatMessage","useIntl","sortBy","sortOrder","split","handleClickSort","isSorted","name","nextSortOrder","nextSort","_jsxs","Table","colCount","tableHeaders","length","rowCount","_jsx","Thead","Tr","Th","Checkbox","aria-label","id","getTrad","defaultMessage","disabled","onCheckedChange","checked","map","metadatas","label","isSortable","key","isUp","tableHeaderLabel","sortLabel","action","IconButton","onClick","variant","CaretUp","CaretDown","Tooltip","Typography","tag","textColor","VisuallyHidden","TableRows"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableList.mjs","sources":["../../../../admin/src/components/TableList/TableList.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport {\n Checkbox,\n IconButton,\n Table,\n Th,\n Thead,\n Tooltip,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { CaretDown, CaretUp } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { tableHeaders } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { TableRows } from './TableRows';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nexport interface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableListProps {\n isFolderSelectionAllowed?: boolean;\n allowedTypes?: AllowedTypes[];\n assetCount?: number;\n folderCount?: number;\n indeterminate?: boolean;\n onChangeSort?: ((sortQuery: string) => void) | null;\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset?: ((asset: FileRow) => void) | null;\n onEditFolder?: ((folder: FolderRow) => void) | null;\n onSelectAll: (checked: boolean | string, rows?: FolderRow[] | FileRow[]) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows?: FileRow[] | FolderRow[];\n selected?: FileRow[] | FolderRow[];\n shouldDisableBulkSelect?: boolean;\n sortQuery?: string;\n}\n\nexport const TableList = ({\n assetCount = 0,\n folderCount = 0,\n indeterminate = false,\n onChangeSort = null,\n onChangeFolder = null,\n onEditAsset = null,\n onEditFolder = null,\n onSelectAll,\n onSelectOne,\n rows = [],\n selected = [],\n shouldDisableBulkSelect = false,\n sortQuery = '',\n}: TableListProps) => {\n const { formatMessage } = useIntl();\n const [sortBy, sortOrder] = sortQuery.split(':');\n\n const handleClickSort = (isSorted: boolean, name: string) => {\n const nextSortOrder = isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC';\n const nextSort = `${name}:${nextSortOrder}`;\n\n onChangeSort && onChangeSort(nextSort);\n };\n\n return (\n <Table colCount={tableHeaders.length + 2} rowCount={assetCount + folderCount + 1}>\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all folders & assets',\n })}\n disabled={shouldDisableBulkSelect}\n onCheckedChange={(checked) => onSelectAll(checked, rows)}\n checked={\n indeterminate && !shouldDisableBulkSelect\n ? 'indeterminate'\n : (assetCount > 0 || folderCount > 0) &&\n selected.length === assetCount + folderCount\n }\n />\n </Th>\n {tableHeaders.map(({ metadatas: { label, isSortable }, name, key }) => {\n const isSorted = sortBy === name;\n const isUp = sortOrder === 'ASC';\n const tableHeaderLabel = formatMessage(label);\n const sortLabel = formatMessage(\n { id: 'list.table.header.sort', defaultMessage: 'Sort on {label}' },\n { label: tableHeaderLabel }\n );\n\n return (\n <Th\n action={\n isSorted && (\n <IconButton\n label={sortLabel}\n onClick={() => handleClickSort(isSorted, name)}\n variant=\"ghost\"\n >\n {isUp ? <CaretUp /> : <CaretDown />}\n </IconButton>\n )\n }\n key={key}\n >\n <Tooltip label={isSortable ? sortLabel : tableHeaderLabel}>\n {isSortable ? (\n <Typography\n onClick={() => handleClickSort(isSorted, name)}\n tag={isSorted ? 'span' : 'button'}\n textColor=\"neutral600\"\n variant=\"sigma\"\n >\n {tableHeaderLabel}\n </Typography>\n ) : (\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n )}\n </Tooltip>\n </Th>\n );\n })}\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: getTrad('list.table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableRows\n onChangeFolder={onChangeFolder}\n onEditAsset={onEditAsset!}\n onEditFolder={onEditFolder!}\n rows={rows}\n onSelectOne={onSelectOne}\n selected={selected}\n />\n </Table>\n );\n};\n"],"names":["TableList","assetCount","folderCount","indeterminate","onChangeSort","onChangeFolder","onEditAsset","onEditFolder","onSelectAll","onSelectOne","rows","selected","shouldDisableBulkSelect","sortQuery","formatMessage","useIntl","sortBy","sortOrder","split","handleClickSort","isSorted","name","nextSortOrder","nextSort","_jsxs","Table","colCount","tableHeaders","length","rowCount","_jsx","Thead","Tr","Th","Checkbox","aria-label","id","getTrad","defaultMessage","disabled","onCheckedChange","checked","map","metadatas","label","isSortable","key","isUp","tableHeaderLabel","sortLabel","action","IconButton","onClick","variant","CaretUp","CaretDown","Tooltip","Typography","tag","textColor","VisuallyHidden","TableRows"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRows.js","sources":["../../../../admin/src/components/TableList/TableRows.tsx"],"sourcesContent":["import { Checkbox, Flex, IconButton, Tbody, Td, Tr } from '@strapi/design-system';\nimport { Eye, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { tableHeaders as cells } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { CellContent } from './CellContent';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\n\ninterface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableRowsProps {\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset: (asset: FileRow) => void;\n onEditFolder: (folder: FolderRow) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows: FileRow[] | FolderRow[];\n selected: FileRow[] | FolderRow[];\n}\n\nexport const TableRows = ({\n onChangeFolder = null,\n onEditAsset,\n onEditFolder,\n onSelectOne,\n rows = [],\n selected = [],\n}: TableRowsProps) => {\n const { formatMessage } = useIntl();\n\n const handleRowClickFn = (\n element: FileRow | FolderRow,\n id: number,\n path: FolderRow['path'],\n elementType?: string\n ) => {\n if (elementType === 'asset') {\n onEditAsset(element as FileRow);\n } else {\n if (onChangeFolder) {\n onChangeFolder(id, path);\n }\n }\n };\n\n return (\n <Tbody>\n {rows.map((element) => {\n const { path, id, isSelectable, name, folderURL, type: contentType } = element;\n\n const isSelected = !!selected.find(\n (currentRow) => currentRow.id === id && currentRow.type === contentType\n );\n\n return (\n <Tr\n key={id}\n onClick={() => handleRowClickFn(element, id, path || undefined, contentType)}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: contentType === 'asset' ? 'list-assets-select' : 'list.folder.select',\n defaultMessage:\n contentType === 'asset' ? 'Select {name} asset' : 'Select {name} folder',\n },\n { name }\n )}\n disabled={!isSelectable}\n onCheckedChange={() => onSelectOne(element)}\n checked={isSelected}\n />\n </Td>\n {cells.map(({ name, type: cellType }) => {\n return (\n <Td key={name}>\n <CellContent\n content={element as FileRow}\n cellType={cellType}\n contentType={contentType}\n name={name}\n />\n </Td>\n );\n })}\n\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"flex-end\">\n {contentType === 'folder' &&\n (folderURL ? (\n <IconButton\n tag={Link}\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n to={folderURL}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ) : (\n <IconButton\n tag=\"button\"\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n onClick={() => onChangeFolder && onChangeFolder(id)}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ))}\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'Edit',\n })}\n onClick={() =>\n contentType === 'asset'\n ? onEditAsset(element as FileRow)\n : onEditFolder(element as FolderRow)\n }\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n"],"names":["TableRows","onChangeFolder","onEditAsset","onEditFolder","onSelectOne","rows","selected","formatMessage","useIntl","handleRowClickFn","element","id","path","elementType","_jsx","Tbody","map","isSelectable","name","folderURL","type","contentType","isSelected","find","currentRow","_jsxs","Tr","onClick","undefined","Td","e","stopPropagation","Checkbox","aria-label","defaultMessage","disabled","onCheckedChange","checked","cells","cellType","CellContent","content","Flex","justifyContent","IconButton","tag","Link","label","getTrad","to","variant","Eye","Pencil"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableRows.js","sources":["../../../../admin/src/components/TableList/TableRows.tsx"],"sourcesContent":["import { Checkbox, Flex, IconButton, Tbody, Td, Tr } from '@strapi/design-system';\nimport { Eye, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { tableHeaders as cells } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { CellContent } from './CellContent';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\n\ninterface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableRowsProps {\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset: (asset: FileRow) => void;\n onEditFolder: (folder: FolderRow) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows: FileRow[] | FolderRow[];\n selected: FileRow[] | FolderRow[];\n}\n\nexport const TableRows = ({\n onChangeFolder = null,\n onEditAsset,\n onEditFolder,\n onSelectOne,\n rows = [],\n selected = [],\n}: TableRowsProps) => {\n const { formatMessage } = useIntl();\n\n const handleRowClickFn = (\n element: FileRow | FolderRow,\n id: number,\n path: FolderRow['path'],\n elementType?: string\n ) => {\n if (elementType === 'asset') {\n onEditAsset(element as FileRow);\n } else {\n if (onChangeFolder) {\n onChangeFolder(id, path);\n }\n }\n };\n\n return (\n <Tbody>\n {rows.map((element) => {\n const { path, id, isSelectable, name, folderURL, type: contentType } = element;\n\n const isSelected = !!selected.find(\n (currentRow) => currentRow.id === id && currentRow.type === contentType\n );\n\n return (\n <Tr\n key={id}\n onClick={() => handleRowClickFn(element, id, path || undefined, contentType)}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: contentType === 'asset' ? 'list-assets-select' : 'list.folder.select',\n defaultMessage:\n contentType === 'asset' ? 'Select {name} asset' : 'Select {name} folder',\n },\n { name }\n )}\n disabled={!isSelectable}\n onCheckedChange={() => onSelectOne(element)}\n checked={isSelected}\n />\n </Td>\n {cells.map(({ name, type: cellType }) => {\n return (\n <Td key={name}>\n <CellContent\n content={element as FileRow}\n cellType={cellType}\n contentType={contentType}\n name={name}\n />\n </Td>\n );\n })}\n\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"flex-end\">\n {contentType === 'folder' &&\n (folderURL ? (\n <IconButton\n tag={Link}\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n to={folderURL}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ) : (\n <IconButton\n tag=\"button\"\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n onClick={() => onChangeFolder && onChangeFolder(id)}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ))}\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'Edit',\n })}\n onClick={() =>\n contentType === 'asset'\n ? onEditAsset(element as FileRow)\n : onEditFolder(element as FolderRow)\n }\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n"],"names":["TableRows","onChangeFolder","onEditAsset","onEditFolder","onSelectOne","rows","selected","formatMessage","useIntl","handleRowClickFn","element","id","path","elementType","_jsx","Tbody","map","isSelectable","name","folderURL","type","contentType","isSelected","find","currentRow","_jsxs","Tr","onClick","undefined","Td","e","stopPropagation","Checkbox","aria-label","defaultMessage","disabled","onCheckedChange","checked","cells","cellType","CellContent","content","Flex","justifyContent","IconButton","tag","Link","label","getTrad","to","variant","Eye","Pencil"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRows.mjs","sources":["../../../../admin/src/components/TableList/TableRows.tsx"],"sourcesContent":["import { Checkbox, Flex, IconButton, Tbody, Td, Tr } from '@strapi/design-system';\nimport { Eye, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { tableHeaders as cells } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { CellContent } from './CellContent';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\n\ninterface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableRowsProps {\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset: (asset: FileRow) => void;\n onEditFolder: (folder: FolderRow) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows: FileRow[] | FolderRow[];\n selected: FileRow[] | FolderRow[];\n}\n\nexport const TableRows = ({\n onChangeFolder = null,\n onEditAsset,\n onEditFolder,\n onSelectOne,\n rows = [],\n selected = [],\n}: TableRowsProps) => {\n const { formatMessage } = useIntl();\n\n const handleRowClickFn = (\n element: FileRow | FolderRow,\n id: number,\n path: FolderRow['path'],\n elementType?: string\n ) => {\n if (elementType === 'asset') {\n onEditAsset(element as FileRow);\n } else {\n if (onChangeFolder) {\n onChangeFolder(id, path);\n }\n }\n };\n\n return (\n <Tbody>\n {rows.map((element) => {\n const { path, id, isSelectable, name, folderURL, type: contentType } = element;\n\n const isSelected = !!selected.find(\n (currentRow) => currentRow.id === id && currentRow.type === contentType\n );\n\n return (\n <Tr\n key={id}\n onClick={() => handleRowClickFn(element, id, path || undefined, contentType)}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: contentType === 'asset' ? 'list-assets-select' : 'list.folder.select',\n defaultMessage:\n contentType === 'asset' ? 'Select {name} asset' : 'Select {name} folder',\n },\n { name }\n )}\n disabled={!isSelectable}\n onCheckedChange={() => onSelectOne(element)}\n checked={isSelected}\n />\n </Td>\n {cells.map(({ name, type: cellType }) => {\n return (\n <Td key={name}>\n <CellContent\n content={element as FileRow}\n cellType={cellType}\n contentType={contentType}\n name={name}\n />\n </Td>\n );\n })}\n\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"flex-end\">\n {contentType === 'folder' &&\n (folderURL ? (\n <IconButton\n tag={Link}\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n to={folderURL}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ) : (\n <IconButton\n tag=\"button\"\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n onClick={() => onChangeFolder && onChangeFolder(id)}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ))}\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'Edit',\n })}\n onClick={() =>\n contentType === 'asset'\n ? onEditAsset(element as FileRow)\n : onEditFolder(element as FolderRow)\n }\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n"],"names":["TableRows","onChangeFolder","onEditAsset","onEditFolder","onSelectOne","rows","selected","formatMessage","useIntl","handleRowClickFn","element","id","path","elementType","_jsx","Tbody","map","isSelectable","name","folderURL","type","contentType","isSelected","find","currentRow","_jsxs","Tr","onClick","undefined","Td","e","stopPropagation","Checkbox","aria-label","defaultMessage","disabled","onCheckedChange","checked","cells","cellType","CellContent","content","Flex","justifyContent","IconButton","tag","Link","label","getTrad","to","variant","Eye","Pencil"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableRows.mjs","sources":["../../../../admin/src/components/TableList/TableRows.tsx"],"sourcesContent":["import { Checkbox, Flex, IconButton, Tbody, Td, Tr } from '@strapi/design-system';\nimport { Eye, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { tableHeaders as cells } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport { CellContent } from './CellContent';\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { Folder } from '../../../../shared/contracts/folders';\n\ninterface FileRow extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface TableRowsProps {\n onChangeFolder?: ((folderId: number, folderPath?: string) => void) | null;\n onEditAsset: (asset: FileRow) => void;\n onEditFolder: (folder: FolderRow) => void;\n onSelectOne: (element: FileRow | FolderRow) => void;\n rows: FileRow[] | FolderRow[];\n selected: FileRow[] | FolderRow[];\n}\n\nexport const TableRows = ({\n onChangeFolder = null,\n onEditAsset,\n onEditFolder,\n onSelectOne,\n rows = [],\n selected = [],\n}: TableRowsProps) => {\n const { formatMessage } = useIntl();\n\n const handleRowClickFn = (\n element: FileRow | FolderRow,\n id: number,\n path: FolderRow['path'],\n elementType?: string\n ) => {\n if (elementType === 'asset') {\n onEditAsset(element as FileRow);\n } else {\n if (onChangeFolder) {\n onChangeFolder(id, path);\n }\n }\n };\n\n return (\n <Tbody>\n {rows.map((element) => {\n const { path, id, isSelectable, name, folderURL, type: contentType } = element;\n\n const isSelected = !!selected.find(\n (currentRow) => currentRow.id === id && currentRow.type === contentType\n );\n\n return (\n <Tr\n key={id}\n onClick={() => handleRowClickFn(element, id, path || undefined, contentType)}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: contentType === 'asset' ? 'list-assets-select' : 'list.folder.select',\n defaultMessage:\n contentType === 'asset' ? 'Select {name} asset' : 'Select {name} folder',\n },\n { name }\n )}\n disabled={!isSelectable}\n onCheckedChange={() => onSelectOne(element)}\n checked={isSelected}\n />\n </Td>\n {cells.map(({ name, type: cellType }) => {\n return (\n <Td key={name}>\n <CellContent\n content={element as FileRow}\n cellType={cellType}\n contentType={contentType}\n name={name}\n />\n </Td>\n );\n })}\n\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"flex-end\">\n {contentType === 'folder' &&\n (folderURL ? (\n <IconButton\n tag={Link}\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n to={folderURL}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ) : (\n <IconButton\n tag=\"button\"\n label={formatMessage({\n id: getTrad('list.folders.link-label'),\n defaultMessage: 'Access folder',\n })}\n onClick={() => onChangeFolder && onChangeFolder(id)}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n ))}\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'Edit',\n })}\n onClick={() =>\n contentType === 'asset'\n ? onEditAsset(element as FileRow)\n : onEditFolder(element as FolderRow)\n }\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n"],"names":["TableRows","onChangeFolder","onEditAsset","onEditFolder","onSelectOne","rows","selected","formatMessage","useIntl","handleRowClickFn","element","id","path","elementType","_jsx","Tbody","map","isSelectable","name","folderURL","type","contentType","isSelected","find","currentRow","_jsxs","Tr","onClick","undefined","Td","e","stopPropagation","Checkbox","aria-label","defaultMessage","disabled","onCheckedChange","checked","cells","cellType","CellContent","content","Flex","justifyContent","IconButton","tag","Link","label","getTrad","to","variant","Eye","Pencil"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ require('byte-size');
|
|
|
7
7
|
require('date-fns');
|
|
8
8
|
var getTrad = require('../../../utils/getTrad.js');
|
|
9
9
|
require('qs');
|
|
10
|
-
require('../../../
|
|
10
|
+
require('../../../utils/typeFromMime.js');
|
|
11
11
|
require('../../../utils/urlYupSchema.js');
|
|
12
12
|
var FromComputerForm = require('./FromComputerForm.js');
|
|
13
13
|
var FromUrlForm = require('./FromUrlForm.js');
|
|
@@ -5,7 +5,7 @@ import 'byte-size';
|
|
|
5
5
|
import 'date-fns';
|
|
6
6
|
import { getTrad } from '../../../utils/getTrad.mjs';
|
|
7
7
|
import 'qs';
|
|
8
|
-
import '../../../
|
|
8
|
+
import '../../../utils/typeFromMime.mjs';
|
|
9
9
|
import '../../../utils/urlYupSchema.mjs';
|
|
10
10
|
import { FromComputerForm } from './FromComputerForm.mjs';
|
|
11
11
|
import { FromUrlForm } from './FromUrlForm.mjs';
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
5
|
var designSystem = require('@strapi/design-system');
|
|
7
6
|
var icons = require('@strapi/icons');
|
|
8
7
|
var reactIntl = require('react-intl');
|
|
9
8
|
var styledComponents = require('styled-components');
|
|
10
9
|
var constants = require('../../../constants.js');
|
|
10
|
+
var useTracking = require('../../../hooks/useTracking.js');
|
|
11
11
|
require('byte-size');
|
|
12
12
|
require('date-fns');
|
|
13
13
|
var getTrad = require('../../../utils/getTrad.js');
|
|
14
14
|
require('qs');
|
|
15
15
|
var rawFileToAsset = require('../../../utils/rawFileToAsset.js');
|
|
16
|
+
require('../../../utils/typeFromMime.js');
|
|
16
17
|
require('../../../utils/urlYupSchema.js');
|
|
17
18
|
|
|
18
19
|
function _interopNamespaceDefault(e) {
|
|
@@ -55,7 +56,7 @@ const FromComputerForm = ({ onClose, onAddAssets, trackedLocation })=>{
|
|
|
55
56
|
const { formatMessage } = reactIntl.useIntl();
|
|
56
57
|
const [dragOver, setDragOver] = React__namespace.useState(false);
|
|
57
58
|
const inputRef = React__namespace.useRef(null);
|
|
58
|
-
const { trackUsage } =
|
|
59
|
+
const { trackUsage } = useTracking.useTracking();
|
|
59
60
|
const handleDragOver = (event)=>{
|
|
60
61
|
event.preventDefault();
|
|
61
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromComputerForm.js","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromComputerForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\nconst Wrapper = styled(Flex)`\n flex-direction: column;\n`;\n\nconst IconWrapper = styled.div`\n font-size: 6rem;\n\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nconst MediaBox = styled(Box)`\n border-style: dashed;\n`;\n\nconst OpaqueBox = styled(Box)`\n opacity: 0;\n cursor: pointer;\n`;\n\ninterface FromComputerFormProps {\n onClose: () => void;\n onAddAssets: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromComputerForm = ({\n onClose,\n onAddAssets,\n trackedLocation,\n}: FromComputerFormProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleDragEnter = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => setDragOver(false);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n // inputRef.current?.click();\n };\n\n const handleChange = () => {\n const files = inputRef.current?.files;\n const assets: FileWithRawFile[] = [];\n\n if (files) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n }\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'computer', location: trackedLocation });\n }\n\n onAddAssets(assets);\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n\n onAddAssets(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <label>\n <MediaBox\n paddingTop={11}\n paddingBottom={11}\n hasRadius\n justifyContent=\"center\"\n borderColor={dragOver ? 'primary500' : 'neutral300'}\n background={dragOver ? 'primary100' : 'neutral100'}\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <Flex justifyContent=\"center\">\n <Wrapper>\n <IconWrapper>\n <PicturePlus aria-hidden width=\"3.2rem\" height=\"3.2rem\" />\n </IconWrapper>\n\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n </Typography>\n </Box>\n\n <OpaqueBox\n tag=\"input\"\n position=\"absolute\"\n left={0}\n right={0}\n bottom={0}\n top={0}\n width=\"100%\"\n type=\"file\"\n multiple\n name=\"files\"\n aria-label={formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n tabIndex={-1}\n ref={inputRef}\n zIndex={1}\n onChange={handleChange}\n />\n\n {/* <Box position=\"relative\">\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: getTrad('input.button.label'),\n defaultMessage: 'Browse files',\n })}\n </Button>\n </Box> */}\n </Wrapper>\n </Flex>\n </MediaBox>\n </label>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'cancel',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n"],"names":["Wrapper","styled","Flex","IconWrapper","div","theme","colors","primary600","MediaBox","Box","OpaqueBox","FromComputerForm","onClose","onAddAssets","trackedLocation","formatMessage","useIntl","dragOver","setDragOver","React","useState","inputRef","useRef","trackUsage","useTracking","handleDragOver","event","preventDefault","handleDragEnter","handleDragLeave","handleChange","files","current","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","source","location","handleDrop","e","dataTransfer","_jsxs","form","_jsx","paddingLeft","paddingRight","paddingTop","paddingBottom","label","hasRadius","justifyContent","borderColor","background","position","onDragEnter","onDragLeave","onDragOver","onDrop","PicturePlus","aria-hidden","width","height","Typography","variant","textColor","tag","id","getTrad","defaultMessage","left","right","bottom","top","type","multiple","name","aria-label","tabIndex","ref","zIndex","onChange","Modal","Footer","Button","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FromComputerForm.js","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromComputerForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\nconst Wrapper = styled(Flex)`\n flex-direction: column;\n`;\n\nconst IconWrapper = styled.div`\n font-size: 6rem;\n\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nconst MediaBox = styled(Box)`\n border-style: dashed;\n`;\n\nconst OpaqueBox = styled(Box)`\n opacity: 0;\n cursor: pointer;\n`;\n\ninterface FromComputerFormProps {\n onClose: () => void;\n onAddAssets: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromComputerForm = ({\n onClose,\n onAddAssets,\n trackedLocation,\n}: FromComputerFormProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleDragEnter = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => setDragOver(false);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n // inputRef.current?.click();\n };\n\n const handleChange = () => {\n const files = inputRef.current?.files;\n const assets: FileWithRawFile[] = [];\n\n if (files) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n }\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'computer', location: trackedLocation });\n }\n\n onAddAssets(assets);\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n\n onAddAssets(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <label>\n <MediaBox\n paddingTop={11}\n paddingBottom={11}\n hasRadius\n justifyContent=\"center\"\n borderColor={dragOver ? 'primary500' : 'neutral300'}\n background={dragOver ? 'primary100' : 'neutral100'}\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <Flex justifyContent=\"center\">\n <Wrapper>\n <IconWrapper>\n <PicturePlus aria-hidden width=\"3.2rem\" height=\"3.2rem\" />\n </IconWrapper>\n\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n </Typography>\n </Box>\n\n <OpaqueBox\n tag=\"input\"\n position=\"absolute\"\n left={0}\n right={0}\n bottom={0}\n top={0}\n width=\"100%\"\n type=\"file\"\n multiple\n name=\"files\"\n aria-label={formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n tabIndex={-1}\n ref={inputRef}\n zIndex={1}\n onChange={handleChange}\n />\n\n {/* <Box position=\"relative\">\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: getTrad('input.button.label'),\n defaultMessage: 'Browse files',\n })}\n </Button>\n </Box> */}\n </Wrapper>\n </Flex>\n </MediaBox>\n </label>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'cancel',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n"],"names":["Wrapper","styled","Flex","IconWrapper","div","theme","colors","primary600","MediaBox","Box","OpaqueBox","FromComputerForm","onClose","onAddAssets","trackedLocation","formatMessage","useIntl","dragOver","setDragOver","React","useState","inputRef","useRef","trackUsage","useTracking","handleDragOver","event","preventDefault","handleDragEnter","handleDragLeave","handleChange","files","current","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","source","location","handleDrop","e","dataTransfer","_jsxs","form","_jsx","paddingLeft","paddingRight","paddingTop","paddingBottom","label","hasRadius","justifyContent","borderColor","background","position","onDragEnter","onDragLeave","onDragOver","onDrop","PicturePlus","aria-hidden","width","height","Typography","variant","textColor","tag","id","getTrad","defaultMessage","left","right","bottom","top","type","multiple","name","aria-label","tabIndex","ref","zIndex","onChange","Modal","Footer","Button","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAMA,OAAAA,GAAUC,uBAAOC,CAAAA,iBAAAA,CAAK;;AAE5B,CAAC;AAED,MAAMC,WAAAA,GAAcF,uBAAOG,CAAAA,GAAG;;;;UAIpB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;AAEnD,CAAC;AAED,MAAMC,QAAAA,GAAWP,uBAAOQ,CAAAA,gBAAAA,CAAI;;AAE5B,CAAC;AAED,MAAMC,SAAAA,GAAYT,uBAAOQ,CAAAA,gBAAAA,CAAI;;;AAG7B,CAAC;AAQM,MAAME,mBAAmB,CAAC,EAC/BC,OAAO,EACPC,WAAW,EACXC,eAAe,EACO,GAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,QAAUC,EAAAA,WAAAA,CAAY,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAC/C,MAAMC,QAAAA,GAAWF,gBAAMG,CAAAA,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AAEvB,IAAA,MAAMC,iBAAiB,CAACC,KAAAA,GAAAA;AACtBA,QAAAA,KAAAA,CAAMC,cAAc,EAAA;AACtB,KAAA;AAEA,IAAA,MAAMC,kBAAkB,CAACF,KAAAA,GAAAA;AACvBA,QAAAA,KAAAA,CAAMC,cAAc,EAAA;QACpBT,WAAY,CAAA,IAAA,CAAA;AACd,KAAA;IAEA,MAAMW,eAAAA,GAAkB,IAAMX,WAAY,CAAA,KAAA,CAAA;AAO1C,IAAA,MAAMY,YAAe,GAAA,IAAA;QACnB,MAAMC,KAAAA,GAAQV,QAASW,CAAAA,OAAO,EAAED,KAAAA;AAChC,QAAA,MAAME,SAA4B,EAAE;AAEpC,QAAA,IAAIF,KAAO,EAAA;AACT,YAAA,IAAK,IAAIG,CAAI,GAAA,CAAA,EAAGA,IAAIH,KAAMI,CAAAA,MAAM,EAAED,CAAK,EAAA,CAAA;gBACrC,MAAME,IAAAA,GAAOL,KAAMM,CAAAA,IAAI,CAACH,CAAAA,CAAAA;AACxB,gBAAA,IAAIE,IAAM,EAAA;AACR,oBAAA,MAAME,KAAQC,GAAAA,6BAAAA,CAAeH,IAAMI,EAAAA,qBAAAA,CAAYC,QAAQ,CAAA;AACvDR,oBAAAA,MAAAA,CAAOS,IAAI,CAACJ,KAAAA,CAAAA;AACd;AACF;AACF;AAEA,QAAA,IAAIxB,eAAiB,EAAA;AACnBS,YAAAA,UAAAA,CAAW,eAAiB,EAAA;gBAAEoB,MAAQ,EAAA,UAAA;gBAAYC,QAAU9B,EAAAA;AAAgB,aAAA,CAAA;AAC9E;QAEAD,WAAYoB,CAAAA,MAAAA,CAAAA;AACd,KAAA;AAEA,IAAA,MAAMY,aAAa,CAACC,CAAAA,GAAAA;AAClBA,QAAAA,CAAAA,CAAEnB,cAAc,EAAA;QAEhB,IAAImB,CAAAA,EAAGC,cAAchB,KAAO,EAAA;AAC1B,YAAA,MAAMA,KAAQe,GAAAA,CAAAA,CAAEC,YAAY,CAAChB,KAAK;AAClC,YAAA,MAAME,SAAS,EAAE;AAEjB,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIH,KAAMI,CAAAA,MAAM,EAAED,CAAK,EAAA,CAAA;gBACrC,MAAME,IAAAA,GAAOL,KAAMM,CAAAA,IAAI,CAACH,CAAAA,CAAAA;AACxB,gBAAA,IAAIE,IAAM,EAAA;AACR,oBAAA,MAAME,KAAQC,GAAAA,6BAAAA,CAAeH,IAAMI,EAAAA,qBAAAA,CAAYC,QAAQ,CAAA;AACvDR,oBAAAA,MAAAA,CAAOS,IAAI,CAACJ,KAAAA,CAAAA;AACd;AACF;YAEAzB,WAAYoB,CAAAA,MAAAA,CAAAA;AACd;QAEAf,WAAY,CAAA,KAAA,CAAA;AACd,KAAA;AAEA,IAAA,qBACE8B,eAACC,CAAAA,MAAAA,EAAAA;;0BACCC,cAACzC,CAAAA,gBAAAA,EAAAA;gBAAI0C,WAAa,EAAA,CAAA;gBAAGC,YAAc,EAAA,CAAA;gBAAGC,UAAY,EAAA,CAAA;gBAAGC,aAAe,EAAA,CAAA;AAClE,gBAAA,QAAA,gBAAAJ,cAACK,CAAAA,OAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAL,cAAC1C,CAAAA,QAAAA,EAAAA;wBACC6C,UAAY,EAAA,EAAA;wBACZC,aAAe,EAAA,EAAA;wBACfE,SAAS,EAAA,IAAA;wBACTC,cAAe,EAAA,QAAA;AACfC,wBAAAA,WAAAA,EAAazC,WAAW,YAAe,GAAA,YAAA;AACvC0C,wBAAAA,UAAAA,EAAY1C,WAAW,YAAe,GAAA,YAAA;wBACtC2C,QAAS,EAAA,UAAA;wBACTC,WAAajC,EAAAA,eAAAA;wBACbkC,WAAajC,EAAAA,eAAAA;wBACbkC,UAAYtC,EAAAA,cAAAA;wBACZuC,MAAQnB,EAAAA,UAAAA;AAER,wBAAA,QAAA,gBAAAK,cAAChD,CAAAA,iBAAAA,EAAAA;4BAAKuD,cAAe,EAAA,QAAA;AACnB,4BAAA,QAAA,gBAAAT,eAAChD,CAAAA,OAAAA,EAAAA;;kDACCkD,cAAC/C,CAAAA,WAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA+C,cAACe,CAAAA,gBAAAA,EAAAA;4CAAYC,aAAW,EAAA,IAAA;4CAACC,KAAM,EAAA,QAAA;4CAASC,MAAO,EAAA;;;kDAGjDlB,cAACzC,CAAAA,gBAAAA,EAAAA;wCAAI4C,UAAY,EAAA,CAAA;wCAAGC,aAAe,EAAA,CAAA;AACjC,wCAAA,QAAA,gBAAAJ,cAACmB,CAAAA,uBAAAA,EAAAA;4CAAWC,OAAQ,EAAA,OAAA;4CAAQC,SAAU,EAAA,YAAA;4CAAaC,GAAI,EAAA,MAAA;sDACpDzD,aAAc,CAAA;AACb0D,gDAAAA,EAAAA,EAAIC,eAAQ,CAAA,aAAA,CAAA;gDACZC,cAAgB,EAAA;AAClB,6CAAA;;;kDAIJzB,cAACxC,CAAAA,SAAAA,EAAAA;wCACC8D,GAAI,EAAA,OAAA;wCACJZ,QAAS,EAAA,UAAA;wCACTgB,IAAM,EAAA,CAAA;wCACNC,KAAO,EAAA,CAAA;wCACPC,MAAQ,EAAA,CAAA;wCACRC,GAAK,EAAA,CAAA;wCACLZ,KAAM,EAAA,MAAA;wCACNa,IAAK,EAAA,MAAA;wCACLC,QAAQ,EAAA,IAAA;wCACRC,IAAK,EAAA,OAAA;AACLC,wCAAAA,YAAAA,EAAYpE,aAAc,CAAA;AACxB0D,4CAAAA,EAAAA,EAAIC,eAAQ,CAAA,aAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA,CAAA;AACAS,wCAAAA,QAAAA,EAAU,CAAC,CAAA;wCACXC,GAAKhE,EAAAA,QAAAA;wCACLiE,MAAQ,EAAA,CAAA;wCACRC,QAAUzD,EAAAA;;;;;;;;AAiBtB,0BAAAoB,cAAA,CAACsC,mBAAMC,MAAM,EAAA;AACX,gBAAA,QAAA,gBAAAvC,cAACwC,CAAAA,mBAAAA,EAAAA;oBAAOC,OAAS/E,EAAAA,OAAAA;oBAAS0D,OAAQ,EAAA,UAAA;8BAC/BvD,aAAc,CAAA;wBACb0D,EAAI,EAAA,8BAAA;wBACJE,cAAgB,EAAA;AAClB,qBAAA;;;;;AAKV;;;;"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useTracking } from '@strapi/admin/strapi-admin';
|
|
4
3
|
import { Flex, Box, Typography, Modal, Button } from '@strapi/design-system';
|
|
5
4
|
import { PlusCircle } from '@strapi/icons';
|
|
6
5
|
import { useIntl } from 'react-intl';
|
|
7
6
|
import { styled } from 'styled-components';
|
|
8
7
|
import { AssetSource } from '../../../constants.mjs';
|
|
8
|
+
import { useTracking } from '../../../hooks/useTracking.mjs';
|
|
9
9
|
import 'byte-size';
|
|
10
10
|
import 'date-fns';
|
|
11
11
|
import { getTrad } from '../../../utils/getTrad.mjs';
|
|
12
12
|
import 'qs';
|
|
13
13
|
import { rawFileToAsset } from '../../../utils/rawFileToAsset.mjs';
|
|
14
|
+
import '../../../utils/typeFromMime.mjs';
|
|
14
15
|
import '../../../utils/urlYupSchema.mjs';
|
|
15
16
|
|
|
16
17
|
const Wrapper = styled(Flex)`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromComputerForm.mjs","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromComputerForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\nconst Wrapper = styled(Flex)`\n flex-direction: column;\n`;\n\nconst IconWrapper = styled.div`\n font-size: 6rem;\n\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nconst MediaBox = styled(Box)`\n border-style: dashed;\n`;\n\nconst OpaqueBox = styled(Box)`\n opacity: 0;\n cursor: pointer;\n`;\n\ninterface FromComputerFormProps {\n onClose: () => void;\n onAddAssets: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromComputerForm = ({\n onClose,\n onAddAssets,\n trackedLocation,\n}: FromComputerFormProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleDragEnter = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => setDragOver(false);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n // inputRef.current?.click();\n };\n\n const handleChange = () => {\n const files = inputRef.current?.files;\n const assets: FileWithRawFile[] = [];\n\n if (files) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n }\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'computer', location: trackedLocation });\n }\n\n onAddAssets(assets);\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n\n onAddAssets(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <label>\n <MediaBox\n paddingTop={11}\n paddingBottom={11}\n hasRadius\n justifyContent=\"center\"\n borderColor={dragOver ? 'primary500' : 'neutral300'}\n background={dragOver ? 'primary100' : 'neutral100'}\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <Flex justifyContent=\"center\">\n <Wrapper>\n <IconWrapper>\n <PicturePlus aria-hidden width=\"3.2rem\" height=\"3.2rem\" />\n </IconWrapper>\n\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n </Typography>\n </Box>\n\n <OpaqueBox\n tag=\"input\"\n position=\"absolute\"\n left={0}\n right={0}\n bottom={0}\n top={0}\n width=\"100%\"\n type=\"file\"\n multiple\n name=\"files\"\n aria-label={formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n tabIndex={-1}\n ref={inputRef}\n zIndex={1}\n onChange={handleChange}\n />\n\n {/* <Box position=\"relative\">\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: getTrad('input.button.label'),\n defaultMessage: 'Browse files',\n })}\n </Button>\n </Box> */}\n </Wrapper>\n </Flex>\n </MediaBox>\n </label>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'cancel',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n"],"names":["Wrapper","styled","Flex","IconWrapper","div","theme","colors","primary600","MediaBox","Box","OpaqueBox","FromComputerForm","onClose","onAddAssets","trackedLocation","formatMessage","useIntl","dragOver","setDragOver","React","useState","inputRef","useRef","trackUsage","useTracking","handleDragOver","event","preventDefault","handleDragEnter","handleDragLeave","handleChange","files","current","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","source","location","handleDrop","e","dataTransfer","_jsxs","form","_jsx","paddingLeft","paddingRight","paddingTop","paddingBottom","label","hasRadius","justifyContent","borderColor","background","position","onDragEnter","onDragLeave","onDragOver","onDrop","PicturePlus","aria-hidden","width","height","Typography","variant","textColor","tag","id","getTrad","defaultMessage","left","right","bottom","top","type","multiple","name","aria-label","tabIndex","ref","zIndex","onChange","Modal","Footer","Button","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FromComputerForm.mjs","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromComputerForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\nconst Wrapper = styled(Flex)`\n flex-direction: column;\n`;\n\nconst IconWrapper = styled.div`\n font-size: 6rem;\n\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nconst MediaBox = styled(Box)`\n border-style: dashed;\n`;\n\nconst OpaqueBox = styled(Box)`\n opacity: 0;\n cursor: pointer;\n`;\n\ninterface FromComputerFormProps {\n onClose: () => void;\n onAddAssets: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromComputerForm = ({\n onClose,\n onAddAssets,\n trackedLocation,\n}: FromComputerFormProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleDragEnter = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => setDragOver(false);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n // inputRef.current?.click();\n };\n\n const handleChange = () => {\n const files = inputRef.current?.files;\n const assets: FileWithRawFile[] = [];\n\n if (files) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n }\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'computer', location: trackedLocation });\n }\n\n onAddAssets(assets);\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n assets.push(asset);\n }\n }\n\n onAddAssets(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <label>\n <MediaBox\n paddingTop={11}\n paddingBottom={11}\n hasRadius\n justifyContent=\"center\"\n borderColor={dragOver ? 'primary500' : 'neutral300'}\n background={dragOver ? 'primary100' : 'neutral100'}\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <Flex justifyContent=\"center\">\n <Wrapper>\n <IconWrapper>\n <PicturePlus aria-hidden width=\"3.2rem\" height=\"3.2rem\" />\n </IconWrapper>\n\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n </Typography>\n </Box>\n\n <OpaqueBox\n tag=\"input\"\n position=\"absolute\"\n left={0}\n right={0}\n bottom={0}\n top={0}\n width=\"100%\"\n type=\"file\"\n multiple\n name=\"files\"\n aria-label={formatMessage({\n id: getTrad('input.label'),\n defaultMessage: 'Drag & Drop here or',\n })}\n tabIndex={-1}\n ref={inputRef}\n zIndex={1}\n onChange={handleChange}\n />\n\n {/* <Box position=\"relative\">\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: getTrad('input.button.label'),\n defaultMessage: 'Browse files',\n })}\n </Button>\n </Box> */}\n </Wrapper>\n </Flex>\n </MediaBox>\n </label>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'cancel',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n"],"names":["Wrapper","styled","Flex","IconWrapper","div","theme","colors","primary600","MediaBox","Box","OpaqueBox","FromComputerForm","onClose","onAddAssets","trackedLocation","formatMessage","useIntl","dragOver","setDragOver","React","useState","inputRef","useRef","trackUsage","useTracking","handleDragOver","event","preventDefault","handleDragEnter","handleDragLeave","handleChange","files","current","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","source","location","handleDrop","e","dataTransfer","_jsxs","form","_jsx","paddingLeft","paddingRight","paddingTop","paddingBottom","label","hasRadius","justifyContent","borderColor","background","position","onDragEnter","onDragLeave","onDragOver","onDrop","PicturePlus","aria-hidden","width","height","Typography","variant","textColor","tag","id","getTrad","defaultMessage","left","right","bottom","top","type","multiple","name","aria-label","tabIndex","ref","zIndex","onChange","Modal","Footer","Button","onClick"],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
5
|
var designSystem = require('@strapi/design-system');
|
|
7
6
|
var formik = require('formik');
|
|
8
7
|
var reactIntl = require('react-intl');
|
|
8
|
+
var useTracking = require('../../../hooks/useTracking.js');
|
|
9
9
|
require('byte-size');
|
|
10
10
|
require('date-fns');
|
|
11
11
|
var getTrad = require('../../../utils/getTrad.js');
|
|
12
12
|
require('qs');
|
|
13
|
-
require('../../../
|
|
13
|
+
require('../../../utils/typeFromMime.js');
|
|
14
14
|
var urlsToAssets = require('../../../utils/urlsToAssets.js');
|
|
15
15
|
var urlYupSchema = require('../../../utils/urlYupSchema.js');
|
|
16
16
|
|
|
@@ -37,7 +37,7 @@ const FromUrlForm = ({ onClose, onAddAsset, trackedLocation })=>{
|
|
|
37
37
|
const [loading, setLoading] = React__namespace.useState(false);
|
|
38
38
|
const [error, setError] = React__namespace.useState(undefined);
|
|
39
39
|
const { formatMessage } = reactIntl.useIntl();
|
|
40
|
-
const { trackUsage } =
|
|
40
|
+
const { trackUsage } = useTracking.useTracking();
|
|
41
41
|
const handleSubmit = async ({ urls })=>{
|
|
42
42
|
setLoading(true);
|
|
43
43
|
const urlArray = urls.split(/\r?\n/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromUrlForm.js","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"FromUrlForm.js","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Field, Modal, Textarea } from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad, urlsToAssets, urlSchema } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\ninterface FromUrlFormProps {\n onClose: () => void;\n onAddAsset: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromUrlForm = ({ onClose, onAddAsset, trackedLocation }: FromUrlFormProps) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | undefined>(undefined);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleSubmit = async ({ urls }: { urls: string }) => {\n setLoading(true);\n const urlArray = urls.split(/\\r?\\n/);\n try {\n const assets: FileWithRawFile[] = await urlsToAssets(urlArray);\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'url', location: trackedLocation });\n }\n\n // no need to set the loading to false since the component unmounts\n onAddAsset(assets);\n } catch (e: unknown) {\n setError(e as Error);\n setLoading(false);\n }\n };\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n urls: '',\n }}\n onSubmit={handleSubmit}\n validationSchema={urlSchema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => (\n <Form noValidate>\n <Box paddingLeft={8} paddingRight={8} paddingBottom={6} paddingTop={6}>\n <Field.Root\n hint={formatMessage({\n id: getTrad('input.url.description'),\n defaultMessage: 'Separate your URL links by a carriage return.',\n })}\n error={\n error?.message ||\n (errors.urls\n ? formatMessage({ id: errors.urls, defaultMessage: 'An error occured' })\n : undefined)\n }\n >\n <Field.Label>\n {formatMessage({ id: getTrad('input.url.label'), defaultMessage: 'URL' })}\n </Field.Label>\n <Textarea name=\"urls\" onChange={handleChange} value={values.urls} />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'cancel' })}\n </Button>\n <Button type=\"submit\" loading={loading}>\n {formatMessage({\n id: getTrad('button.next'),\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n );\n};\n"],"names":["FromUrlForm","onClose","onAddAsset","trackedLocation","loading","setLoading","React","useState","error","setError","undefined","formatMessage","useIntl","trackUsage","useTracking","handleSubmit","urls","urlArray","split","assets","urlsToAssets","source","location","e","_jsx","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","urlSchema","validateOnChange","values","errors","handleChange","_jsxs","Form","noValidate","Box","paddingLeft","paddingRight","paddingBottom","paddingTop","Field","Root","hint","id","getTrad","defaultMessage","message","Label","Textarea","name","onChange","value","Hint","Error","Modal","Footer","Button","onClick","variant","type"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useTracking } from '@strapi/admin/strapi-admin';
|
|
4
3
|
import { Box, Field, Textarea, Modal, Button } from '@strapi/design-system';
|
|
5
4
|
import { Formik, Form } from 'formik';
|
|
6
5
|
import { useIntl } from 'react-intl';
|
|
6
|
+
import { useTracking } from '../../../hooks/useTracking.mjs';
|
|
7
7
|
import 'byte-size';
|
|
8
8
|
import 'date-fns';
|
|
9
9
|
import { getTrad } from '../../../utils/getTrad.mjs';
|
|
10
10
|
import 'qs';
|
|
11
|
-
import '../../../
|
|
11
|
+
import '../../../utils/typeFromMime.mjs';
|
|
12
12
|
import { urlsToAssets } from '../../../utils/urlsToAssets.mjs';
|
|
13
13
|
import { urlSchema } from '../../../utils/urlYupSchema.mjs';
|
|
14
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromUrlForm.mjs","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"FromUrlForm.mjs","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Field, Modal, Textarea } from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad, urlsToAssets, urlSchema } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\ninterface FromUrlFormProps {\n onClose: () => void;\n onAddAsset: (assets: FileWithRawFile[]) => void;\n trackedLocation?: string;\n}\n\nexport const FromUrlForm = ({ onClose, onAddAsset, trackedLocation }: FromUrlFormProps) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | undefined>(undefined);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleSubmit = async ({ urls }: { urls: string }) => {\n setLoading(true);\n const urlArray = urls.split(/\\r?\\n/);\n try {\n const assets: FileWithRawFile[] = await urlsToAssets(urlArray);\n\n if (trackedLocation) {\n trackUsage('didSelectFile', { source: 'url', location: trackedLocation });\n }\n\n // no need to set the loading to false since the component unmounts\n onAddAsset(assets);\n } catch (e: unknown) {\n setError(e as Error);\n setLoading(false);\n }\n };\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n urls: '',\n }}\n onSubmit={handleSubmit}\n validationSchema={urlSchema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => (\n <Form noValidate>\n <Box paddingLeft={8} paddingRight={8} paddingBottom={6} paddingTop={6}>\n <Field.Root\n hint={formatMessage({\n id: getTrad('input.url.description'),\n defaultMessage: 'Separate your URL links by a carriage return.',\n })}\n error={\n error?.message ||\n (errors.urls\n ? formatMessage({ id: errors.urls, defaultMessage: 'An error occured' })\n : undefined)\n }\n >\n <Field.Label>\n {formatMessage({ id: getTrad('input.url.label'), defaultMessage: 'URL' })}\n </Field.Label>\n <Textarea name=\"urls\" onChange={handleChange} value={values.urls} />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n </Box>\n\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'cancel' })}\n </Button>\n <Button type=\"submit\" loading={loading}>\n {formatMessage({\n id: getTrad('button.next'),\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n );\n};\n"],"names":["FromUrlForm","onClose","onAddAsset","trackedLocation","loading","setLoading","React","useState","error","setError","undefined","formatMessage","useIntl","trackUsage","useTracking","handleSubmit","urls","urlArray","split","assets","urlsToAssets","source","location","e","_jsx","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","urlSchema","validateOnChange","values","errors","handleChange","_jsxs","Form","noValidate","Box","paddingLeft","paddingRight","paddingBottom","paddingTop","Field","Root","hint","id","getTrad","defaultMessage","message","Label","Textarea","name","onChange","value","Hint","Error","Modal","Footer","Button","onClick","variant","type"],"mappings":"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"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
5
|
var designSystem = require('@strapi/design-system');
|
|
7
6
|
var reactIntl = require('react-intl');
|
|
7
|
+
var useTracking = require('../../../hooks/useTracking.js');
|
|
8
8
|
require('byte-size');
|
|
9
9
|
require('date-fns');
|
|
10
10
|
var getTrad = require('../../../utils/getTrad.js');
|
|
11
11
|
require('qs');
|
|
12
|
-
require('../../../
|
|
12
|
+
require('../../../utils/typeFromMime.js');
|
|
13
13
|
require('../../../utils/urlYupSchema.js');
|
|
14
14
|
var AssetCard = require('../../AssetCard/AssetCard.js');
|
|
15
15
|
var UploadingAssetCard = require('../../AssetCard/UploadingAssetCard.js');
|
|
@@ -41,7 +41,7 @@ const Status = {
|
|
|
41
41
|
const PendingAssetStep = ({ addUploadedFiles, folderId, onClose, onEditAsset, onRemoveAsset, assets, onClickAddAsset, onCancelUpload, onUploadSucceed, trackedLocation })=>{
|
|
42
42
|
const assetCountRef = React__namespace.useRef(0);
|
|
43
43
|
const { formatMessage } = reactIntl.useIntl();
|
|
44
|
-
const { trackUsage } =
|
|
44
|
+
const { trackUsage } = useTracking.useTracking();
|
|
45
45
|
const [uploadStatus, setUploadStatus] = React__namespace.useState(Status.Idle);
|
|
46
46
|
const handleSubmit = async (e)=>{
|
|
47
47
|
e.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingAssetStep.js","sources":["../../../../../admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Grid, KeyboardNavigable, Modal, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { AssetType } from '../../../constants';\nimport { getTrad } from '../../../utils';\nimport { AssetCard } from '../../AssetCard/AssetCard';\nimport { UploadingAssetCard } from '../../AssetCard/UploadingAssetCard';\n\nimport type { File, RawFile } from '../../../../../shared/contracts/files';\n\nconst Status = {\n Idle: 'IDLE',\n Uploading: 'UPLOADING',\n Intermediate: 'INTERMEDIATE',\n};\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\ninterface PendingAssetStepProps {\n addUploadedFiles?: (files: File[]) => void;\n folderId?: string | number | null;\n onClose: () => void;\n onEditAsset: (asset: File) => void;\n onRemoveAsset: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n assets: Asset[];\n onClickAddAsset: () => void;\n onCancelUpload: (rawFile: RawFile) => void;\n onUploadSucceed: (file: RawFile) => void;\n trackedLocation?: string;\n initialAssetsToAdd?: File[];\n}\n\nexport const PendingAssetStep = ({\n addUploadedFiles,\n folderId,\n onClose,\n onEditAsset,\n onRemoveAsset,\n assets,\n onClickAddAsset,\n onCancelUpload,\n onUploadSucceed,\n trackedLocation,\n}: PendingAssetStepProps) => {\n const assetCountRef = React.useRef(0);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [uploadStatus, setUploadStatus] = React.useState(Status.Idle);\n\n const handleSubmit = async (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const assetsCountByType = assets.reduce(\n (acc: Record<AssetType, string | number>, asset) => {\n const { type } = asset;\n\n if (type !== undefined && !acc[type]) {\n acc[type] = 0;\n }\n\n if (type !== undefined) {\n const accType = acc[type];\n const currentCount = typeof accType === 'string' ? accType : accType.toString();\n acc[type] = `${parseInt(currentCount, 10) + 1}`;\n }\n\n return acc;\n },\n {} as Record<AssetType, string | number>\n );\n\n trackUsage('willAddMediaLibraryAssets', {\n location: trackedLocation!,\n ...assetsCountByType,\n });\n\n setUploadStatus(Status.Uploading);\n };\n\n const handleStatusChange = (status: string, file: RawFile) => {\n if (status === 'success' || status === 'error') {\n assetCountRef.current++;\n\n // There's no \"terminated\" status. When all the files have called their\n // onUploadSucceed callback, the parent component filters the asset list\n // and closes the modal when the asset list is empty\n if (assetCountRef.current === assets.length) {\n assetCountRef.current = 0;\n setUploadStatus(Status.Intermediate);\n }\n }\n\n if (status === 'success') {\n onUploadSucceed(file);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Flex justifyContent=\"space-between\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={0}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('list.assets.to-upload'),\n defaultMessage:\n '{number, plural, =0 {No asset} one {1 asset} other {# assets}} ready to upload',\n },\n { number: assets.length }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header-subtitle'),\n defaultMessage: 'Manage the assets before adding them to the Media Library',\n })}\n </Typography>\n </Flex>\n <Button size=\"S\" onClick={onClickAddAsset}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n <KeyboardNavigable tagName=\"article\">\n <Grid.Root gap={4}>\n {assets.map((asset) => {\n const assetKey = asset.url;\n\n if (uploadStatus === Status.Uploading || uploadStatus === Status.Intermediate) {\n return (\n <Grid.Item col={4} key={assetKey} direction=\"column\" alignItems=\"stretch\">\n <UploadingAssetCard\n // Props used to store the newly uploaded files\n addUploadedFiles={addUploadedFiles!}\n asset={asset}\n id={assetKey}\n onCancel={onCancelUpload}\n onStatusChange={(status) => handleStatusChange(status, asset.rawFile!)}\n size=\"S\"\n folderId={folderId}\n />\n </Grid.Item>\n );\n }\n\n return (\n <Grid.Item col={4} key={assetKey} direction=\"column\" alignItems=\"stretch\">\n <AssetCard\n asset={asset}\n size=\"S\"\n key={assetKey}\n local\n alt={asset.name}\n onEdit={onEditAsset}\n onRemove={onRemoveAsset}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </KeyboardNavigable>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'cancel' })}\n </Button>\n <Button onClick={handleSubmit} loading={uploadStatus === Status.Uploading}>\n {formatMessage(\n {\n id: getTrad('modal.upload-list.footer.button'),\n defaultMessage:\n 'Upload {number, plural, one {# asset} other {# assets}} to the library',\n },\n { number: assets.length }\n )}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n"],"names":["Status","Idle","Uploading","Intermediate","PendingAssetStep","addUploadedFiles","folderId","onClose","onEditAsset","onRemoveAsset","assets","onClickAddAsset","onCancelUpload","onUploadSucceed","trackedLocation","assetCountRef","React","useRef","formatMessage","useIntl","trackUsage","useTracking","uploadStatus","setUploadStatus","useState","handleSubmit","e","preventDefault","stopPropagation","assetsCountByType","reduce","acc","asset","type","undefined","accType","currentCount","toString","parseInt","location","handleStatusChange","status","file","current","length","_jsxs","_Fragment","_jsx","Modal","Header","Title","id","getTrad","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","Typography","variant","fontWeight","textColor","number","Button","size","onClick","KeyboardNavigable","tagName","Grid","Root","map","assetKey","url","Item","col","UploadingAssetCard","onCancel","onStatusChange","rawFile","AssetCard","local","alt","name","onEdit","onRemove","Footer","loading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PendingAssetStep.js","sources":["../../../../../admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Grid, KeyboardNavigable, Modal, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { AssetType } from '../../../enums';\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad } from '../../../utils';\nimport { AssetCard } from '../../AssetCard/AssetCard';\nimport { UploadingAssetCard } from '../../AssetCard/UploadingAssetCard';\n\nimport type { File, RawFile } from '../../../../../shared/contracts/files';\n\nconst Status = {\n Idle: 'IDLE',\n Uploading: 'UPLOADING',\n Intermediate: 'INTERMEDIATE',\n};\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\ninterface PendingAssetStepProps {\n addUploadedFiles?: (files: File[]) => void;\n folderId?: string | number | null;\n onClose: () => void;\n onEditAsset: (asset: File) => void;\n onRemoveAsset: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n assets: Asset[];\n onClickAddAsset: () => void;\n onCancelUpload: (rawFile: RawFile) => void;\n onUploadSucceed: (file: RawFile) => void;\n trackedLocation?: string;\n initialAssetsToAdd?: File[];\n}\n\nexport const PendingAssetStep = ({\n addUploadedFiles,\n folderId,\n onClose,\n onEditAsset,\n onRemoveAsset,\n assets,\n onClickAddAsset,\n onCancelUpload,\n onUploadSucceed,\n trackedLocation,\n}: PendingAssetStepProps) => {\n const assetCountRef = React.useRef(0);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [uploadStatus, setUploadStatus] = React.useState(Status.Idle);\n\n const handleSubmit = async (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const assetsCountByType = assets.reduce(\n (acc: Record<AssetType, string | number>, asset) => {\n const { type } = asset;\n\n if (type !== undefined && !acc[type]) {\n acc[type] = 0;\n }\n\n if (type !== undefined) {\n const accType = acc[type];\n const currentCount = typeof accType === 'string' ? accType : accType.toString();\n acc[type] = `${parseInt(currentCount, 10) + 1}`;\n }\n\n return acc;\n },\n {} as Record<AssetType, string | number>\n );\n\n trackUsage('willAddMediaLibraryAssets', {\n location: trackedLocation!,\n ...assetsCountByType,\n });\n\n setUploadStatus(Status.Uploading);\n };\n\n const handleStatusChange = (status: string, file: RawFile) => {\n if (status === 'success' || status === 'error') {\n assetCountRef.current++;\n\n // There's no \"terminated\" status. When all the files have called their\n // onUploadSucceed callback, the parent component filters the asset list\n // and closes the modal when the asset list is empty\n if (assetCountRef.current === assets.length) {\n assetCountRef.current = 0;\n setUploadStatus(Status.Intermediate);\n }\n }\n\n if (status === 'success') {\n onUploadSucceed(file);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Flex justifyContent=\"space-between\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={0}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('list.assets.to-upload'),\n defaultMessage:\n '{number, plural, =0 {No asset} one {1 asset} other {# assets}} ready to upload',\n },\n { number: assets.length }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header-subtitle'),\n defaultMessage: 'Manage the assets before adding them to the Media Library',\n })}\n </Typography>\n </Flex>\n <Button size=\"S\" onClick={onClickAddAsset}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n <KeyboardNavigable tagName=\"article\">\n <Grid.Root gap={4}>\n {assets.map((asset) => {\n const assetKey = asset.url;\n\n if (uploadStatus === Status.Uploading || uploadStatus === Status.Intermediate) {\n return (\n <Grid.Item col={4} key={assetKey} direction=\"column\" alignItems=\"stretch\">\n <UploadingAssetCard\n // Props used to store the newly uploaded files\n addUploadedFiles={addUploadedFiles!}\n asset={asset}\n id={assetKey}\n onCancel={onCancelUpload}\n onStatusChange={(status) => handleStatusChange(status, asset.rawFile!)}\n size=\"S\"\n folderId={folderId}\n />\n </Grid.Item>\n );\n }\n\n return (\n <Grid.Item col={4} key={assetKey} direction=\"column\" alignItems=\"stretch\">\n <AssetCard\n asset={asset}\n size=\"S\"\n key={assetKey}\n local\n alt={asset.name}\n onEdit={onEditAsset}\n onRemove={onRemoveAsset}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </KeyboardNavigable>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'cancel' })}\n </Button>\n <Button onClick={handleSubmit} loading={uploadStatus === Status.Uploading}>\n {formatMessage(\n {\n id: getTrad('modal.upload-list.footer.button'),\n defaultMessage:\n 'Upload {number, plural, one {# asset} other {# assets}} to the library',\n },\n { number: assets.length }\n )}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n"],"names":["Status","Idle","Uploading","Intermediate","PendingAssetStep","addUploadedFiles","folderId","onClose","onEditAsset","onRemoveAsset","assets","onClickAddAsset","onCancelUpload","onUploadSucceed","trackedLocation","assetCountRef","React","useRef","formatMessage","useIntl","trackUsage","useTracking","uploadStatus","setUploadStatus","useState","handleSubmit","e","preventDefault","stopPropagation","assetsCountByType","reduce","acc","asset","type","undefined","accType","currentCount","toString","parseInt","location","handleStatusChange","status","file","current","length","_jsxs","_Fragment","_jsx","Modal","Header","Title","id","getTrad","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","Typography","variant","fontWeight","textColor","number","Button","size","onClick","KeyboardNavigable","tagName","Grid","Root","map","assetKey","url","Item","col","UploadingAssetCard","onCancel","onStatusChange","rawFile","AssetCard","local","alt","name","onEdit","onRemove","Footer","loading"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useTracking } from '@strapi/admin/strapi-admin';
|
|
4
3
|
import { Modal, Flex, Typography, Button, KeyboardNavigable, Grid } from '@strapi/design-system';
|
|
5
4
|
import { useIntl } from 'react-intl';
|
|
5
|
+
import { useTracking } from '../../../hooks/useTracking.mjs';
|
|
6
6
|
import 'byte-size';
|
|
7
7
|
import 'date-fns';
|
|
8
8
|
import { getTrad } from '../../../utils/getTrad.mjs';
|
|
9
9
|
import 'qs';
|
|
10
|
-
import '../../../
|
|
10
|
+
import '../../../utils/typeFromMime.mjs';
|
|
11
11
|
import '../../../utils/urlYupSchema.mjs';
|
|
12
12
|
import { AssetCard } from '../../AssetCard/AssetCard.mjs';
|
|
13
13
|
import { UploadingAssetCard } from '../../AssetCard/UploadingAssetCard.mjs';
|