@strapi/upload 5.30.0 → 5.31.0
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 +27 -7
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +21 -1
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js +1 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
- 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 +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +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 +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +1 -1
- 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 +3 -2
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +2 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +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 +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +1 -1
- 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/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/useRemoveAsset.js.map +1 -1
- package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js +4 -1
- package/dist/admin/hooks/useTracking.js.map +1 -1
- package/dist/admin/hooks/useTracking.mjs +5 -2
- package/dist/admin/hooks/useTracking.mjs.map +1 -1
- 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 +7 -6
- package/dist/admin/package.json.js.map +1 -1
- package/dist/admin/package.json.mjs +7 -6
- package/dist/admin/package.json.mjs.map +1 -1
- 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 +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +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/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.map +1 -1
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +37 -5
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +37 -5
- 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 +1 -1
- package/dist/server/services/image-manipulation.js.map +1 -1
- package/dist/server/services/image-manipulation.mjs +1 -1
- package/dist/server/services/image-manipulation.mjs.map +1 -1
- package/dist/server/services/metrics.js +4 -1
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs +4 -1
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/services/upload.js.map +1 -1
- package/dist/server/services/upload.mjs.map +1 -1
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/types.d.ts +1 -0
- package/dist/server/src/types.d.ts.map +1 -1
- package/dist/server/src/utils/mime-validation.d.ts +34 -0
- package/dist/server/src/utils/mime-validation.d.ts.map +1 -0
- package/dist/server/utils/cron.js.map +1 -1
- package/dist/server/utils/cron.mjs.map +1 -1
- package/dist/server/utils/mime-validation.js +218 -0
- package/dist/server/utils/mime-validation.js.map +1 -0
- package/dist/server/utils/mime-validation.mjs +211 -0
- package/dist/server/utils/mime-validation.mjs.map +1 -0
- package/package.json +7 -6
|
@@ -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 BulkDeleteButton = require('./BulkDeleteButton.js');
|
|
13
13
|
var BulkMoveButton = require('./BulkMoveButton.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 { BulkDeleteButton } from './BulkDeleteButton.mjs';
|
|
11
11
|
import { BulkMoveButton } from './BulkMoveButton.mjs';
|
|
@@ -10,7 +10,7 @@ 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
|
require('../../../../utils/urlYupSchema.js');
|
|
15
15
|
|
|
16
16
|
const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
|
|
@@ -8,7 +8,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 '../../../../utils/urlYupSchema.mjs';
|
|
13
13
|
|
|
14
14
|
const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
|
|
@@ -13,7 +13,7 @@ var displayedFilters = require('../../../../utils/displayedFilters.js');
|
|
|
13
13
|
require('byte-size');
|
|
14
14
|
require('date-fns');
|
|
15
15
|
require('qs');
|
|
16
|
-
require('../../../../
|
|
16
|
+
require('../../../../utils/typeFromMime.js');
|
|
17
17
|
require('../../../../utils/urlYupSchema.js');
|
|
18
18
|
|
|
19
19
|
function _interopNamespaceDefault(e) {
|
|
@@ -11,7 +11,7 @@ import { displayedFilters } from '../../../../utils/displayedFilters.mjs';
|
|
|
11
11
|
import 'byte-size';
|
|
12
12
|
import 'date-fns';
|
|
13
13
|
import 'qs';
|
|
14
|
-
import '../../../../
|
|
14
|
+
import '../../../../utils/typeFromMime.mjs';
|
|
15
15
|
import '../../../../utils/urlYupSchema.mjs';
|
|
16
16
|
|
|
17
17
|
const Filters = ()=>{
|
|
@@ -11,7 +11,7 @@ var Breadcrumbs = require('../../../../components/Breadcrumbs/Breadcrumbs.js');
|
|
|
11
11
|
require('byte-size');
|
|
12
12
|
require('date-fns');
|
|
13
13
|
var getTrad = require('../../../../utils/getTrad.js');
|
|
14
|
-
require('../../../../
|
|
14
|
+
require('../../../../utils/typeFromMime.js');
|
|
15
15
|
require('../../../../utils/urlYupSchema.js');
|
|
16
16
|
|
|
17
17
|
const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,cAAA,CAACC,oBAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,eAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,cAACM,CAAAA,uBAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,cAACU,CAAAA,iBAAAA,EAAAA;YACCC,GAAKC,EAAAA,sBAAAA;AACLC,YAAAA,SAAAA,gBAAWb,cAACc,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,cAAA,CAACC,oBAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,eAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,cAACM,CAAAA,uBAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,cAACU,CAAAA,iBAAAA,EAAAA;YACCC,GAAKC,EAAAA,sBAAAA;AACLC,YAAAA,SAAAA,gBAAWb,cAACc,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAGzB,EAAAA,QAAAA,CAAS,CAAC,EAAE0B,aAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;aAAU,CAAA,CAAA,CAAA;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
|
|
@@ -9,7 +9,7 @@ import { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs.mjs'
|
|
|
9
9
|
import 'byte-size';
|
|
10
10
|
import 'date-fns';
|
|
11
11
|
import { getTrad } from '../../../../utils/getTrad.mjs';
|
|
12
|
-
import '../../../../
|
|
12
|
+
import '../../../../utils/typeFromMime.mjs';
|
|
13
13
|
import '../../../../utils/urlYupSchema.mjs';
|
|
14
14
|
|
|
15
15
|
const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,GAAA,CAACC,QAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,GAACM,CAAAA,WAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,GAACU,CAAAA,IAAAA,EAAAA;YACCC,GAAKC,EAAAA,OAAAA;AACLC,YAAAA,SAAAA,gBAAWb,GAACc,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,
|
|
1
|
+
{"version":3,"file":"Header.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,GAAA,CAACC,QAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,GAACM,CAAAA,WAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,GAACU,CAAAA,IAAAA,EAAAA;YACCC,GAAKC,EAAAA,OAAAA;AACLC,YAAAA,SAAAA,gBAAWb,GAACc,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAGzB,EAAAA,QAAAA,CAAS,CAAC,EAAE0B,UAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;aAAU,CAAA,CAAA,CAAA;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,IAACC,CAAAA,IAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
|
|
@@ -15,6 +15,7 @@ require('byte-size');
|
|
|
15
15
|
require('date-fns');
|
|
16
16
|
var getTrad = require('../../utils/getTrad.js');
|
|
17
17
|
require('qs');
|
|
18
|
+
require('../../utils/typeFromMime.js');
|
|
18
19
|
require('../../utils/urlYupSchema.js');
|
|
19
20
|
var init = require('./init.js');
|
|
20
21
|
var reducer = require('./reducer.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import 'byte-size';
|
|
|
13
13
|
import 'date-fns';
|
|
14
14
|
import { getTrad } from '../../utils/getTrad.mjs';
|
|
15
15
|
import 'qs';
|
|
16
|
+
import '../../utils/typeFromMime.mjs';
|
|
16
17
|
import '../../utils/urlYupSchema.mjs';
|
|
17
18
|
import { init } from './init.mjs';
|
|
18
19
|
import { reducer, initialState } from './reducer.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage.mjs","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage.mjs","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
import { DefaultTheme } from 'styled-components';
|
|
3
|
+
interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {
|
|
4
|
+
/**
|
|
5
|
+
* @default "currentColor"
|
|
6
|
+
*/
|
|
7
|
+
fill?: keyof DefaultTheme['colors'] | string;
|
|
8
|
+
stroke?: keyof DefaultTheme['colors'] | string;
|
|
9
|
+
}
|
|
10
|
+
type IconComponent = React.FC<IconProps>;
|
|
11
|
+
export declare const FILE_TYPE_ICON_COMPONENT_MAP: Record<string, IconComponent>;
|
|
12
|
+
export declare const DEFAULT_FILE_ICON: IconComponent;
|
|
13
|
+
export declare const getFileIconComponent: (docType?: string) => IconComponent;
|
|
14
|
+
export {};
|
|
@@ -5,7 +5,7 @@ export declare const rawFileToAsset: (rawFile: RawFile, assetSource: AssetSource
|
|
|
5
5
|
createdAt: string;
|
|
6
6
|
name: string;
|
|
7
7
|
source: AssetSource;
|
|
8
|
-
type: import("../
|
|
8
|
+
type: import("../enums").AssetType | import("../enums").DocType;
|
|
9
9
|
url: string;
|
|
10
10
|
ext: string | undefined;
|
|
11
11
|
mime: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AssetType } from '../
|
|
2
|
-
export declare const typeFromMime: (mime: string) => AssetType;
|
|
1
|
+
import { AssetType, DocType } from '../enums';
|
|
2
|
+
export declare const typeFromMime: (mime: string) => AssetType | DocType;
|
|
@@ -2,7 +2,7 @@ import { AssetSource } from '../constants';
|
|
|
2
2
|
export declare const urlsToAssets: (urls: string[]) => Promise<{
|
|
3
3
|
source: AssetSource;
|
|
4
4
|
name: string;
|
|
5
|
-
type: import("../
|
|
5
|
+
type: import("../enums").AssetType | import("../enums").DocType;
|
|
6
6
|
url: string;
|
|
7
7
|
ext: string | undefined;
|
|
8
8
|
mime: string | undefined;
|