@strapi/content-manager 5.61.1 → 5.62.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/components/ConfigurationForm/Fields.js +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +3 -3
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/features/I18nSharedFieldsLock.js +54 -0
- package/dist/admin/features/I18nSharedFieldsLock.js.map +1 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs +31 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs.map +1 -0
- package/dist/admin/history/components/VersionInputRenderer.js +7 -2
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.mjs +7 -3
- package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.js +27 -8
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.mjs +29 -10
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
- package/dist/admin/hooks/useDocument.js +11 -13
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +11 -13
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/useI18nFieldLock.js +169 -0
- package/dist/admin/hooks/useI18nFieldLock.js.map +1 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs +140 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.js +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.mjs +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
- package/dist/admin/index.js +5 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/modules/app.js +8 -1
- package/dist/admin/modules/app.js.map +1 -1
- package/dist/admin/modules/app.mjs +8 -2
- package/dist/admin/modules/app.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +129 -127
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +129 -127
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +11 -4
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +12 -5
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +31 -21
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +32 -22
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js +98 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs +96 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js +1103 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs +1077 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js +211 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs +183 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js +84 -41
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs +86 -43
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +86 -20
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +89 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +142 -22
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +143 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js +402 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs +389 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +84 -33
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +85 -34
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +17 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +12 -10
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +14 -9
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +14 -9
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.js +34 -0
- package/dist/admin/pages/EditView/utils/forms.js.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.mjs +34 -1
- package/dist/admin/pages/EditView/utils/forms.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +11 -2
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +13 -4
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +15 -5
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +16 -7
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +18 -8
- package/dist/admin/preview/components/InputPopover.js.map +1 -1
- package/dist/admin/preview/components/InputPopover.mjs +19 -9
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +5 -16
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +5 -16
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.js +2 -0
- package/dist/admin/preview/utils/fieldUtils.js.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.mjs +2 -1
- package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -1
- package/dist/admin/services/api.js +2 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +2 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +21 -1
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +21 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/relations.js +47 -1
- package/dist/admin/services/relations.js.map +1 -1
- package/dist/admin/services/relations.mjs +47 -2
- package/dist/admin/services/relations.mjs.map +1 -1
- package/dist/admin/src/exports.d.ts +2 -0
- package/dist/admin/src/features/I18nSharedFieldsLock.d.ts +22 -0
- package/dist/admin/src/history/components/VersionInputRenderer.d.ts +7 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useI18nFieldLock.d.ts +61 -0
- package/dist/admin/src/modules/app.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/AddComponentMenu.d.ts +15 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/ComponentCopyModal.d.ts +58 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/CopiedComponents.d.ts +41 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Initializer.d.ts +7 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/utils/componentCopy.d.ts +115 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +6 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +5 -1
- package/dist/admin/src/pages/EditView/utils/forms.d.ts +13 -2
- package/dist/admin/src/pages/ListView/components/Filters.d.ts +12 -3
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/preview/utils/fieldUtils.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +25 -21
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +5 -3
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/translations/en.json.js +41 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +41 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/controllers/relations.js +4 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +4 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/utils/metadata.js +3 -1
- package/dist/server/controllers/utils/metadata.js.map +1 -1
- package/dist/server/controllers/utils/metadata.mjs +3 -1
- package/dist/server/controllers/utils/metadata.mjs.map +1 -1
- package/dist/server/history/services/utils.js +3 -1
- package/dist/server/history/services/utils.js.map +1 -1
- package/dist/server/history/services/utils.mjs +3 -1
- package/dist/server/history/services/utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.js +14 -0
- package/dist/server/homepage/services/homepage-query-utils.js.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs +14 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +1 -1
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +2 -2
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.js +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.mjs +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.js +2 -1
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.mjs +2 -1
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
- package/dist/server/services/document-manager.js +3 -2
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +3 -2
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +92 -4
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +92 -4
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/permission-checker.js +20 -8
- package/dist/server/services/permission-checker.js.map +1 -1
- package/dist/server/services/permission-checker.mjs +20 -8
- package/dist/server/services/permission-checker.mjs.map +1 -1
- package/dist/server/services/uid.js +2 -1
- package/dist/server/services/uid.js.map +1 -1
- package/dist/server/services/uid.mjs +2 -1
- package/dist/server/services/uid.mjs.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts +6 -0
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +21 -7
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -1
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +5 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +21 -7
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts +6 -5
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/uid.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +7 -0
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/single-types.d.ts +4 -0
- package/dist/shared/contracts/single-types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePersistentQueryParams.mjs","sources":["../../../admin/src/hooks/usePersistentQueryParams.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport {\n deepEncodeQueryValues,\n usePersistentStateScope,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\ntype PropertyPath = Parameters<typeof get>[1];\n\ninterface PersistentQueryConfigEntry {\n paths: PropertyPath[];\n scoped?: boolean;\n}\n\nconst filterObjectKeys = (obj: object, keys: PropertyPath[]) => {\n const result: Record<string, unknown> = {};\n\n for (const path of keys) {\n const value = get(obj, path);\n\n if (value !== undefined) {\n set(result, path, value);\n }\n }\n\n return result;\n};\n\nexport type PersistentQueryConfig = Record<string, PersistentQueryConfigEntry>;\n\nconst normalizeConfigEntry = (\n key: string,\n entry: PersistentQueryConfigEntry,\n scope: string | false | undefined\n) => {\n const { paths } = entry;\n const isScoped = entry.scoped === true && !!scope;\n\n return {\n key: isScoped ? `${key}:${scope}` : key,\n paths,\n };\n};\n\nexport const usePersistentPartialQueryParams = (config: PersistentQueryConfig) => {\n const scope = usePersistentStateScope();\n const [{ query }
|
|
1
|
+
{"version":3,"file":"usePersistentQueryParams.mjs","sources":["../../../admin/src/hooks/usePersistentQueryParams.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport {\n deepEncodeQueryValues,\n usePersistentStateScope,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport { stringify } from 'qs';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\ntype PropertyPath = Parameters<typeof get>[1];\n\ninterface PersistentQueryConfigEntry {\n paths: PropertyPath[];\n scoped?: boolean;\n}\n\nconst filterObjectKeys = (obj: object, keys: PropertyPath[]) => {\n const result: Record<string, unknown> = {};\n\n for (const path of keys) {\n const value = get(obj, path);\n\n if (value !== undefined) {\n set(result, path, value);\n }\n }\n\n return result;\n};\n\nexport type PersistentQueryConfig = Record<string, PersistentQueryConfigEntry>;\n\nconst normalizeConfigEntry = (\n key: string,\n entry: PersistentQueryConfigEntry,\n scope: string | false | undefined\n) => {\n const { paths } = entry;\n const isScoped = entry.scoped === true && !!scope;\n\n return {\n key: isScoped ? `${key}:${scope}` : key,\n paths,\n };\n};\n\nexport const usePersistentPartialQueryParams = (config: PersistentQueryConfig) => {\n const scope = usePersistentStateScope();\n const [{ query }] = useQueryParams();\n const location = useLocation();\n const navigate = useNavigate();\n const clonedConfig = JSON.stringify(config);\n const [isHydrated, setIsHydrated] = useState(false);\n\n // load query params from local storge\n useEffect(() => {\n const mergedFilteredQuery: Record<string, unknown> = {};\n\n for (const [keyPrefix, entry] of Object.entries(config)) {\n const { key, paths } = normalizeConfigEntry(keyPrefix, entry, scope);\n\n const savedQueryParams = window.localStorage.getItem(key);\n if (!savedQueryParams) continue;\n\n let parsedSavedParams: Record<string, unknown>;\n try {\n parsedSavedParams = JSON.parse(savedQueryParams);\n } catch {\n continue;\n }\n if (Object.keys(parsedSavedParams).length === 0) continue;\n\n const filteredQuery = filterObjectKeys(parsedSavedParams, paths);\n Object.assign(mergedFilteredQuery, filteredQuery);\n }\n\n if (Object.keys(mergedFilteredQuery).length > 0) {\n const nextQuery: Record<string, unknown> = { ...mergedFilteredQuery, ...query };\n\n if (nextQuery.filters !== undefined) {\n // The URL is written without encoding, as `setQuery` does everywhere, and that cannot change without breaking changes.\n // This ensures that, when reading the persisted values and writing them in the URI, they are encoded properly.\n // We are only encoding the filters because we know they can hold values with special characters. We didn't bother\n // with the other query params because as of today, they are not expected to hold such values.\n nextQuery.filters = deepEncodeQueryValues(nextQuery.filters);\n }\n\n // What `setQuery(nextQuery, 'push', true)` does, but keeping the history entry's state: a page\n // opened with state (e.g. `forceValidation` from Content Releases) must still find it there.\n navigate(\n { search: stringify(nextQuery, { encode: false }) },\n { replace: true, state: location.state }\n );\n }\n setIsHydrated(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clonedConfig, scope]);\n\n // update local storage\n useEffect(() => {\n for (const [keyPrefix, entry] of Object.entries(config)) {\n const { key, paths } = normalizeConfigEntry(keyPrefix, entry, scope);\n\n const paramsToPersist = filterObjectKeys(query, paths);\n if (Object.keys(paramsToPersist).length === 0) {\n window.localStorage.removeItem(key);\n continue;\n }\n\n window.localStorage.setItem(key, JSON.stringify(paramsToPersist));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query, clonedConfig, scope]);\n\n return { isHydrated };\n};\n"],"names":["filterObjectKeys","obj","keys","result","path","value","get","undefined","set","normalizeConfigEntry","key","entry","scope","paths","isScoped","scoped","usePersistentPartialQueryParams","config","usePersistentStateScope","query","useQueryParams","location","useLocation","navigate","useNavigate","clonedConfig","JSON","stringify","isHydrated","setIsHydrated","useState","useEffect","mergedFilteredQuery","keyPrefix","Object","entries","savedQueryParams","window","localStorage","getItem","parsedSavedParams","parse","length","filteredQuery","assign","nextQuery","filters","deepEncodeQueryValues","search","encode","replace","state","paramsToPersist","removeItem","setItem"],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -15,9 +15,11 @@ var api = require('./utils/api.js');
|
|
|
15
15
|
var RelativeTime = require('./components/RelativeTime.js');
|
|
16
16
|
var DocumentStatus = require('./pages/EditView/components/DocumentStatus.js');
|
|
17
17
|
var useDocument = require('./hooks/useDocument.js');
|
|
18
|
+
var useI18nFieldLock = require('./hooks/useI18nFieldLock.js');
|
|
18
19
|
var useDocumentActions = require('./hooks/useDocumentActions.js');
|
|
19
20
|
var useDocumentLayout = require('./hooks/useDocumentLayout.js');
|
|
20
21
|
var DocumentRBAC = require('./features/DocumentRBAC.js');
|
|
22
|
+
var I18nSharedFieldsLock = require('./features/I18nSharedFieldsLock.js');
|
|
21
23
|
|
|
22
24
|
function __variableDynamicImportRuntime4__(path) {
|
|
23
25
|
switch (path) {
|
|
@@ -195,9 +197,12 @@ exports.RelativeTime = RelativeTime.RelativeTime;
|
|
|
195
197
|
exports.DocumentStatus = DocumentStatus.DocumentStatus;
|
|
196
198
|
exports.unstable_useContentManagerContext = useDocument.useContentManagerContext;
|
|
197
199
|
exports.unstable_useDocument = useDocument.useDocument;
|
|
200
|
+
exports.unstable_isSharedI18nAttribute = useI18nFieldLock.isSharedI18nAttribute;
|
|
201
|
+
exports.unstable_useHasDefaultLocaleEntry = useI18nFieldLock.useHasDefaultLocaleEntry;
|
|
198
202
|
exports.unstable_useDocumentActions = useDocumentActions.useDocumentActions;
|
|
199
203
|
exports.unstable_useDocumentLayout = useDocumentLayout.useDocumentLayout;
|
|
200
204
|
exports.DocumentRBAC = DocumentRBAC.DocumentRBAC;
|
|
201
205
|
exports.useDocumentRBAC = DocumentRBAC.useDocumentRBAC;
|
|
206
|
+
exports.unstable_useI18nSharedFieldsLock = I18nSharedFieldsLock.useI18nSharedFieldsLock;
|
|
202
207
|
exports.default = index;
|
|
203
208
|
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["// NOTE: preload before content-manager so Blocks code-editor prism language plugins see global Prism.\nimport 'prismjs';\n\nimport { CheckCircle, Feather, Pencil, PuzzlePiece } from '@strapi/icons';\n\nimport { PLUGIN_ID } from './constants/plugin';\nimport { ContentManagerPlugin } from './content-manager';\nimport { historyAdmin } from './history';\nimport { reducer } from './modules/reducers';\nimport { previewAdmin } from './preview';\nimport { routes } from './router';\nimport { prefixPluginTranslations } from './utils/translations';\n\nimport type { StrapiApp, WidgetArgs } from '@strapi/admin/strapi-admin';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n const cm = new ContentManagerPlugin();\n\n app.addReducers({\n [PLUGIN_ID]: reducer,\n });\n\n app.addMenuLink({\n to: PLUGIN_ID,\n icon: Feather,\n intlLabel: {\n id: `content-manager.plugin.name`,\n defaultMessage: 'Content Manager',\n },\n permissions: [],\n position: 1,\n });\n\n app.router.addRoute({\n path: 'content-manager/*',\n lazy: async () => {\n const { Layout } = await import('./layout');\n\n return {\n Component: Layout,\n };\n },\n children: routes,\n });\n\n app.registerPlugin(cm.config);\n\n app.widgets.register((widgets: WidgetArgs[]) => {\n const lastEditedWidget: WidgetArgs = {\n icon: Pencil,\n title: {\n id: `${PLUGIN_ID}.widget.last-edited.title`,\n defaultMessage: 'Last edited entries',\n },\n component: async () => {\n const { LastEditedWidget } = await import('./components/Widgets');\n return LastEditedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-edited-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const lastPublishedWidget: WidgetArgs = {\n icon: CheckCircle,\n title: {\n id: `${PLUGIN_ID}.widget.last-published.title`,\n defaultMessage: 'Last published entries',\n },\n component: async () => {\n const { LastPublishedWidget } = await import('./components/Widgets');\n return LastPublishedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-published-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const entriesWidget: WidgetArgs = {\n icon: PuzzlePiece,\n title: {\n id: `${PLUGIN_ID}.widget.chart-entries.title`,\n defaultMessage: 'Entries',\n },\n component: async () => {\n const { ChartEntriesWidget } = await import('./components/Widgets');\n return ChartEntriesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'chart-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n\n const profileInfoIndex = widgets.findIndex(\n (widget) => widget.id === 'profile-info' && widget.pluginId === 'admin'\n );\n\n // Insert chart-entries after the profile-info widget\n if (profileInfoIndex !== -1) {\n const newWidgets: WidgetArgs[] = [...widgets];\n newWidgets.splice(profileInfoIndex + 1, 0, entriesWidget);\n return [lastEditedWidget, lastPublishedWidget, ...newWidgets];\n }\n\n // Fallback: add to the end if the target widget aren't found\n return [lastEditedWidget, lastPublishedWidget, ...widgets, entriesWidget];\n });\n },\n bootstrap(app: StrapiApp) {\n if (typeof historyAdmin.bootstrap === 'function') {\n historyAdmin.bootstrap(app);\n }\n if (typeof previewAdmin.bootstrap === 'function') {\n previewAdmin.bootstrap(app);\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, PLUGIN_ID),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\nexport * from './exports';\n"],"names":["register","app","cm","ContentManagerPlugin","addReducers","PLUGIN_ID","reducer","addMenuLink","to","icon","Feather","intlLabel","id","defaultMessage","permissions","position","router","addRoute","path","lazy","Layout","Component","children","routes","registerPlugin","config","widgets","lastEditedWidget","Pencil","title","component","LastEditedWidget","pluginId","action","lastPublishedWidget","CheckCircle","LastPublishedWidget","entriesWidget","PuzzlePiece","ChartEntriesWidget","profileInfoIndex","findIndex","widget","newWidgets","splice","bootstrap","historyAdmin","previewAdmin","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["// NOTE: preload before content-manager so Blocks code-editor prism language plugins see global Prism.\nimport 'prismjs';\n\nimport { CheckCircle, Feather, Pencil, PuzzlePiece } from '@strapi/icons';\n\nimport { PLUGIN_ID } from './constants/plugin';\nimport { ContentManagerPlugin } from './content-manager';\nimport { historyAdmin } from './history';\nimport { reducer } from './modules/reducers';\nimport { previewAdmin } from './preview';\nimport { routes } from './router';\nimport { prefixPluginTranslations } from './utils/translations';\n\nimport type { StrapiApp, WidgetArgs } from '@strapi/admin/strapi-admin';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n const cm = new ContentManagerPlugin();\n\n app.addReducers({\n [PLUGIN_ID]: reducer,\n });\n\n app.addMenuLink({\n to: PLUGIN_ID,\n icon: Feather,\n intlLabel: {\n id: `content-manager.plugin.name`,\n defaultMessage: 'Content Manager',\n },\n permissions: [],\n position: 1,\n });\n\n app.router.addRoute({\n path: 'content-manager/*',\n lazy: async () => {\n const { Layout } = await import('./layout');\n\n return {\n Component: Layout,\n };\n },\n children: routes,\n });\n\n app.registerPlugin(cm.config);\n\n app.widgets.register((widgets: WidgetArgs[]) => {\n const lastEditedWidget: WidgetArgs = {\n icon: Pencil,\n title: {\n id: `${PLUGIN_ID}.widget.last-edited.title`,\n defaultMessage: 'Last edited entries',\n },\n component: async () => {\n const { LastEditedWidget } = await import('./components/Widgets');\n return LastEditedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-edited-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const lastPublishedWidget: WidgetArgs = {\n icon: CheckCircle,\n title: {\n id: `${PLUGIN_ID}.widget.last-published.title`,\n defaultMessage: 'Last published entries',\n },\n component: async () => {\n const { LastPublishedWidget } = await import('./components/Widgets');\n return LastPublishedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-published-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const entriesWidget: WidgetArgs = {\n icon: PuzzlePiece,\n title: {\n id: `${PLUGIN_ID}.widget.chart-entries.title`,\n defaultMessage: 'Entries',\n },\n component: async () => {\n const { ChartEntriesWidget } = await import('./components/Widgets');\n return ChartEntriesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'chart-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n\n const profileInfoIndex = widgets.findIndex(\n (widget) => widget.id === 'profile-info' && widget.pluginId === 'admin'\n );\n\n // Insert chart-entries after the profile-info widget\n if (profileInfoIndex !== -1) {\n const newWidgets: WidgetArgs[] = [...widgets];\n newWidgets.splice(profileInfoIndex + 1, 0, entriesWidget);\n return [lastEditedWidget, lastPublishedWidget, ...newWidgets];\n }\n\n // Fallback: add to the end if the target widget aren't found\n return [lastEditedWidget, lastPublishedWidget, ...widgets, entriesWidget];\n });\n },\n bootstrap(app: StrapiApp) {\n if (typeof historyAdmin.bootstrap === 'function') {\n historyAdmin.bootstrap(app);\n }\n if (typeof previewAdmin.bootstrap === 'function') {\n previewAdmin.bootstrap(app);\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, PLUGIN_ID),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\nexport * from './exports';\n"],"names":["register","app","cm","ContentManagerPlugin","addReducers","PLUGIN_ID","reducer","addMenuLink","to","icon","Feather","intlLabel","id","defaultMessage","permissions","position","router","addRoute","path","lazy","Layout","Component","children","routes","registerPlugin","config","widgets","lastEditedWidget","Pencil","title","component","LastEditedWidget","pluginId","action","lastPublishedWidget","CheckCircle","LastPublishedWidget","entriesWidget","PuzzlePiece","ChartEntriesWidget","profileInfoIndex","findIndex","widget","newWidgets","splice","bootstrap","historyAdmin","previewAdmin","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;AACA,YAAe;AACbA,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrB,QAAA,MAAMC,KAAK,IAAIC,mCAAAA,EAAAA;AAEfF,QAAAA,GAAAA,CAAIG,WAAW,CAAC;AACd,YAAA,CAACC,mBAAYC;AACf,SAAA,CAAA;AAEAL,QAAAA,GAAAA,CAAIM,WAAW,CAAC;YACdC,EAAAA,EAAIH,gBAAAA;YACJI,IAAAA,EAAMC,aAAAA;YACNC,SAAAA,EAAW;gBACTC,EAAAA,EAAI,CAAC,2BAA2B,CAAC;gBACjCC,cAAAA,EAAgB;AAClB,aAAA;AACAC,YAAAA,WAAAA,EAAa,EAAE;YACfC,QAAAA,EAAU;AACZ,SAAA,CAAA;QAEAd,GAAAA,CAAIe,MAAM,CAACC,QAAQ,CAAC;YAClBC,IAAAA,EAAM,mBAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,MAAM,EAAE,GAAG,MAAM,oDAAO,aAAA,KAAA;gBAEhC,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA,CAAA;YACAE,QAAAA,EAAUC;AACZ,SAAA,CAAA;QAEAtB,GAAAA,CAAIuB,cAAc,CAACtB,EAAAA,CAAGuB,MAAM,CAAA;AAE5BxB,QAAAA,GAAAA,CAAIyB,OAAO,CAAC1B,QAAQ,CAAC,CAAC0B,OAAAA,GAAAA;AACpB,YAAA,MAAMC,gBAAAA,GAA+B;gBACnClB,IAAAA,EAAMmB,YAAAA;gBACNC,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,gBAAAA,CAAU,yBAAyB,CAAC;oBAC3CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;oBAC1C,OAAOA,gBAAAA;AACT,gBAAA,CAAA;gBACAC,QAAAA,EAAU3B,gBAAAA;gBACVO,EAAAA,EAAI,qBAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AACA,YAAA,MAAMC,mBAAAA,GAAkC;gBACtCzB,IAAAA,EAAM0B,iBAAAA;gBACNN,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,gBAAAA,CAAU,4BAA4B,CAAC;oBAC9CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAEM,mBAAmB,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;oBAC7C,OAAOA,mBAAAA;AACT,gBAAA,CAAA;gBACAJ,QAAAA,EAAU3B,gBAAAA;gBACVO,EAAAA,EAAI,wBAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AACA,YAAA,MAAMI,aAAAA,GAA4B;gBAChC5B,IAAAA,EAAM6B,iBAAAA;gBACNT,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,gBAAAA,CAAU,2BAA2B,CAAC;oBAC7CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAES,kBAAkB,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;oBAC5C,OAAOA,kBAAAA;AACT,gBAAA,CAAA;gBACAP,QAAAA,EAAU3B,gBAAAA;gBACVO,EAAAA,EAAI,eAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AAEA,YAAA,MAAMO,gBAAAA,GAAmBd,OAAAA,CAAQe,SAAS,CACxC,CAACC,MAAAA,GAAWA,MAAAA,CAAO9B,EAAE,KAAK,cAAA,IAAkB8B,MAAAA,CAAOV,QAAQ,KAAK,OAAA,CAAA;;YAIlE,IAAIQ,gBAAAA,KAAqB,EAAC,EAAG;AAC3B,gBAAA,MAAMG,UAAAA,GAA2B;AAAIjB,oBAAAA,GAAAA;AAAQ,iBAAA;AAC7CiB,gBAAAA,UAAAA,CAAWC,MAAM,CAACJ,gBAAAA,GAAmB,CAAA,EAAG,CAAA,EAAGH,aAAAA,CAAAA;gBAC3C,OAAO;AAACV,oBAAAA,gBAAAA;AAAkBO,oBAAAA,mBAAAA;AAAwBS,oBAAAA,GAAAA;AAAW,iBAAA;AAC/D,YAAA;;YAGA,OAAO;AAAChB,gBAAAA,gBAAAA;AAAkBO,gBAAAA,mBAAAA;AAAwBR,gBAAAA,GAAAA,OAAAA;AAASW,gBAAAA;AAAc,aAAA;AAC3E,QAAA,CAAA,CAAA;AACF,IAAA,CAAA;AACAQ,IAAAA,SAAAA,CAAAA,CAAU5C,GAAc,EAAA;AACtB,QAAA,IAAI,OAAO6C,oBAAAA,CAAaD,SAAS,KAAK,UAAA,EAAY;AAChDC,YAAAA,oBAAAA,CAAaD,SAAS,CAAC5C,GAAAA,CAAAA;AACzB,QAAA;AACA,QAAA,IAAI,OAAO8C,oBAAAA,CAAaF,SAAS,KAAK,UAAA,EAAY;AAChDE,YAAAA,oBAAAA,CAAaF,SAAS,CAAC5C,GAAAA,CAAAA;AACzB,QAAA;AACF,IAAA,CAAA;IACA,MAAM+C,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,sCAAyBD,IAAAA,EAAMpD,gBAAAA,CAAAA;AACrCiD,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB,IAAA;AACF,CAAA;;;;;;;;;;;;;;;;"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -11,9 +11,11 @@ export { buildValidParams } from './utils/api.mjs';
|
|
|
11
11
|
export { RelativeTime } from './components/RelativeTime.mjs';
|
|
12
12
|
export { DocumentStatus } from './pages/EditView/components/DocumentStatus.mjs';
|
|
13
13
|
export { useContentManagerContext as unstable_useContentManagerContext, useDocument as unstable_useDocument } from './hooks/useDocument.mjs';
|
|
14
|
+
export { isSharedI18nAttribute as unstable_isSharedI18nAttribute, useHasDefaultLocaleEntry as unstable_useHasDefaultLocaleEntry } from './hooks/useI18nFieldLock.mjs';
|
|
14
15
|
export { useDocumentActions as unstable_useDocumentActions } from './hooks/useDocumentActions.mjs';
|
|
15
16
|
export { useDocumentLayout as unstable_useDocumentLayout } from './hooks/useDocumentLayout.mjs';
|
|
16
17
|
export { DocumentRBAC, useDocumentRBAC } from './features/DocumentRBAC.mjs';
|
|
18
|
+
export { useI18nSharedFieldsLock as unstable_useI18nSharedFieldsLock } from './features/I18nSharedFieldsLock.mjs';
|
|
17
19
|
|
|
18
20
|
function __variableDynamicImportRuntime4__(path) {
|
|
19
21
|
switch (path) {
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["// NOTE: preload before content-manager so Blocks code-editor prism language plugins see global Prism.\nimport 'prismjs';\n\nimport { CheckCircle, Feather, Pencil, PuzzlePiece } from '@strapi/icons';\n\nimport { PLUGIN_ID } from './constants/plugin';\nimport { ContentManagerPlugin } from './content-manager';\nimport { historyAdmin } from './history';\nimport { reducer } from './modules/reducers';\nimport { previewAdmin } from './preview';\nimport { routes } from './router';\nimport { prefixPluginTranslations } from './utils/translations';\n\nimport type { StrapiApp, WidgetArgs } from '@strapi/admin/strapi-admin';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n const cm = new ContentManagerPlugin();\n\n app.addReducers({\n [PLUGIN_ID]: reducer,\n });\n\n app.addMenuLink({\n to: PLUGIN_ID,\n icon: Feather,\n intlLabel: {\n id: `content-manager.plugin.name`,\n defaultMessage: 'Content Manager',\n },\n permissions: [],\n position: 1,\n });\n\n app.router.addRoute({\n path: 'content-manager/*',\n lazy: async () => {\n const { Layout } = await import('./layout');\n\n return {\n Component: Layout,\n };\n },\n children: routes,\n });\n\n app.registerPlugin(cm.config);\n\n app.widgets.register((widgets: WidgetArgs[]) => {\n const lastEditedWidget: WidgetArgs = {\n icon: Pencil,\n title: {\n id: `${PLUGIN_ID}.widget.last-edited.title`,\n defaultMessage: 'Last edited entries',\n },\n component: async () => {\n const { LastEditedWidget } = await import('./components/Widgets');\n return LastEditedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-edited-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const lastPublishedWidget: WidgetArgs = {\n icon: CheckCircle,\n title: {\n id: `${PLUGIN_ID}.widget.last-published.title`,\n defaultMessage: 'Last published entries',\n },\n component: async () => {\n const { LastPublishedWidget } = await import('./components/Widgets');\n return LastPublishedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-published-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const entriesWidget: WidgetArgs = {\n icon: PuzzlePiece,\n title: {\n id: `${PLUGIN_ID}.widget.chart-entries.title`,\n defaultMessage: 'Entries',\n },\n component: async () => {\n const { ChartEntriesWidget } = await import('./components/Widgets');\n return ChartEntriesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'chart-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n\n const profileInfoIndex = widgets.findIndex(\n (widget) => widget.id === 'profile-info' && widget.pluginId === 'admin'\n );\n\n // Insert chart-entries after the profile-info widget\n if (profileInfoIndex !== -1) {\n const newWidgets: WidgetArgs[] = [...widgets];\n newWidgets.splice(profileInfoIndex + 1, 0, entriesWidget);\n return [lastEditedWidget, lastPublishedWidget, ...newWidgets];\n }\n\n // Fallback: add to the end if the target widget aren't found\n return [lastEditedWidget, lastPublishedWidget, ...widgets, entriesWidget];\n });\n },\n bootstrap(app: StrapiApp) {\n if (typeof historyAdmin.bootstrap === 'function') {\n historyAdmin.bootstrap(app);\n }\n if (typeof previewAdmin.bootstrap === 'function') {\n previewAdmin.bootstrap(app);\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, PLUGIN_ID),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\nexport * from './exports';\n"],"names":["register","app","cm","ContentManagerPlugin","addReducers","PLUGIN_ID","reducer","addMenuLink","to","icon","Feather","intlLabel","id","defaultMessage","permissions","position","router","addRoute","path","lazy","Layout","Component","children","routes","registerPlugin","config","widgets","lastEditedWidget","Pencil","title","component","LastEditedWidget","pluginId","action","lastPublishedWidget","CheckCircle","LastPublishedWidget","entriesWidget","PuzzlePiece","ChartEntriesWidget","profileInfoIndex","findIndex","widget","newWidgets","splice","bootstrap","historyAdmin","previewAdmin","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["// NOTE: preload before content-manager so Blocks code-editor prism language plugins see global Prism.\nimport 'prismjs';\n\nimport { CheckCircle, Feather, Pencil, PuzzlePiece } from '@strapi/icons';\n\nimport { PLUGIN_ID } from './constants/plugin';\nimport { ContentManagerPlugin } from './content-manager';\nimport { historyAdmin } from './history';\nimport { reducer } from './modules/reducers';\nimport { previewAdmin } from './preview';\nimport { routes } from './router';\nimport { prefixPluginTranslations } from './utils/translations';\n\nimport type { StrapiApp, WidgetArgs } from '@strapi/admin/strapi-admin';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: StrapiApp) {\n const cm = new ContentManagerPlugin();\n\n app.addReducers({\n [PLUGIN_ID]: reducer,\n });\n\n app.addMenuLink({\n to: PLUGIN_ID,\n icon: Feather,\n intlLabel: {\n id: `content-manager.plugin.name`,\n defaultMessage: 'Content Manager',\n },\n permissions: [],\n position: 1,\n });\n\n app.router.addRoute({\n path: 'content-manager/*',\n lazy: async () => {\n const { Layout } = await import('./layout');\n\n return {\n Component: Layout,\n };\n },\n children: routes,\n });\n\n app.registerPlugin(cm.config);\n\n app.widgets.register((widgets: WidgetArgs[]) => {\n const lastEditedWidget: WidgetArgs = {\n icon: Pencil,\n title: {\n id: `${PLUGIN_ID}.widget.last-edited.title`,\n defaultMessage: 'Last edited entries',\n },\n component: async () => {\n const { LastEditedWidget } = await import('./components/Widgets');\n return LastEditedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-edited-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const lastPublishedWidget: WidgetArgs = {\n icon: CheckCircle,\n title: {\n id: `${PLUGIN_ID}.widget.last-published.title`,\n defaultMessage: 'Last published entries',\n },\n component: async () => {\n const { LastPublishedWidget } = await import('./components/Widgets');\n return LastPublishedWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'last-published-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n const entriesWidget: WidgetArgs = {\n icon: PuzzlePiece,\n title: {\n id: `${PLUGIN_ID}.widget.chart-entries.title`,\n defaultMessage: 'Entries',\n },\n component: async () => {\n const { ChartEntriesWidget } = await import('./components/Widgets');\n return ChartEntriesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'chart-entries',\n permissions: [{ action: 'plugin::content-manager.explorer.read' }],\n };\n\n const profileInfoIndex = widgets.findIndex(\n (widget) => widget.id === 'profile-info' && widget.pluginId === 'admin'\n );\n\n // Insert chart-entries after the profile-info widget\n if (profileInfoIndex !== -1) {\n const newWidgets: WidgetArgs[] = [...widgets];\n newWidgets.splice(profileInfoIndex + 1, 0, entriesWidget);\n return [lastEditedWidget, lastPublishedWidget, ...newWidgets];\n }\n\n // Fallback: add to the end if the target widget aren't found\n return [lastEditedWidget, lastPublishedWidget, ...widgets, entriesWidget];\n });\n },\n bootstrap(app: StrapiApp) {\n if (typeof historyAdmin.bootstrap === 'function') {\n historyAdmin.bootstrap(app);\n }\n if (typeof previewAdmin.bootstrap === 'function') {\n previewAdmin.bootstrap(app);\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, PLUGIN_ID),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\nexport * from './exports';\n"],"names":["register","app","cm","ContentManagerPlugin","addReducers","PLUGIN_ID","reducer","addMenuLink","to","icon","Feather","intlLabel","id","defaultMessage","permissions","position","router","addRoute","path","lazy","Layout","Component","children","routes","registerPlugin","config","widgets","lastEditedWidget","Pencil","title","component","LastEditedWidget","pluginId","action","lastPublishedWidget","CheckCircle","LastPublishedWidget","entriesWidget","PuzzlePiece","ChartEntriesWidget","profileInfoIndex","findIndex","widget","newWidgets","splice","bootstrap","historyAdmin","previewAdmin","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;AACA,YAAe;AACbA,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrB,QAAA,MAAMC,KAAK,IAAIC,oBAAAA,EAAAA;AAEfF,QAAAA,GAAAA,CAAIG,WAAW,CAAC;AACd,YAAA,CAACC,YAAYC;AACf,SAAA,CAAA;AAEAL,QAAAA,GAAAA,CAAIM,WAAW,CAAC;YACdC,EAAAA,EAAIH,SAAAA;YACJI,IAAAA,EAAMC,OAAAA;YACNC,SAAAA,EAAW;gBACTC,EAAAA,EAAI,CAAC,2BAA2B,CAAC;gBACjCC,cAAAA,EAAgB;AAClB,aAAA;AACAC,YAAAA,WAAAA,EAAa,EAAE;YACfC,QAAAA,EAAU;AACZ,SAAA,CAAA;QAEAd,GAAAA,CAAIe,MAAM,CAACC,QAAQ,CAAC;YAClBC,IAAAA,EAAM,mBAAA;YACNC,IAAAA,EAAM,UAAA;AACJ,gBAAA,MAAM,EAAEC,MAAM,EAAE,GAAG,MAAM,OAAO,cAAA,CAAA;gBAEhC,OAAO;oBACLC,SAAAA,EAAWD;AACb,iBAAA;AACF,YAAA,CAAA;YACAE,QAAAA,EAAUC;AACZ,SAAA,CAAA;QAEAtB,GAAAA,CAAIuB,cAAc,CAACtB,EAAAA,CAAGuB,MAAM,CAAA;AAE5BxB,QAAAA,GAAAA,CAAIyB,OAAO,CAAC1B,QAAQ,CAAC,CAAC0B,OAAAA,GAAAA;AACpB,YAAA,MAAMC,gBAAAA,GAA+B;gBACnClB,IAAAA,EAAMmB,MAAAA;gBACNC,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,SAAAA,CAAU,yBAAyB,CAAC;oBAC3CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAG,MAAM,OAAO,0BAAA,CAAA;oBAC1C,OAAOA,gBAAAA;AACT,gBAAA,CAAA;gBACAC,QAAAA,EAAU3B,SAAAA;gBACVO,EAAAA,EAAI,qBAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AACA,YAAA,MAAMC,mBAAAA,GAAkC;gBACtCzB,IAAAA,EAAM0B,WAAAA;gBACNN,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,SAAAA,CAAU,4BAA4B,CAAC;oBAC9CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAEM,mBAAmB,EAAE,GAAG,MAAM,OAAO,0BAAA,CAAA;oBAC7C,OAAOA,mBAAAA;AACT,gBAAA,CAAA;gBACAJ,QAAAA,EAAU3B,SAAAA;gBACVO,EAAAA,EAAI,wBAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AACA,YAAA,MAAMI,aAAAA,GAA4B;gBAChC5B,IAAAA,EAAM6B,WAAAA;gBACNT,KAAAA,EAAO;oBACLjB,EAAAA,EAAI,CAAA,EAAGP,SAAAA,CAAU,2BAA2B,CAAC;oBAC7CQ,cAAAA,EAAgB;AAClB,iBAAA;gBACAiB,SAAAA,EAAW,UAAA;AACT,oBAAA,MAAM,EAAES,kBAAkB,EAAE,GAAG,MAAM,OAAO,0BAAA,CAAA;oBAC5C,OAAOA,kBAAAA;AACT,gBAAA,CAAA;gBACAP,QAAAA,EAAU3B,SAAAA;gBACVO,EAAAA,EAAI,eAAA;gBACJE,WAAAA,EAAa;AAAC,oBAAA;wBAAEmB,MAAAA,EAAQ;AAAwC;AAAE;AACpE,aAAA;AAEA,YAAA,MAAMO,gBAAAA,GAAmBd,OAAAA,CAAQe,SAAS,CACxC,CAACC,MAAAA,GAAWA,MAAAA,CAAO9B,EAAE,KAAK,cAAA,IAAkB8B,MAAAA,CAAOV,QAAQ,KAAK,OAAA,CAAA;;YAIlE,IAAIQ,gBAAAA,KAAqB,EAAC,EAAG;AAC3B,gBAAA,MAAMG,UAAAA,GAA2B;AAAIjB,oBAAAA,GAAAA;AAAQ,iBAAA;AAC7CiB,gBAAAA,UAAAA,CAAWC,MAAM,CAACJ,gBAAAA,GAAmB,CAAA,EAAG,CAAA,EAAGH,aAAAA,CAAAA;gBAC3C,OAAO;AAACV,oBAAAA,gBAAAA;AAAkBO,oBAAAA,mBAAAA;AAAwBS,oBAAAA,GAAAA;AAAW,iBAAA;AAC/D,YAAA;;YAGA,OAAO;AAAChB,gBAAAA,gBAAAA;AAAkBO,gBAAAA,mBAAAA;AAAwBR,gBAAAA,GAAAA,OAAAA;AAASW,gBAAAA;AAAc,aAAA;AAC3E,QAAA,CAAA,CAAA;AACF,IAAA,CAAA;AACAQ,IAAAA,SAAAA,CAAAA,CAAU5C,GAAc,EAAA;AACtB,QAAA,IAAI,OAAO6C,YAAAA,CAAaD,SAAS,KAAK,UAAA,EAAY;AAChDC,YAAAA,YAAAA,CAAaD,SAAS,CAAC5C,GAAAA,CAAAA;AACzB,QAAA;AACA,QAAA,IAAI,OAAO8C,YAAAA,CAAaF,SAAS,KAAK,UAAA,EAAY;AAChDE,YAAAA,YAAAA,CAAaF,SAAS,CAAC5C,GAAAA,CAAAA;AACzB,QAAA;AACF,IAAA,CAAA;IACA,MAAM+C,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAAA,EAAMpD,SAAAA,CAAAA;AACrCiD,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB,IAAA;AACF,CAAA;;;;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var toolkit = require('@reduxjs/toolkit');
|
|
4
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
4
5
|
|
|
5
6
|
const initialState = {
|
|
7
|
+
adminUserId: undefined,
|
|
6
8
|
collectionTypeLinks: [],
|
|
7
9
|
components: [],
|
|
8
10
|
contentStructure: undefined,
|
|
@@ -16,7 +18,8 @@ const appSlice = toolkit.createSlice({
|
|
|
16
18
|
initialState,
|
|
17
19
|
reducers: {
|
|
18
20
|
setInitialData (state, action) {
|
|
19
|
-
const { authorizedCollectionTypeLinks, authorizedSingleTypeLinks, components, contentStructure, contentTypeSchemas, fieldSizes } = action.payload;
|
|
21
|
+
const { adminUserId, authorizedCollectionTypeLinks, authorizedSingleTypeLinks, components, contentStructure, contentTypeSchemas, fieldSizes } = action.payload;
|
|
22
|
+
state.adminUserId = adminUserId;
|
|
20
23
|
state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(({ isDisplayed })=>isDisplayed);
|
|
21
24
|
state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed })=>isDisplayed);
|
|
22
25
|
state.components = components;
|
|
@@ -25,11 +28,15 @@ const appSlice = toolkit.createSlice({
|
|
|
25
28
|
state.fieldSizes = fieldSizes;
|
|
26
29
|
state.isLoading = false;
|
|
27
30
|
}
|
|
31
|
+
},
|
|
32
|
+
extraReducers (builder) {
|
|
33
|
+
builder.addMatcher(strapiAdmin.adminApi.util.resetApiState.match, ()=>initialState);
|
|
28
34
|
}
|
|
29
35
|
});
|
|
30
36
|
const { actions, reducer } = appSlice;
|
|
31
37
|
const { setInitialData } = actions;
|
|
32
38
|
|
|
39
|
+
exports.initialState = initialState;
|
|
33
40
|
exports.reducer = reducer;
|
|
34
41
|
exports.setInitialData = setInitialData;
|
|
35
42
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sources":["../../../admin/src/modules/app.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\n\nimport { GetInitData } from '../../../shared/contracts/init';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\ninterface AppState {\n collectionTypeLinks: ContentManagerLink[];\n components: GetInitData.Response['data']['components'];\n contentStructure?: GetInitData.Response['data']['contentStructure'];\n fieldSizes: GetInitData.Response['data']['fieldSizes'];\n models: GetInitData.Response['data']['contentTypes'];\n singleTypeLinks: ContentManagerLink[];\n isLoading: boolean;\n}\n\nconst initialState: AppState = {\n collectionTypeLinks: [],\n components: [],\n contentStructure: undefined,\n fieldSizes: {},\n models: [],\n singleTypeLinks: [],\n isLoading: true,\n};\n\nconst appSlice = createSlice({\n name: 'app',\n initialState,\n reducers: {\n setInitialData(\n state,\n action: PayloadAction<{\n authorizedCollectionTypeLinks: AppState['collectionTypeLinks'];\n authorizedSingleTypeLinks: AppState['singleTypeLinks'];\n components: AppState['components'];\n contentStructure?: AppState['contentStructure'];\n contentTypeSchemas: AppState['models'];\n fieldSizes: AppState['fieldSizes'];\n }>\n ) {\n const {\n authorizedCollectionTypeLinks,\n authorizedSingleTypeLinks,\n components,\n contentStructure,\n contentTypeSchemas,\n fieldSizes,\n } = action.payload;\n state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed }) => isDisplayed);\n state.components = components;\n state.contentStructure = contentStructure;\n state.models = contentTypeSchemas;\n state.fieldSizes = fieldSizes;\n state.isLoading = false;\n },\n },\n});\n\nconst { actions, reducer } = appSlice;\nconst { setInitialData } = actions;\n\nexport { reducer, setInitialData };\nexport type { AppState };\n"],"names":["initialState","collectionTypeLinks","components","contentStructure","
|
|
1
|
+
{"version":3,"file":"app.js","sources":["../../../admin/src/modules/app.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { adminApi } from '@strapi/admin/strapi-admin';\n\nimport { GetInitData } from '../../../shared/contracts/init';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\ninterface AppState {\n adminUserId?: string | number;\n collectionTypeLinks: ContentManagerLink[];\n components: GetInitData.Response['data']['components'];\n contentStructure?: GetInitData.Response['data']['contentStructure'];\n fieldSizes: GetInitData.Response['data']['fieldSizes'];\n models: GetInitData.Response['data']['contentTypes'];\n singleTypeLinks: ContentManagerLink[];\n isLoading: boolean;\n}\n\nconst initialState: AppState = {\n adminUserId: undefined,\n collectionTypeLinks: [],\n components: [],\n contentStructure: undefined,\n fieldSizes: {},\n models: [],\n singleTypeLinks: [],\n isLoading: true,\n};\n\nconst appSlice = createSlice({\n name: 'app',\n initialState,\n reducers: {\n setInitialData(\n state,\n action: PayloadAction<{\n adminUserId?: AppState['adminUserId'];\n authorizedCollectionTypeLinks: AppState['collectionTypeLinks'];\n authorizedSingleTypeLinks: AppState['singleTypeLinks'];\n components: AppState['components'];\n contentStructure?: AppState['contentStructure'];\n contentTypeSchemas: AppState['models'];\n fieldSizes: AppState['fieldSizes'];\n }>\n ) {\n const {\n adminUserId,\n authorizedCollectionTypeLinks,\n authorizedSingleTypeLinks,\n components,\n contentStructure,\n contentTypeSchemas,\n fieldSizes,\n } = action.payload;\n state.adminUserId = adminUserId;\n state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed }) => isDisplayed);\n state.components = components;\n state.contentStructure = contentStructure;\n state.models = contentTypeSchemas;\n state.fieldSizes = fieldSizes;\n state.isLoading = false;\n },\n },\n extraReducers(builder) {\n builder.addMatcher(adminApi.util.resetApiState.match, () => initialState);\n },\n});\n\nconst { actions, reducer } = appSlice;\nconst { setInitialData } = actions;\n\nexport { initialState, reducer, setInitialData };\nexport type { AppState };\n"],"names":["initialState","adminUserId","undefined","collectionTypeLinks","components","contentStructure","fieldSizes","models","singleTypeLinks","isLoading","appSlice","createSlice","name","reducers","setInitialData","state","action","authorizedCollectionTypeLinks","authorizedSingleTypeLinks","contentTypeSchemas","payload","filter","isDisplayed","extraReducers","builder","addMatcher","adminApi","util","resetApiState","match","actions","reducer"],"mappings":";;;;;AAkBA,MAAMA,YAAAA,GAAyB;IAC7BC,WAAAA,EAAaC,SAAAA;AACbC,IAAAA,mBAAAA,EAAqB,EAAE;AACvBC,IAAAA,UAAAA,EAAY,EAAE;IACdC,gBAAAA,EAAkBH,SAAAA;AAClBI,IAAAA,UAAAA,EAAY,EAAC;AACbC,IAAAA,MAAAA,EAAQ,EAAE;AACVC,IAAAA,eAAAA,EAAiB,EAAE;IACnBC,SAAAA,EAAW;AACb;AAEA,MAAMC,WAAWC,mBAAAA,CAAY;IAC3BC,IAAAA,EAAM,KAAA;AACNZ,IAAAA,YAAAA;IACAa,QAAAA,EAAU;QACRC,cAAAA,CAAAA,CACEC,KAAK,EACLC,MAQE,EAAA;AAEF,YAAA,MAAM,EACJf,WAAW,EACXgB,6BAA6B,EAC7BC,yBAAyB,EACzBd,UAAU,EACVC,gBAAgB,EAChBc,kBAAkB,EAClBb,UAAU,EACX,GAAGU,OAAOI,OAAO;AAClBL,YAAAA,KAAAA,CAAMd,WAAW,GAAGA,WAAAA;YACpBc,KAAAA,CAAMZ,mBAAmB,GAAGc,6BAAAA,CAA8BI,MAAM,CAC9D,CAAC,EAAEC,WAAW,EAAE,GAAKA,WAAAA,CAAAA;YAEvBP,KAAAA,CAAMP,eAAe,GAAGU,yBAAAA,CAA0BG,MAAM,CAAC,CAAC,EAAEC,WAAW,EAAE,GAAKA,WAAAA,CAAAA;AAC9EP,YAAAA,KAAAA,CAAMX,UAAU,GAAGA,UAAAA;AACnBW,YAAAA,KAAAA,CAAMV,gBAAgB,GAAGA,gBAAAA;AACzBU,YAAAA,KAAAA,CAAMR,MAAM,GAAGY,kBAAAA;AACfJ,YAAAA,KAAAA,CAAMT,UAAU,GAAGA,UAAAA;AACnBS,YAAAA,KAAAA,CAAMN,SAAS,GAAG,KAAA;AACpB,QAAA;AACF,KAAA;AACAc,IAAAA,aAAAA,CAAAA,CAAcC,OAAO,EAAA;QACnBA,OAAAA,CAAQC,UAAU,CAACC,oBAAAA,CAASC,IAAI,CAACC,aAAa,CAACC,KAAK,EAAE,IAAM7B,YAAAA,CAAAA;AAC9D,IAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE8B,OAAO,EAAEC,OAAO,EAAE,GAAGrB;AAC7B,MAAM,EAAEI,cAAc,EAAE,GAAGgB;;;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
+
import { adminApi } from '@strapi/admin/strapi-admin';
|
|
2
3
|
|
|
3
4
|
const initialState = {
|
|
5
|
+
adminUserId: undefined,
|
|
4
6
|
collectionTypeLinks: [],
|
|
5
7
|
components: [],
|
|
6
8
|
contentStructure: undefined,
|
|
@@ -14,7 +16,8 @@ const appSlice = createSlice({
|
|
|
14
16
|
initialState,
|
|
15
17
|
reducers: {
|
|
16
18
|
setInitialData (state, action) {
|
|
17
|
-
const { authorizedCollectionTypeLinks, authorizedSingleTypeLinks, components, contentStructure, contentTypeSchemas, fieldSizes } = action.payload;
|
|
19
|
+
const { adminUserId, authorizedCollectionTypeLinks, authorizedSingleTypeLinks, components, contentStructure, contentTypeSchemas, fieldSizes } = action.payload;
|
|
20
|
+
state.adminUserId = adminUserId;
|
|
18
21
|
state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(({ isDisplayed })=>isDisplayed);
|
|
19
22
|
state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed })=>isDisplayed);
|
|
20
23
|
state.components = components;
|
|
@@ -23,10 +26,13 @@ const appSlice = createSlice({
|
|
|
23
26
|
state.fieldSizes = fieldSizes;
|
|
24
27
|
state.isLoading = false;
|
|
25
28
|
}
|
|
29
|
+
},
|
|
30
|
+
extraReducers (builder) {
|
|
31
|
+
builder.addMatcher(adminApi.util.resetApiState.match, ()=>initialState);
|
|
26
32
|
}
|
|
27
33
|
});
|
|
28
34
|
const { actions, reducer } = appSlice;
|
|
29
35
|
const { setInitialData } = actions;
|
|
30
36
|
|
|
31
|
-
export { reducer, setInitialData };
|
|
37
|
+
export { initialState, reducer, setInitialData };
|
|
32
38
|
//# sourceMappingURL=app.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.mjs","sources":["../../../admin/src/modules/app.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\n\nimport { GetInitData } from '../../../shared/contracts/init';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\ninterface AppState {\n collectionTypeLinks: ContentManagerLink[];\n components: GetInitData.Response['data']['components'];\n contentStructure?: GetInitData.Response['data']['contentStructure'];\n fieldSizes: GetInitData.Response['data']['fieldSizes'];\n models: GetInitData.Response['data']['contentTypes'];\n singleTypeLinks: ContentManagerLink[];\n isLoading: boolean;\n}\n\nconst initialState: AppState = {\n collectionTypeLinks: [],\n components: [],\n contentStructure: undefined,\n fieldSizes: {},\n models: [],\n singleTypeLinks: [],\n isLoading: true,\n};\n\nconst appSlice = createSlice({\n name: 'app',\n initialState,\n reducers: {\n setInitialData(\n state,\n action: PayloadAction<{\n authorizedCollectionTypeLinks: AppState['collectionTypeLinks'];\n authorizedSingleTypeLinks: AppState['singleTypeLinks'];\n components: AppState['components'];\n contentStructure?: AppState['contentStructure'];\n contentTypeSchemas: AppState['models'];\n fieldSizes: AppState['fieldSizes'];\n }>\n ) {\n const {\n authorizedCollectionTypeLinks,\n authorizedSingleTypeLinks,\n components,\n contentStructure,\n contentTypeSchemas,\n fieldSizes,\n } = action.payload;\n state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed }) => isDisplayed);\n state.components = components;\n state.contentStructure = contentStructure;\n state.models = contentTypeSchemas;\n state.fieldSizes = fieldSizes;\n state.isLoading = false;\n },\n },\n});\n\nconst { actions, reducer } = appSlice;\nconst { setInitialData } = actions;\n\nexport { reducer, setInitialData };\nexport type { AppState };\n"],"names":["initialState","collectionTypeLinks","components","contentStructure","
|
|
1
|
+
{"version":3,"file":"app.mjs","sources":["../../../admin/src/modules/app.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport { adminApi } from '@strapi/admin/strapi-admin';\n\nimport { GetInitData } from '../../../shared/contracts/init';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\ninterface AppState {\n adminUserId?: string | number;\n collectionTypeLinks: ContentManagerLink[];\n components: GetInitData.Response['data']['components'];\n contentStructure?: GetInitData.Response['data']['contentStructure'];\n fieldSizes: GetInitData.Response['data']['fieldSizes'];\n models: GetInitData.Response['data']['contentTypes'];\n singleTypeLinks: ContentManagerLink[];\n isLoading: boolean;\n}\n\nconst initialState: AppState = {\n adminUserId: undefined,\n collectionTypeLinks: [],\n components: [],\n contentStructure: undefined,\n fieldSizes: {},\n models: [],\n singleTypeLinks: [],\n isLoading: true,\n};\n\nconst appSlice = createSlice({\n name: 'app',\n initialState,\n reducers: {\n setInitialData(\n state,\n action: PayloadAction<{\n adminUserId?: AppState['adminUserId'];\n authorizedCollectionTypeLinks: AppState['collectionTypeLinks'];\n authorizedSingleTypeLinks: AppState['singleTypeLinks'];\n components: AppState['components'];\n contentStructure?: AppState['contentStructure'];\n contentTypeSchemas: AppState['models'];\n fieldSizes: AppState['fieldSizes'];\n }>\n ) {\n const {\n adminUserId,\n authorizedCollectionTypeLinks,\n authorizedSingleTypeLinks,\n components,\n contentStructure,\n contentTypeSchemas,\n fieldSizes,\n } = action.payload;\n state.adminUserId = adminUserId;\n state.collectionTypeLinks = authorizedCollectionTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n state.singleTypeLinks = authorizedSingleTypeLinks.filter(({ isDisplayed }) => isDisplayed);\n state.components = components;\n state.contentStructure = contentStructure;\n state.models = contentTypeSchemas;\n state.fieldSizes = fieldSizes;\n state.isLoading = false;\n },\n },\n extraReducers(builder) {\n builder.addMatcher(adminApi.util.resetApiState.match, () => initialState);\n },\n});\n\nconst { actions, reducer } = appSlice;\nconst { setInitialData } = actions;\n\nexport { initialState, reducer, setInitialData };\nexport type { AppState };\n"],"names":["initialState","adminUserId","undefined","collectionTypeLinks","components","contentStructure","fieldSizes","models","singleTypeLinks","isLoading","appSlice","createSlice","name","reducers","setInitialData","state","action","authorizedCollectionTypeLinks","authorizedSingleTypeLinks","contentTypeSchemas","payload","filter","isDisplayed","extraReducers","builder","addMatcher","adminApi","util","resetApiState","match","actions","reducer"],"mappings":";;;AAkBA,MAAMA,YAAAA,GAAyB;IAC7BC,WAAAA,EAAaC,SAAAA;AACbC,IAAAA,mBAAAA,EAAqB,EAAE;AACvBC,IAAAA,UAAAA,EAAY,EAAE;IACdC,gBAAAA,EAAkBH,SAAAA;AAClBI,IAAAA,UAAAA,EAAY,EAAC;AACbC,IAAAA,MAAAA,EAAQ,EAAE;AACVC,IAAAA,eAAAA,EAAiB,EAAE;IACnBC,SAAAA,EAAW;AACb;AAEA,MAAMC,WAAWC,WAAAA,CAAY;IAC3BC,IAAAA,EAAM,KAAA;AACNZ,IAAAA,YAAAA;IACAa,QAAAA,EAAU;QACRC,cAAAA,CAAAA,CACEC,KAAK,EACLC,MAQE,EAAA;AAEF,YAAA,MAAM,EACJf,WAAW,EACXgB,6BAA6B,EAC7BC,yBAAyB,EACzBd,UAAU,EACVC,gBAAgB,EAChBc,kBAAkB,EAClBb,UAAU,EACX,GAAGU,OAAOI,OAAO;AAClBL,YAAAA,KAAAA,CAAMd,WAAW,GAAGA,WAAAA;YACpBc,KAAAA,CAAMZ,mBAAmB,GAAGc,6BAAAA,CAA8BI,MAAM,CAC9D,CAAC,EAAEC,WAAW,EAAE,GAAKA,WAAAA,CAAAA;YAEvBP,KAAAA,CAAMP,eAAe,GAAGU,yBAAAA,CAA0BG,MAAM,CAAC,CAAC,EAAEC,WAAW,EAAE,GAAKA,WAAAA,CAAAA;AAC9EP,YAAAA,KAAAA,CAAMX,UAAU,GAAGA,UAAAA;AACnBW,YAAAA,KAAAA,CAAMV,gBAAgB,GAAGA,gBAAAA;AACzBU,YAAAA,KAAAA,CAAMR,MAAM,GAAGY,kBAAAA;AACfJ,YAAAA,KAAAA,CAAMT,UAAU,GAAGA,UAAAA;AACnBS,YAAAA,KAAAA,CAAMN,SAAS,GAAG,KAAA;AACpB,QAAA;AACF,KAAA;AACAc,IAAAA,aAAAA,CAAAA,CAAcC,OAAO,EAAA;QACnBA,OAAAA,CAAQC,UAAU,CAACC,QAAAA,CAASC,IAAI,CAACC,aAAa,CAACC,KAAK,EAAE,IAAM7B,YAAAA,CAAAA;AAC9D,IAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE8B,OAAO,EAAEC,OAAO,EAAE,GAAGrB;AAC7B,MAAM,EAAEI,cAAc,EAAE,GAAGgB;;;;"}
|
|
@@ -11,6 +11,7 @@ var ActionsDrawer = require('../../components/ActionsDrawer.js');
|
|
|
11
11
|
var collections = require('../../constants/collections.js');
|
|
12
12
|
var plugin = require('../../constants/plugin.js');
|
|
13
13
|
var DocumentRBAC = require('../../features/DocumentRBAC.js');
|
|
14
|
+
var I18nSharedFieldsLock = require('../../features/I18nSharedFieldsLock.js');
|
|
14
15
|
var useDocument = require('../../hooks/useDocument.js');
|
|
15
16
|
var useDocumentLayout = require('../../hooks/useDocumentLayout.js');
|
|
16
17
|
var useLazyComponents = require('../../hooks/useLazyComponents.js');
|
|
@@ -23,6 +24,7 @@ var FormLayout = require('./components/FormLayout.js');
|
|
|
23
24
|
var Header = require('./components/Header.js');
|
|
24
25
|
var Panels = require('./components/Panels.js');
|
|
25
26
|
var data = require('./utils/data.js');
|
|
27
|
+
var forms = require('./utils/forms.js');
|
|
26
28
|
|
|
27
29
|
function _interopNamespace(e) {
|
|
28
30
|
if (e && e.__esModule) return e;
|
|
@@ -97,6 +99,8 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
97
99
|
const { isLazyLoading } = useLazyComponents.useLazyComponents([]);
|
|
98
100
|
const isLoading = !isHydrated || isLoadingDocument || isLoadingLayout || isLazyLoading;
|
|
99
101
|
const initialValues = getInitialFormValues(isCreatingDocument);
|
|
102
|
+
// Remount (key) so unlock cannot flash on the next locale/document before the effect runs.
|
|
103
|
+
const sharedFieldsLockKey = `${id ?? 'create'}:${activeLocale ?? 'default'}`;
|
|
100
104
|
if (isLoadingActionsRBAC || isLoading && !document?.documentId) {
|
|
101
105
|
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
|
102
106
|
}
|
|
@@ -110,155 +114,153 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
110
114
|
}, 'push', true);
|
|
111
115
|
}
|
|
112
116
|
};
|
|
113
|
-
const validateSync = (values, options)=>{
|
|
114
|
-
const yupSchema = validation.createYupSchema(schema?.attributes, components, {
|
|
115
|
-
status,
|
|
116
|
-
...options
|
|
117
|
-
});
|
|
118
|
-
return yupSchema.validateSync(values, {
|
|
119
|
-
abortEarly: false
|
|
120
|
-
});
|
|
121
|
-
};
|
|
122
117
|
return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Page.Main, {
|
|
123
118
|
children: [
|
|
124
119
|
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Title, {
|
|
125
120
|
children: pageTitle
|
|
126
121
|
}),
|
|
127
|
-
|
|
128
|
-
children:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}),
|
|
160
|
-
/*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Layouts.Content, {
|
|
122
|
+
/*#__PURE__*/ jsxRuntime.jsxs(I18nSharedFieldsLock.I18nSharedFieldsLock, {
|
|
123
|
+
children: [
|
|
124
|
+
isSingleType && /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Introduction, {
|
|
125
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {})
|
|
126
|
+
}),
|
|
127
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Form, {
|
|
128
|
+
disabled: hasDraftAndPublished && status === 'published',
|
|
129
|
+
initialValues: initialValues,
|
|
130
|
+
method: isCreatingDocument ? 'POST' : 'PUT',
|
|
131
|
+
validate: (values, options)=>{
|
|
132
|
+
// removes hidden fields from the validation
|
|
133
|
+
// this is necessary because the yup schema doesn't know about the visibility conditions
|
|
134
|
+
// and we don't want to validate fields that are not visible
|
|
135
|
+
const { data: cleanedValues, removedAttributes } = data.handleInvisibleAttributes(values, {
|
|
136
|
+
schema,
|
|
137
|
+
initialValues,
|
|
138
|
+
components
|
|
139
|
+
});
|
|
140
|
+
const yupSchema = validation.createYupSchema(schema?.attributes, components, {
|
|
141
|
+
status,
|
|
142
|
+
removedAttributes,
|
|
143
|
+
...options
|
|
144
|
+
});
|
|
145
|
+
return yupSchema.validate(cleanedValues, {
|
|
146
|
+
abortEarly: false
|
|
147
|
+
});
|
|
148
|
+
},
|
|
149
|
+
initialErrors: location?.state?.forceValidation ? forms.getPublishValidationErrors(initialValues, {
|
|
150
|
+
schema,
|
|
151
|
+
components
|
|
152
|
+
}) : {},
|
|
153
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
161
154
|
children: [
|
|
162
|
-
/*#__PURE__*/ jsxRuntime.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
155
|
+
/*#__PURE__*/ jsxRuntime.jsx(Header.Header, {
|
|
156
|
+
isCreating: isCreatingDocument,
|
|
157
|
+
status: hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined,
|
|
158
|
+
title: pageTitle
|
|
159
|
+
}),
|
|
160
|
+
/*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Layouts.Content, {
|
|
166
161
|
children: [
|
|
167
|
-
/*#__PURE__*/ jsxRuntime.
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}),
|
|
172
|
-
children: hasDraftAndPublished ? /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
173
|
-
children: [
|
|
174
|
-
/*#__PURE__*/ jsxRuntime.jsx(StatusTab, {
|
|
175
|
-
value: "draft",
|
|
176
|
-
children: formatMessage({
|
|
177
|
-
id: translations.getTranslation('containers.edit.tabs.draft'),
|
|
178
|
-
defaultMessage: 'draft'
|
|
179
|
-
})
|
|
180
|
-
}),
|
|
181
|
-
/*#__PURE__*/ jsxRuntime.jsx(StatusTab, {
|
|
182
|
-
disabled: !meta || meta.availableStatus.length === 0,
|
|
183
|
-
value: "published",
|
|
184
|
-
children: formatMessage({
|
|
185
|
-
id: translations.getTranslation('containers.edit.tabs.published'),
|
|
186
|
-
defaultMessage: 'published'
|
|
187
|
-
})
|
|
188
|
-
})
|
|
189
|
-
]
|
|
190
|
-
}) : null
|
|
191
|
-
}),
|
|
192
|
-
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
|
|
193
|
-
paddingTop: {
|
|
194
|
-
initial: 6,
|
|
195
|
-
medium: 4,
|
|
196
|
-
large: 8
|
|
197
|
-
},
|
|
198
|
-
gap: 4,
|
|
162
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.Root, {
|
|
163
|
+
variant: "simple",
|
|
164
|
+
value: status,
|
|
165
|
+
onValueChange: handleTabChange,
|
|
199
166
|
children: [
|
|
200
|
-
/*#__PURE__*/ jsxRuntime.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
167
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.List, {
|
|
168
|
+
"aria-label": formatMessage({
|
|
169
|
+
id: translations.getTranslation('containers.edit.tabs.label'),
|
|
170
|
+
defaultMessage: 'Document status'
|
|
171
|
+
}),
|
|
172
|
+
children: hasDraftAndPublished ? /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
173
|
+
children: [
|
|
174
|
+
/*#__PURE__*/ jsxRuntime.jsx(StatusTab, {
|
|
175
|
+
value: "draft",
|
|
176
|
+
children: formatMessage({
|
|
177
|
+
id: translations.getTranslation('containers.edit.tabs.draft'),
|
|
178
|
+
defaultMessage: 'draft'
|
|
179
|
+
})
|
|
180
|
+
}),
|
|
181
|
+
/*#__PURE__*/ jsxRuntime.jsx(StatusTab, {
|
|
182
|
+
disabled: !meta || meta.availableStatus.length === 0,
|
|
183
|
+
value: "published",
|
|
184
|
+
children: formatMessage({
|
|
185
|
+
id: translations.getTranslation('containers.edit.tabs.published'),
|
|
186
|
+
defaultMessage: 'published'
|
|
187
|
+
})
|
|
188
|
+
})
|
|
189
|
+
]
|
|
190
|
+
}) : null
|
|
191
|
+
}),
|
|
192
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
|
|
193
|
+
paddingTop: {
|
|
194
|
+
initial: 6,
|
|
195
|
+
medium: 4,
|
|
196
|
+
large: 8
|
|
197
|
+
},
|
|
198
|
+
gap: 4,
|
|
205
199
|
children: [
|
|
206
|
-
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.
|
|
207
|
-
|
|
200
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Item, {
|
|
201
|
+
col: 9,
|
|
202
|
+
xs: 12,
|
|
203
|
+
direction: "column",
|
|
204
|
+
alignItems: "stretch",
|
|
208
205
|
children: [
|
|
209
|
-
/*#__PURE__*/ jsxRuntime.
|
|
210
|
-
|
|
206
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.Content, {
|
|
207
|
+
value: "draft",
|
|
208
|
+
children: [
|
|
209
|
+
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Fields, {
|
|
210
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {})
|
|
211
|
+
}),
|
|
212
|
+
/*#__PURE__*/ jsxRuntime.jsx(FormLayout.FormLayout, {
|
|
213
|
+
layout: layout,
|
|
214
|
+
document: doc,
|
|
215
|
+
hasBackground: !isMobile
|
|
216
|
+
})
|
|
217
|
+
]
|
|
211
218
|
}),
|
|
212
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
219
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Content, {
|
|
220
|
+
value: "published",
|
|
221
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(FormLayout.FormLayout, {
|
|
222
|
+
layout: layout,
|
|
223
|
+
document: doc,
|
|
224
|
+
hasBackground: !isMobile
|
|
225
|
+
})
|
|
216
226
|
})
|
|
217
227
|
]
|
|
218
228
|
}),
|
|
219
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
hasBackground: !isMobile
|
|
225
|
-
})
|
|
229
|
+
isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
230
|
+
col: 3,
|
|
231
|
+
direction: "column",
|
|
232
|
+
alignItems: "stretch",
|
|
233
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.Panels, {})
|
|
226
234
|
})
|
|
227
235
|
]
|
|
228
|
-
}),
|
|
229
|
-
isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
230
|
-
col: 3,
|
|
231
|
-
direction: "column",
|
|
232
|
-
alignItems: "stretch",
|
|
233
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.Panels, {})
|
|
234
236
|
})
|
|
235
237
|
]
|
|
238
|
+
}),
|
|
239
|
+
!isDesktop && /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
240
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(ActionsDrawer.ActionsDrawer.Root, {
|
|
241
|
+
hasContent: drawerHasContent,
|
|
242
|
+
hasSideNav: true,
|
|
243
|
+
children: [
|
|
244
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Overlay, {}),
|
|
245
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Header, {
|
|
246
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.ActionsPanelContent, {})
|
|
247
|
+
}),
|
|
248
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Content, {
|
|
249
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.Panels, {
|
|
250
|
+
withActions: false
|
|
251
|
+
})
|
|
252
|
+
})
|
|
253
|
+
]
|
|
254
|
+
})
|
|
236
255
|
})
|
|
237
256
|
]
|
|
238
257
|
}),
|
|
239
|
-
|
|
240
|
-
children: /*#__PURE__*/ jsxRuntime.jsxs(ActionsDrawer.ActionsDrawer.Root, {
|
|
241
|
-
hasContent: drawerHasContent,
|
|
242
|
-
hasSideNav: true,
|
|
243
|
-
children: [
|
|
244
|
-
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Overlay, {}),
|
|
245
|
-
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Header, {
|
|
246
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.ActionsPanelContent, {})
|
|
247
|
-
}),
|
|
248
|
-
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Content, {
|
|
249
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(Panels.Panels, {
|
|
250
|
-
withActions: false
|
|
251
|
-
})
|
|
252
|
-
})
|
|
253
|
-
]
|
|
254
|
-
})
|
|
255
|
-
})
|
|
258
|
+
/*#__PURE__*/ jsxRuntime.jsx(Blocker.Blocker, {})
|
|
256
259
|
]
|
|
257
|
-
})
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}, `${collectionType}:${model}:${id ?? 'create'}:${activeLocale ?? 'default'}`)
|
|
260
|
+
})
|
|
261
|
+
}, `${collectionType}:${model}:${id ?? 'create'}:${activeLocale ?? 'default'}`)
|
|
262
|
+
]
|
|
263
|
+
}, sharedFieldsLockKey)
|
|
262
264
|
]
|
|
263
265
|
});
|
|
264
266
|
};
|