@strapi/content-manager 5.12.0-beta.2 → 5.12.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/chunks/{ComponentConfigurationPage-CBvwLnAK.js → ComponentConfigurationPage-DDybTE9k.js} +3 -3
- package/dist/admin/chunks/{ComponentConfigurationPage-CBvwLnAK.js.map → ComponentConfigurationPage-DDybTE9k.js.map} +1 -1
- package/dist/admin/chunks/{ComponentConfigurationPage-w_ss7xEy.mjs → ComponentConfigurationPage-Dtpjt9kW.mjs} +3 -3
- package/dist/admin/chunks/{ComponentConfigurationPage-w_ss7xEy.mjs.map → ComponentConfigurationPage-Dtpjt9kW.mjs.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-D1iHIzSR.mjs → EditConfigurationPage-DAbUlQVr.mjs} +3 -3
- package/dist/admin/chunks/{EditConfigurationPage-D1iHIzSR.mjs.map → EditConfigurationPage-DAbUlQVr.mjs.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-CbAhYSyH.js → EditConfigurationPage-D_otE6ca.js} +3 -3
- package/dist/admin/chunks/{EditConfigurationPage-CbAhYSyH.js.map → EditConfigurationPage-D_otE6ca.js.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-BtunY0ZP.mjs → EditViewPage-CILYfIn8.mjs} +4 -4
- package/dist/admin/chunks/{EditViewPage-BtunY0ZP.mjs.map → EditViewPage-CILYfIn8.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-Cf_TPJZd.js → EditViewPage-Cd7iCrfo.js} +4 -4
- package/dist/admin/chunks/{EditViewPage-Cf_TPJZd.js.map → EditViewPage-Cd7iCrfo.js.map} +1 -1
- package/dist/admin/chunks/{Form-DsvK3WTh.mjs → Form-CER6uyhc.mjs} +2 -2
- package/dist/admin/chunks/{Form-DsvK3WTh.mjs.map → Form-CER6uyhc.mjs.map} +1 -1
- package/dist/admin/chunks/{Form-UMrizqJP.js → Form-D6ROqMO7.js} +2 -2
- package/dist/admin/chunks/{Form-UMrizqJP.js.map → Form-D6ROqMO7.js.map} +1 -1
- package/dist/admin/chunks/{History-DsRVSUF7.mjs → History-CORGJtti.mjs} +4 -4
- package/dist/admin/chunks/{History-DsRVSUF7.mjs.map → History-CORGJtti.mjs.map} +1 -1
- package/dist/admin/chunks/{History-Crvb_hzd.js → History-DECiFmYO.js} +4 -4
- package/dist/admin/chunks/{History-Crvb_hzd.js.map → History-DECiFmYO.js.map} +1 -1
- package/dist/admin/chunks/{Input-C2r54bIL.js → Input-D3aI7eJe.js} +35 -10
- package/dist/admin/chunks/Input-D3aI7eJe.js.map +1 -0
- package/dist/admin/chunks/{Input-D6obstp0.mjs → Input-hScqTWvW.mjs} +35 -10
- package/dist/admin/chunks/Input-hScqTWvW.mjs.map +1 -0
- package/dist/admin/chunks/{ListConfigurationPage-DW-wAwmW.mjs → ListConfigurationPage-Bgya7skT.mjs} +2 -2
- package/dist/admin/chunks/{ListConfigurationPage-DW-wAwmW.mjs.map → ListConfigurationPage-Bgya7skT.mjs.map} +1 -1
- package/dist/admin/chunks/{ListConfigurationPage-DlQ2pLyr.js → ListConfigurationPage-BiKI9-fH.js} +2 -2
- package/dist/admin/chunks/{ListConfigurationPage-DlQ2pLyr.js.map → ListConfigurationPage-BiKI9-fH.js.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-DcUhPA9a.mjs → ListViewPage-B3Frxm6y.mjs} +3 -3
- package/dist/admin/chunks/{ListViewPage-DcUhPA9a.mjs.map → ListViewPage-B3Frxm6y.mjs.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-nJJ227Fo.js → ListViewPage-BfFRaMK8.js} +3 -3
- package/dist/admin/chunks/{ListViewPage-nJJ227Fo.js.map → ListViewPage-BfFRaMK8.js.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-DbRXR2cr.mjs → NoContentTypePage-B2rBgAB9.mjs} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-DbRXR2cr.mjs.map → NoContentTypePage-B2rBgAB9.mjs.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-Cxt-uFq7.js → NoContentTypePage-C-WQTH0F.js} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-Cxt-uFq7.js.map → NoContentTypePage-C-WQTH0F.js.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-RWPwNESA.mjs → NoPermissionsPage-BNXoY-4Q.mjs} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-RWPwNESA.mjs.map → NoPermissionsPage-BNXoY-4Q.mjs.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-BeMTv_SG.js → NoPermissionsPage-D0T5uTtv.js} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-BeMTv_SG.js.map → NoPermissionsPage-D0T5uTtv.js.map} +1 -1
- package/dist/admin/chunks/{Preview-CCjSV5Iu.js → Preview-BvCbqXQY.js} +10 -8
- package/dist/admin/chunks/Preview-BvCbqXQY.js.map +1 -0
- package/dist/admin/chunks/{Preview-aVLT3LM_.mjs → Preview-D4L4y24d.mjs} +10 -8
- package/dist/admin/chunks/Preview-D4L4y24d.mjs.map +1 -0
- package/dist/admin/chunks/{index-BA_JLxKS.js → index-CB_ymrXf.js} +32 -19
- package/dist/admin/chunks/index-CB_ymrXf.js.map +1 -0
- package/dist/admin/chunks/{index-CIOT3ggy.mjs → index-DsOgMEE-.mjs} +32 -19
- package/dist/admin/chunks/index-DsOgMEE-.mjs.map +1 -0
- package/dist/admin/chunks/{layout-DjT9cccU.mjs → layout-C8AQHDvk.mjs} +4 -4
- package/dist/admin/chunks/{layout-DjT9cccU.mjs.map → layout-C8AQHDvk.mjs.map} +1 -1
- package/dist/admin/chunks/{layout-C510xcd6.js → layout-DGlrPEkC.js} +4 -4
- package/dist/admin/chunks/{layout-C510xcd6.js.map → layout-DGlrPEkC.js.map} +1 -1
- package/dist/admin/chunks/{usePrev-DAWUYIPh.mjs → usePrev-BJk2lXYH.mjs} +2 -2
- package/dist/admin/chunks/{usePrev-DAWUYIPh.mjs.map → usePrev-BJk2lXYH.mjs.map} +1 -1
- package/dist/admin/chunks/{usePrev-BglKW7a4.js → usePrev-BXNyqdUp.js} +2 -2
- package/dist/admin/chunks/{usePrev-BglKW7a4.js.map → usePrev-BXNyqdUp.js.map} +1 -1
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs → zh-Hans-DEAhqI3x.mjs} +3 -2
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs.map → zh-Hans-DEAhqI3x.mjs.map} +1 -1
- package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js → zh-Hans-Djj7eGpO.js} +3 -2
- package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js.map → zh-Hans-Djj7eGpO.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/content-manager.d.ts +2 -0
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -1
- package/package.json +6 -6
- package/dist/admin/chunks/Input-C2r54bIL.js.map +0 -1
- package/dist/admin/chunks/Input-D6obstp0.mjs.map +0 -1
- package/dist/admin/chunks/Preview-CCjSV5Iu.js.map +0 -1
- package/dist/admin/chunks/Preview-aVLT3LM_.mjs.map +0 -1
- package/dist/admin/chunks/index-BA_JLxKS.js.map +0 -1
- package/dist/admin/chunks/index-CIOT3ggy.mjs.map +0 -1
@@ -8,10 +8,10 @@ var Icons = require('@strapi/icons');
|
|
8
8
|
var reactIntl = require('react-intl');
|
9
9
|
var reactRouterDom = require('react-router-dom');
|
10
10
|
var styledComponents = require('styled-components');
|
11
|
-
var index = require('./index-
|
12
|
-
var Input = require('./Input-
|
11
|
+
var index = require('./index-CB_ymrXf.js');
|
12
|
+
var Input = require('./Input-D3aI7eJe.js');
|
13
13
|
var qs = require('qs');
|
14
|
-
var EditViewPage = require('./EditViewPage-
|
14
|
+
var EditViewPage = require('./EditViewPage-Cd7iCrfo.js');
|
15
15
|
require('lodash/fp/mapValues');
|
16
16
|
require('yup');
|
17
17
|
require('fractional-indexing');
|
@@ -72,7 +72,7 @@ require('prismjs/components/prism-typescript');
|
|
72
72
|
require('prismjs/components/prism-tsx');
|
73
73
|
require('prismjs/components/prism-vbnet');
|
74
74
|
require('prismjs/components/prism-yaml');
|
75
|
-
require('./usePrev-
|
75
|
+
require('./usePrev-BXNyqdUp.js');
|
76
76
|
require('./objects-BJTP843m.js');
|
77
77
|
require('react-dnd');
|
78
78
|
require('lodash/clone');
|
@@ -257,7 +257,8 @@ const PreviewTabs = ()=>{
|
|
257
257
|
documentId: document.documentId,
|
258
258
|
document,
|
259
259
|
meta,
|
260
|
-
onPreview
|
260
|
+
onPreview,
|
261
|
+
fromPreview: true
|
261
262
|
};
|
262
263
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
263
264
|
height: "48px",
|
@@ -434,6 +435,7 @@ const PreviewPage = ()=>{
|
|
434
435
|
}, // The iframe origin is safe to use since it must be provided through the allowedOrigins config
|
435
436
|
new URL(iframeRef.current.src).origin);
|
436
437
|
};
|
438
|
+
const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');
|
437
439
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
438
440
|
children: [
|
439
441
|
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Title, {
|
@@ -487,7 +489,7 @@ const PreviewPage = ()=>{
|
|
487
489
|
overflow: "auto",
|
488
490
|
alignItems: "stretch",
|
489
491
|
children: [
|
490
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
492
|
+
hasAdvancedPreview && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
491
493
|
overflow: "auto",
|
492
494
|
width: isSideEditorOpen ? '50%' : 0,
|
493
495
|
borderWidth: "0 1px 0 0",
|
@@ -523,7 +525,7 @@ const PreviewPage = ()=>{
|
|
523
525
|
borderWidth: 0,
|
524
526
|
tag: "iframe"
|
525
527
|
}, previewUrl),
|
526
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
528
|
+
hasAdvancedPreview && /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
527
529
|
variant: "tertiary",
|
528
530
|
label: formatMessage(isSideEditorOpen ? {
|
529
531
|
id: 'content-manager.preview.content.close-editor',
|
@@ -612,4 +614,4 @@ const ProtectedPreviewPage = ()=>{
|
|
612
614
|
|
613
615
|
exports.ProtectedPreviewPage = ProtectedPreviewPage;
|
614
616
|
exports.usePreviewContext = usePreviewContext;
|
615
|
-
//# sourceMappingURL=Preview-
|
617
|
+
//# sourceMappingURL=Preview-BvCbqXQY.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Preview-BvCbqXQY.js","sources":["../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { useDocumentContext } from '../../features/DocumentContext';\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n const onPreview = useDocumentContext('PreviewHeader', (state) => state.onPreview);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const documentActionProps = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n onPreview,\n fromPreview: true,\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <Flex flex=\"1 1 70%\">\n <PreviewTabs />\n </Flex>\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <InjectionZone area=\"preview.actions\" />\n <DescriptionComponentRenderer\n props={documentActionProps}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n Blocker,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, IconButton, Portal } from '@strapi/design-system';\nimport { ArrowLineLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentContextProvider } from '../../features/DocumentContext';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLineLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n const onPreview = () => {\n iframeRef?.current?.contentWindow?.postMessage(\n { type: 'strapiUpdate' },\n // The iframe origin is safe to use since it must be provided through the allowedOrigins config\n new URL(iframeRef.current.src).origin\n );\n };\n\n const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <DocumentContextProvider\n initialDocument={{\n documentId: documentId || '',\n model,\n collectionType,\n }}\n onPreview={onPreview}\n >\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {({ resetForm }) => (\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <Blocker onProceed={resetForm} />\n <PreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n {hasAdvancedPreview && (\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\n </Box>\n )}\n\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n data-testid=\"preview-iframe\"\n ref={iframeRef}\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n {hasAdvancedPreview && (\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n )}\n </Box>\n </Flex>\n </Flex>\n )}\n </FormContext>\n </PreviewProvider>\n </DocumentContextProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["ClosePreviewButton","query","useQueryParams","formatMessage","useIntl","canGoBack","useHistory","state","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","_jsx","IconButton","variant","tag","Link","relative","to","onClick","label","id","defaultMessage","Cross","Status","document","usePreviewContext","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","PreviewHeader","title","plugins","useStrapiApp","onPreview","useDocumentContext","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","documentActionProps","activeTab","collectionType","kind","model","uid","documentId","fromPreview","Flex","height","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","flex","justifyContent","LinkIcon","InjectionZone","area","DescriptionComponentRenderer","props","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","position","flat","includes","primaryAction","secondaryAction","_Fragment","DocumentActionButton","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","AnimatedArrow","ArrowLineLeft","isSideEditorOpen","PreviewPage","useLocation","iframeRef","React","useRef","setIsSideEditorOpen","useState","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","url","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","previewUrl","current","contentWindow","postMessage","URL","src","origin","hasAdvancedPreview","strapi","features","isEnabled","Title","DocumentContextProvider","initialDocument","layout","FormContext","method","initialErrors","forceValidation","validate","resetForm","direction","alignItems","Blocker","onProceed","overflow","Box","width","borderWidth","paddingTop","paddingBottom","transition","FormLayout","hasBackground","data-testid","ref","prev","top","left","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
|
@@ -6,10 +6,10 @@ import { Link, Cross, ArrowLineLeft } from '@strapi/icons';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
7
7
|
import { Link as Link$1, useParams, useLocation } from 'react-router-dom';
|
8
8
|
import { styled } from 'styled-components';
|
9
|
-
import { c as useDocumentContext, I as InjectionZone, j as DocumentActionButton, D as DocumentStatus, i as DocumentRBAC, k as buildValidParams, C as COLLECTION_TYPES, V as useGetPreviewUrlQuery, U as useDocument, d as useDocumentLayout, p as DocumentContextProvider, h as createYupSchema } from './index-
|
10
|
-
import { a as FormLayout } from './Input-
|
9
|
+
import { c as useDocumentContext, I as InjectionZone, j as DocumentActionButton, D as DocumentStatus, i as DocumentRBAC, k as buildValidParams, C as COLLECTION_TYPES, V as useGetPreviewUrlQuery, U as useDocument, d as useDocumentLayout, p as DocumentContextProvider, h as createYupSchema } from './index-DsOgMEE-.mjs';
|
10
|
+
import { a as FormLayout } from './Input-hScqTWvW.mjs';
|
11
11
|
import { stringify } from 'qs';
|
12
|
-
import { getDocumentStatus } from './EditViewPage-
|
12
|
+
import { getDocumentStatus } from './EditViewPage-CILYfIn8.mjs';
|
13
13
|
import 'lodash/fp/mapValues';
|
14
14
|
import 'yup';
|
15
15
|
import 'fractional-indexing';
|
@@ -70,7 +70,7 @@ import 'prismjs/components/prism-typescript';
|
|
70
70
|
import 'prismjs/components/prism-tsx';
|
71
71
|
import 'prismjs/components/prism-vbnet';
|
72
72
|
import 'prismjs/components/prism-yaml';
|
73
|
-
import './usePrev-
|
73
|
+
import './usePrev-BJk2lXYH.mjs';
|
74
74
|
import './objects-D2z-IJgu.mjs';
|
75
75
|
import 'react-dnd';
|
76
76
|
import 'lodash/clone';
|
@@ -236,7 +236,8 @@ const PreviewTabs = ()=>{
|
|
236
236
|
documentId: document.documentId,
|
237
237
|
document,
|
238
238
|
meta,
|
239
|
-
onPreview
|
239
|
+
onPreview,
|
240
|
+
fromPreview: true
|
240
241
|
};
|
241
242
|
return /*#__PURE__*/ jsxs(Flex, {
|
242
243
|
height: "48px",
|
@@ -413,6 +414,7 @@ const PreviewPage = ()=>{
|
|
413
414
|
}, // The iframe origin is safe to use since it must be provided through the allowedOrigins config
|
414
415
|
new URL(iframeRef.current.src).origin);
|
415
416
|
};
|
417
|
+
const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');
|
416
418
|
return /*#__PURE__*/ jsxs(Fragment, {
|
417
419
|
children: [
|
418
420
|
/*#__PURE__*/ jsx(Page.Title, {
|
@@ -466,7 +468,7 @@ const PreviewPage = ()=>{
|
|
466
468
|
overflow: "auto",
|
467
469
|
alignItems: "stretch",
|
468
470
|
children: [
|
469
|
-
/*#__PURE__*/ jsx(Box, {
|
471
|
+
hasAdvancedPreview && /*#__PURE__*/ jsx(Box, {
|
470
472
|
overflow: "auto",
|
471
473
|
width: isSideEditorOpen ? '50%' : 0,
|
472
474
|
borderWidth: "0 1px 0 0",
|
@@ -502,7 +504,7 @@ const PreviewPage = ()=>{
|
|
502
504
|
borderWidth: 0,
|
503
505
|
tag: "iframe"
|
504
506
|
}, previewUrl),
|
505
|
-
/*#__PURE__*/ jsx(IconButton, {
|
507
|
+
hasAdvancedPreview && /*#__PURE__*/ jsx(IconButton, {
|
506
508
|
variant: "tertiary",
|
507
509
|
label: formatMessage(isSideEditorOpen ? {
|
508
510
|
id: 'content-manager.preview.content.close-editor',
|
@@ -590,4 +592,4 @@ const ProtectedPreviewPage = ()=>{
|
|
590
592
|
};
|
591
593
|
|
592
594
|
export { ProtectedPreviewPage, usePreviewContext };
|
593
|
-
//# sourceMappingURL=Preview-
|
595
|
+
//# sourceMappingURL=Preview-D4L4y24d.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Preview-D4L4y24d.mjs","sources":["../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { useDocumentContext } from '../../features/DocumentContext';\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n const onPreview = useDocumentContext('PreviewHeader', (state) => state.onPreview);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const documentActionProps = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n onPreview,\n fromPreview: true,\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <Flex flex=\"1 1 70%\">\n <PreviewTabs />\n </Flex>\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <InjectionZone area=\"preview.actions\" />\n <DescriptionComponentRenderer\n props={documentActionProps}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n Blocker,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, IconButton, Portal } from '@strapi/design-system';\nimport { ArrowLineLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentContextProvider } from '../../features/DocumentContext';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLineLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n const onPreview = () => {\n iframeRef?.current?.contentWindow?.postMessage(\n { type: 'strapiUpdate' },\n // The iframe origin is safe to use since it must be provided through the allowedOrigins config\n new URL(iframeRef.current.src).origin\n );\n };\n\n const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <DocumentContextProvider\n initialDocument={{\n documentId: documentId || '',\n model,\n collectionType,\n }}\n onPreview={onPreview}\n >\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {({ resetForm }) => (\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <Blocker onProceed={resetForm} />\n <PreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n {hasAdvancedPreview && (\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\n </Box>\n )}\n\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n data-testid=\"preview-iframe\"\n ref={iframeRef}\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n {hasAdvancedPreview && (\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n )}\n </Box>\n </Flex>\n </Flex>\n )}\n </FormContext>\n </PreviewProvider>\n </DocumentContextProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["ClosePreviewButton","query","useQueryParams","formatMessage","useIntl","canGoBack","useHistory","state","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","_jsx","IconButton","variant","tag","Link","relative","to","onClick","label","id","defaultMessage","Cross","Status","document","usePreviewContext","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","PreviewHeader","title","plugins","useStrapiApp","onPreview","useDocumentContext","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","documentActionProps","activeTab","collectionType","kind","model","uid","documentId","fromPreview","Flex","height","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","flex","justifyContent","LinkIcon","InjectionZone","area","DescriptionComponentRenderer","props","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","position","flat","includes","primaryAction","secondaryAction","_Fragment","DocumentActionButton","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","AnimatedArrow","ArrowLineLeft","isSideEditorOpen","PreviewPage","useLocation","iframeRef","React","useRef","setIsSideEditorOpen","useState","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","url","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","previewUrl","current","contentWindow","postMessage","URL","src","origin","hasAdvancedPreview","strapi","features","isEnabled","Title","DocumentContextProvider","initialDocument","layout","FormContext","method","initialErrors","forceValidation","validate","resetForm","direction","alignItems","Blocker","onProceed","overflow","Box","width","borderWidth","paddingTop","paddingBottom","transition","FormLayout","hasBackground","data-testid","ref","prev","top","left","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA;;AAEkG,qGAElG,MAAMA,kBAAqB,GAAA,IAAA;AACzB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IAGpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,YAAYC,UAAW,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMF,SAAS,CAAA;AACrE,IAAA,MAAMG,SAASF,UAAW,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMC,MAAM,CAAA;AAC/D,IAAA,MAAMC,UAAUH,UAAW,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAME,OAAO,CAAA;AACjE,IAAA,MAAMC,gBAAgBJ,UAAW,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMI,oBAAoB,CAAA;AAEpF;;;AAGC,MACD,MAAMC,SAAYP,GAAAA,SAAAA,GAAYI,QAAQI,EAAE,CAACH,gBAAgB,CAAKI,CAAAA,GAAAA,SAAAA;AAC9D,IAAA,MAAMC,QAAW,GAAA;QACfC,QAAU,EAAA,IAAA;AACVC,QAAAA,MAAAA,EAAQC,UAAUjB,KAAO,EAAA;YAAEkB,MAAQ,EAAA;AAAM,SAAA;AAC3C,KAAA;AACA,IAAA,MAAMC,iBAAiBR,SAAaG,IAAAA,QAAAA;AAEpC,IAAA,MAAMM,cAAc,CAACC,CAAAA,GAAAA;AACnB,QAAA,IAAIjB,SAAW,EAAA;;AAEbiB,YAAAA,CAAAA,CAAEC,cAAc,EAAA;AAChBf,YAAAA,MAAAA,EAAAA;AACA,YAAA;AACF;;;AAIF,KAAA;AAEA,IAAA,qBACEgB,GAACC,CAAAA,UAAAA,EAAAA;QACCC,OAAQ,EAAA,OAAA;QACRC,GAAKC,EAAAA,MAAAA;QACLC,QAAS,EAAA,MAAA;QACTC,EAAIV,EAAAA,cAAAA;QACJW,OAASV,EAAAA,WAAAA;AACTW,QAAAA,KAAAA,EAAO7B,aAAc,CAAA;YACnB8B,EAAI,EAAA,sCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;AAEA,QAAA,QAAA,gBAAAV,GAACW,CAAAA,KAAAA,EAAAA,EAAAA;;AAGP,CAAA;AAEA;;AAEkG,qGAElG,MAAMC,MAAS,GAAA,IAAA;;AAEb,IAAA,MAAMC,WAAWC,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAM8B,QAAQ,CAAA;AAC7E,IAAA,MAAME,SAASD,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMgC,MAAM,CAAA;AACzE,IAAA,MAAMC,OAAOF,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMiC,IAAI,CAAA;IACrE,MAAMC,oBAAAA,GAAuBF,MAAQG,EAAAA,OAAAA,EAASC,eAAmB,IAAA,KAAA;AAEjE,IAAA,IAAI,CAACF,oBAAsB,EAAA;QACzB,OAAO,IAAA;AACT;IAEA,MAAMG,MAAAA,GAASC,kBAAkBR,QAAUG,EAAAA,IAAAA,CAAAA;AAE3C,IAAA,qBAAOhB,GAACsB,CAAAA,cAAAA,EAAAA;QAAeF,MAAQA,EAAAA,MAAAA;QAAQG,IAAK,EAAA;;AAC9C,CAAA;AAEA,MAAMC,WAAc,GAAA,IAAA;IAClB,MAAM,EAAE7C,aAAa,EAAE,GAAGC,OAAAA,EAAAA;;AAG1B,IAAA,MAAM,CAAC,EAAEH,KAAK,EAAE,EAAEgD,SAAS,GAAG/C,cAAAA,EAAAA;;AAG9B,IAAA,MAAMmC,WAAWC,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAM8B,QAAQ,CAAA;AAC7E,IAAA,MAAME,SAASD,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMgC,MAAM,CAAA;AACzE,IAAA,MAAMC,OAAOF,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMiC,IAAI,CAAA;IACrE,MAAMU,kBAAAA,GAAqBX,MAAQG,EAAAA,OAAAA,EAASC,eAAmB,IAAA,KAAA;IAC/D,MAAMQ,cAAAA,GAAiBN,kBAAkBR,QAAUG,EAAAA,IAAAA,CAAAA;AAEnD,IAAA,MAAMY,kBAAkB,CAACR,MAAAA,GAAAA;QACvB,IAAIA,MAAAA,KAAW,WAAeA,IAAAA,MAAAA,KAAW,OAAS,EAAA;YAChDK,QAAS,CAAA;AAAEL,gBAAAA;AAAO,aAAA,EAAG,MAAQ,EAAA,IAAA,CAAA;AAC/B;AACF,KAAA;AAEA,IAAA,IAAI,CAACM,kBAAoB,EAAA;QACvB,OAAO,IAAA;AACT;IAEA,qBACE1B,GAAA,CAAC6B,KAAKC,IAAI,EAAA;QAAC5B,OAAQ,EAAA,QAAA;QAAS6B,KAAOtD,EAAAA,KAAAA,CAAM2C,MAAM,IAAI,OAAA;QAASY,aAAeJ,EAAAA,eAAAA;gCACzEK,IAAA,CAACJ,KAAKK,IAAI,EAAA;AACRC,YAAAA,YAAAA,EAAYxD,aAAc,CAAA;gBACxB8B,EAAI,EAAA,oBAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;;8BAEAV,GAACoC,CAAAA,SAAAA,EAAAA;oBAAUL,KAAM,EAAA,OAAA;8BACdpD,aAAc,CAAA;wBACb8B,EAAI,EAAA,uCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;8BAEFV,GAACoC,CAAAA,SAAAA,EAAAA;oBAAUL,KAAM,EAAA,WAAA;AAAYM,oBAAAA,QAAAA,EAAUV,cAAmB,KAAA,OAAA;8BACvDhD,aAAc,CAAA;wBACb8B,EAAI,EAAA,2CAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAKV,CAAA;AAEA;;AAEkG,qGAElG,MAAM4B,aAAgB,GAAA,IAAA;AACpB,IAAA,MAAMC,QAAQzB,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMwD,KAAK,CAAA;AACvE,IAAA,MAAM1B,WAAWC,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAM8B,QAAQ,CAAA;AAC7E,IAAA,MAAME,SAASD,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMgC,MAAM,CAAA;AACzE,IAAA,MAAMC,OAAOF,iBAAkB,CAAA,eAAA,EAAiB,CAAC/B,KAAAA,GAAUA,MAAMiC,IAAI,CAAA;AACrE,IAAA,MAAMwB,UAAUC,YAAa,CAAA,eAAA,EAAiB,CAAC1D,KAAAA,GAAUA,MAAMyD,OAAO,CAAA;AACtE,IAAA,MAAME,YAAYC,kBAAmB,CAAA,eAAA,EAAiB,CAAC5D,KAAAA,GAAUA,MAAM2D,SAAS,CAAA;AAEhF,IAAA,MAAM,CAAC,EAAEjE,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IAGpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEgE,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAAA,EAAAA;AAEjB,IAAA,MAAMC,cAAiB,GAAA,IAAA;QACrBF,IAAKG,CAAAA,MAAAA,CAAOC,QAAQ,CAACC,IAAI,CAAA;QACzBP,kBAAmB,CAAA;AACjBQ,YAAAA,OAAAA,EAASzE,aAAc,CAAA;gBACrB8B,EAAI,EAAA,sCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACA2C,IAAM,EAAA;AACR,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,MAAM3B,kBAAqBX,GAAAA,MAAAA,CAAOG,OAAO,EAAEC,eAAmB,IAAA,KAAA;AAC9D,IAAA,MAAMmC,mBAAsB,GAAA;QAC1BC,SAAW9E,EAAAA,KAAAA,CAAM2C,MAAM,IAAI,IAAA;AAC3BoC,QAAAA,cAAAA,EAAgBzC,MAAO0C,CAAAA,IAAI,KAAK,gBAAA,GAAmB,kBAAqB,GAAA,cAAA;AACxEC,QAAAA,KAAAA,EAAO3C,OAAO4C,GAAG;AACjBC,QAAAA,UAAAA,EAAY/C,SAAS+C,UAAU;AAC/B/C,QAAAA,QAAAA;AACAG,QAAAA,IAAAA;AACA0B,QAAAA,SAAAA;QACAmB,WAAa,EAAA;AACf,KAAA;AAEA,IAAA,qBACE5B,IAAC6B,CAAAA,IAAAA,EAAAA;QAAKC,MAAO,EAAA,MAAA;QAAOC,GAAK,EAAA,CAAA;QAAGC,UAAW,EAAA,UAAA;QAAWC,WAAY,EAAA,YAAA;QAAa/D,GAAI,EAAA,QAAA;;0BAE7E8B,IAACkC,CAAAA,cAAAA,EAAAA;gBAAeJ,MAAO,EAAA,MAAA;gBAAOK,WAAa,EAAA,CAAA;gBAAGC,YAAc,EAAA,CAAA;;kCAC1DrE,GAACxB,CAAAA,kBAAAA,EAAAA,EAAAA,CAAAA;kCACDwB,GAACsE,CAAAA,YAAAA,EAAAA;wBACCnE,GAAI,EAAA,IAAA;wBACJoC,KAAOA,EAAAA,KAAAA;wBACPgC,QAAS,EAAA,OAAA;wBACTC,QAAU,EAAA,CAAA;wBACVJ,WAAa,EAAA,CAAA;wBACbC,YAAc,EAAA,CAAA;wBACdI,UAAY,EAAA,GAAA;AAEXlC,wBAAAA,QAAAA,EAAAA;;kCAEHvC,GAACY,CAAAA,MAAAA,EAAAA,EAAAA;;;0BAIHqB,IAAC6B,CAAAA,IAAAA,EAAAA;gBACCY,IAAM,EAAA,CAAA;gBACNL,YAAc,EAAA,CAAA;gBACdL,GAAK,EAAA,CAAA;AACLW,gBAAAA,cAAAA,EAAgBjD,qBAAqB,eAAkB,GAAA,UAAA;;kCAEvD1B,GAAC8D,CAAAA,IAAAA,EAAAA;wBAAKY,IAAK,EAAA,SAAA;AACT,wBAAA,QAAA,gBAAA1E,GAACwB,CAAAA,WAAAA,EAAAA,EAAAA;;kCAEHS,IAAC6B,CAAAA,IAAAA,EAAAA;wBAAKE,GAAK,EAAA,CAAA;;0CACThE,GAACC,CAAAA,UAAAA,EAAAA;gCACCoD,IAAK,EAAA,QAAA;AACL7C,gCAAAA,KAAAA,EAAO7B,aAAc,CAAA;oCACnB8B,EAAI,EAAA,oBAAA;oCACJC,cAAgB,EAAA;AAClB,iCAAA,CAAA;gCACAH,OAASyC,EAAAA,cAAAA;AAET,gCAAA,QAAA,gBAAAhD,GAAC4E,CAAAA,IAAAA,EAAAA,EAAAA;;0CAEH5E,GAAC6E,CAAAA,aAAAA,EAAAA;gCAAcC,IAAK,EAAA;;0CACpB9E,GAAC+E,CAAAA,4BAAAA,EAAAA;gCACCC,KAAO1B,EAAAA,mBAAAA;gCACP2B,YAAc,EACZzC,OAAO,CAAC,iBAAA,CAAkB,CAAC0C,IAAI,CAC/BC,kBAAkB,CAAC,SAAA,CAAA;0CAEpB,CAACC,OAAAA,GAAAA;AACA,oCAAA,MAAMC,eAAkBD,GAAAA,OAAAA,CAAQE,MAAM,CAAC,CAACC,MACtC,GAAA;AAACA,4CAAAA,MAAAA,CAAOC;yCAAS,CAACC,IAAI,EAAGC,CAAAA,QAAQ,CAAC,SAAA,CAAA,CAAA;oCAEpC,MAAM,CAACC,aAAeC,EAAAA,eAAAA,CAAgB,GAAGP,eAAAA;AAEzC,oCAAA,IAAI,CAACM,aAAAA,IAAiB,CAACC,eAAAA,EAAiB,OAAO,IAAA;;AAG/C,oCAAA,IAAID,iBAAiBC,eAAiB,EAAA;wCACpC,qBACE3D,IAAA,CAAA4D,QAAA,EAAA;;8DAEE7F,GAAC8F,CAAAA,oBAAAA,EAAAA;AACE,oDAAA,GAAGF,eAAe;oDACnB1F,OAAS0F,EAAAA,eAAAA,CAAgB1F,OAAO,IAAI;;8DAGtCF,GAAC8F,CAAAA,oBAAAA,EAAAA;AACE,oDAAA,GAAGH,aAAa;oDACjBzF,OAASyF,EAAAA,aAAAA,CAAczF,OAAO,IAAI;;;;AAI1C;;AAGA,oCAAA,qBACEF,GAAC8F,CAAAA,oBAAAA,EAAAA;AACE,wCAAA,GAAGH,aAAa;wCACjBzF,OAASyF,EAAAA,aAAAA,CAAczF,OAAO,IAAI;;AAGxC;;;;;;;;AAMZ,CAAA;AAEA,MAAMoE,YAAAA,GAAeyB,MAAOC,CAAAA,UAAAA,CAAW;;;;AAIvC,CAAC;AAED,MAAM5D,SAAY2D,GAAAA,MAAAA,CAAOlE,IAAKoE,CAAAA,OAAO,CAAC;;AAEtC,CAAC;AAED,MAAM9B,cAAAA,GAAiB4B,MAAOjC,CAAAA,IAAAA,CAAK;0BACT,EAAE,CAAC,EAAEoC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;AACnE,CAAC;;ACxPD,MAAM,CAACC,eAAAA,EAAiBvF,iBAAkB,CAAA,GAAGwF,aAAmC,CAAA,aAAA;AAEhF;;AAEkG,qGAElG,MAAMC,aAAAA,GAAgBR,MAAOS,CAAAA,aAAAA,CAA6C;;AAEhE,UAAA,EAAE,CAACxB,KAAWA,GAAAA,KAAAA,CAAMyB,gBAAgB,GAAG,SAAS,QAAU,CAAA;;AAEpE,CAAC;AAED,MAAMC,WAAc,GAAA,IAAA;AAClB,IAAA,MAAMxD,QAAWyD,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEhI,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMgI,SAAAA,GAAYC,KAAMC,CAAAA,MAAM,CAAoB,IAAA,CAAA;AAClD,IAAA,MAAM,CAACL,gBAAkBM,EAAAA,mBAAAA,CAAoB,GAAGF,KAAAA,CAAMG,QAAQ,CAAC,IAAA,CAAA;;IAG/D,MAAM,EACJC,MAAMvD,KAAK,EACXjD,IAAImD,UAAU,EACdJ,cAAc,EACf,GAAG0D,SAAAA,EAAAA;AAKJ,IAAA,MAAM,CAAC,EAAEzI,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AAKpB,IAAA,MAAMyI,SAASN,KAAMO,CAAAA,OAAO,CAAC,IAAMC,iBAAiB5I,KAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;AAEnE,IAAA,IAAI,CAAC+E,cAAgB,EAAA;AACnB,QAAA,MAAM,IAAI8D,KAAM,CAAA,6CAAA,CAAA;AAClB;AAEA,IAAA,IAAI,CAAC5D,KAAO,EAAA;AACV,QAAA,MAAM,IAAI4D,KAAM,CAAA,oCAAA,CAAA;AAClB;;IAGA,IAAI9D,cAAAA,KAAmB+D,gBAAoB,IAAA,CAAC3D,UAAY,EAAA;AACtD,QAAA,MAAM,IAAI0D,KAAM,CAAA,yCAAA,CAAA;AAClB;AAEA,IAAA,MAAME,qBAAqBC,qBAAsB,CAAA;QAC/CN,MAAQ,EAAA;YACNO,WAAahE,EAAAA;AACf,SAAA;QACAjF,KAAO,EAAA;AACLmF,YAAAA,UAAAA;AACA+D,YAAAA,MAAAA,EAAQR,OAAOQ,MAAM;AACrBvG,YAAAA,MAAAA,EAAQ+F,OAAO/F;AACjB;AACF,KAAA,CAAA;AACA,IAAA,MAAMwG,mBAAmBC,WAAY,CAAA;AACnCnE,QAAAA,KAAAA;AACAF,QAAAA,cAAAA;AACAI,QAAAA,UAAAA;AACAuD,QAAAA;AACF,KAAA,CAAA;AACA,IAAA,MAAMW,yBAAyBC,iBAAkBrE,CAAAA,KAAAA,CAAAA;IAEjD,MAAMsE,SAAAA,GACJR,mBAAmBQ,SAAS,IAAIF,uBAAuBE,SAAS,IAAIJ,iBAAiBI,SAAS;AAChG,IAAA,IAAIA,SAAa,IAAA,CAACJ,gBAAiB/G,CAAAA,QAAQ,EAAE+C,UAAY,EAAA;QACvD,qBAAO5D,GAAA,CAACiI,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,MAAMC,aAAAA,GAAgBP,iBAAiBQ,oBAAoB,EAAA;AAE3D,IAAA,IACEZ,mBAAmBa,KAAK,IACxBP,uBAAuBO,KAAK,IAC5B,CAACT,gBAAiB/G,CAAAA,QAAQ,IAC1B,CAAC+G,gBAAAA,CAAiB5G,IAAI,IACtB,CAAC4G,iBAAiB7G,MAAM,IACxB,CAACoH,aACD,EAAA;QACA,qBAAOnI,GAAA,CAACiI,KAAKX,KAAK,EAAA,EAAA,CAAA;AACpB;AAEA,IAAA,IAAI,CAACE,kBAAAA,CAAmBc,IAAI,EAAEA,MAAMC,GAAK,EAAA;QACvC,qBAAOvI,GAAA,CAACiI,KAAKO,MAAM,EAAA,EAAA,CAAA;AACrB;IAEA,MAAMC,aAAAA,GAAgBb,iBAAiBc,QAAQ,CAACZ,uBAAuBa,IAAI,CAACC,QAAQ,CAACC,SAAS,CAAA;IAE9F,MAAMC,YAAAA,GAAe,CAACC,MAAiC7H,EAAAA,OAAAA,GAAAA;QACrD,MAAM8H,SAAAA,GAAYC,gBAChBrB,gBAAiB7G,CAAAA,MAAM,EAAEmI,UACzBtB,EAAAA,gBAAAA,CAAiBuB,UAAU,EAC3B;YACE/H,MAAQwG,EAAAA,gBAAAA,CAAiB/G,QAAQ,EAAEO,MAAAA;AACnC,YAAA,GAAGF;AACL,SAAA,CAAA;QAGF,OAAO8H,SAAAA,CAAUF,YAAY,CAACC,MAAQ,EAAA;YAAEK,UAAY,EAAA;AAAM,SAAA,CAAA;AAC5D,KAAA;AAEA,IAAA,MAAMC,aAAa7B,kBAAmBc,CAAAA,IAAI,CAACA,IAAI,CAACC,GAAG;AAEnD,IAAA,MAAM7F,SAAY,GAAA,IAAA;QAChBkE,SAAW0C,EAAAA,OAAAA,EAASC,eAAeC,WACjC,CAAA;YAAEnG,IAAM,EAAA;AAAe,SAAA;AAEvB,QAAA,IAAIoG,IAAI7C,SAAU0C,CAAAA,OAAO,CAACI,GAAG,EAAEC,MAAM,CAAA;AAEzC,KAAA;AAEA,IAAA,MAAMC,qBAAqB3G,MAAO4G,CAAAA,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAA,CAAA;IAE5D,qBACE9H,IAAA,CAAA4D,QAAA,EAAA;;AACE,0BAAA7F,GAAA,CAACiI,KAAK+B,KAAK,EAAA;0BACRrL,aACC,CAAA;oBACE8B,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;iBAElB,EAAA;oBACEgH,WAAae,EAAAA;AACf,iBAAA;;0BAGJzI,GAACiK,CAAAA,uBAAAA,EAAAA;gBACCC,eAAiB,EAAA;AACftG,oBAAAA,UAAAA,EAAYA,UAAc,IAAA,EAAA;AAC1BF,oBAAAA,KAAAA;AACAF,oBAAAA;AACF,iBAAA;gBACAd,SAAWA,EAAAA,SAAAA;AAEX,gBAAA,QAAA,gBAAA1C,GAACqG,CAAAA,eAAAA,EAAAA;oBACCkC,GAAKc,EAAAA,UAAAA;AACLxI,oBAAAA,QAAAA,EAAU+G,iBAAiB/G,QAAQ;oBACnC0B,KAAOkG,EAAAA,aAAAA;AACPzH,oBAAAA,IAAAA,EAAM4G,iBAAiB5G,IAAI;AAC3BD,oBAAAA,MAAAA,EAAQ6G,iBAAiB7G,MAAM;AAC/BoJ,oBAAAA,MAAAA,EAAQrC,uBAAuBa,IAAI;AAEnC,oBAAA,QAAA,gBAAA3I,GAACoK,CAAAA,IAAAA,EAAAA;wBACCC,MAAO,EAAA,KAAA;wBACPhI,QACE5D,EAAAA,KAAAA,CAAM2C,MAAM,KAAK,WAAA,IACjBwG,oBACAA,gBAAiB/G,CAAAA,QAAQ,CAACO,MAAM,KAAK,WAAA;AAEvC+G,wBAAAA,aAAAA,EAAeP,iBAAiBQ,oBAAoB,EAAA;AACpDkC,wBAAAA,aAAAA,EAAepH,UAAUnE,KAAOwL,EAAAA,eAAAA,GAAkBzB,aAAaX,aAAe,EAAA,MAAM,EAAC;wBACrFpE,MAAO,EAAA,MAAA;AACPyG,wBAAAA,QAAAA,EAAU,CAACzB,MAAiC7H,EAAAA,OAAAA,GAAAA;4BAC1C,MAAM8H,SAAAA,GAAYC,gBAChBrB,gBAAiB7G,CAAAA,MAAM,EAAEmI,UACzBtB,EAAAA,gBAAAA,CAAiBuB,UAAU,EAC3B;gCACE/H,MAAQwG,EAAAA,gBAAAA,CAAiB/G,QAAQ,EAAEO,MAAAA;AACnC,gCAAA,GAAGF;AACL,6BAAA,CAAA;4BAGF,OAAO8H,SAAAA,CAAUwB,QAAQ,CAACzB,MAAQ,EAAA;gCAAEK,UAAY,EAAA;AAAM,6BAAA,CAAA;AACxD,yBAAA;AAEC,wBAAA,QAAA,EAAA,CAAC,EAAEqB,SAAS,EAAE,iBACbxI,IAAC6B,CAAAA,IAAAA,EAAAA;gCAAK4G,SAAU,EAAA,QAAA;gCAAS3G,MAAO,EAAA,MAAA;gCAAO4G,UAAW,EAAA,SAAA;;kDAChD3K,GAAC4K,CAAAA,OAAAA,EAAAA;wCAAQC,SAAWJ,EAAAA;;kDACpBzK,GAACsC,CAAAA,aAAAA,EAAAA,EAAAA,CAAAA;kDACDL,IAAC6B,CAAAA,IAAAA,EAAAA;wCAAKY,IAAM,EAAA,CAAA;wCAAGoG,QAAS,EAAA,MAAA;wCAAOH,UAAW,EAAA,SAAA;;AACvCf,4CAAAA,kBAAAA,kBACC5J,GAAC+K,CAAAA,GAAAA,EAAAA;gDACCD,QAAS,EAAA,MAAA;AACTE,gDAAAA,KAAAA,EAAOvE,mBAAmB,KAAQ,GAAA,CAAA;gDAClCwE,WAAY,EAAA,WAAA;gDACZ/G,WAAY,EAAA,YAAA;gDACZgH,UAAY,EAAA,CAAA;gDACZC,aAAe,EAAA,CAAA;;AAEf/G,gDAAAA,WAAAA,EAAaqC,mBAAmB,CAAI,GAAA,CAAA;AACpCpC,gDAAAA,YAAAA,EAAcoC,mBAAmB,CAAI,GAAA,CAAA;gDACrC2E,UAAW,EAAA,sBAAA;AAEX,gDAAA,QAAA,gBAAApL,GAACqL,CAAAA,UAAAA,EAAAA;oDACClB,MAAQrC,EAAAA,sBAAAA,CAAuBa,IAAI,CAACwB,MAAM;oDAC1CtJ,QAAU+G,EAAAA,gBAAAA;oDACV0D,aAAe,EAAA;;;0DAKrBrJ,IAAC8I,CAAAA,GAAAA,EAAAA;gDAAIvF,QAAS,EAAA,UAAA;gDAAWd,IAAM,EAAA,CAAA;gDAAGX,MAAO,EAAA,MAAA;gDAAO+G,QAAS,EAAA,QAAA;;kEACvD9K,GAAC+K,CAAAA,GAAAA,EAAAA;wDACCQ,aAAY,EAAA,gBAAA;wDACZC,GAAK5E,EAAAA,SAAAA;wDACL8C,GAAKL,EAAAA,UAAAA;AASL9G,wDAAAA,KAAAA,EAAO5D,aAAc,CAAA;4DACnB8B,EAAI,EAAA,qCAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAsK,KAAM,EAAA,MAAA;wDACNjH,MAAO,EAAA,MAAA;wDACPkH,WAAa,EAAA,CAAA;wDACb9K,GAAI,EAAA;AARCkJ,qDAAAA,EAAAA,UAAAA,CAAAA;AAUNO,oDAAAA,kBAAAA,kBACC5J,GAACC,CAAAA,UAAAA,EAAAA;wDACCC,OAAQ,EAAA,UAAA;AACRM,wDAAAA,KAAAA,EAAO7B,cACL8H,gBACI,GAAA;4DACEhG,EAAI,EAAA,8CAAA;4DACJC,cAAgB,EAAA;yDAElB,GAAA;4DACED,EAAI,EAAA,6CAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;AAENH,wDAAAA,OAAAA,EAAS,IAAMwG,mBAAAA,CAAoB,CAAC0E,IAAAA,GAAS,CAACA,IAAAA,CAAAA;wDAC9CjG,QAAS,EAAA,UAAA;wDACTkG,GAAK,EAAA,CAAA;wDACLC,IAAM,EAAA,CAAA;AAEN,wDAAA,QAAA,gBAAA3L,GAACuG,CAAAA,aAAAA,EAAAA;4DAAcE,gBAAkBA,EAAAA;;;;;;;;;;;;;;AAYzD,CAAA;AAEA;;AAEkG,qGAElG,MAAMmF,wBAA2B,GAAA,IAAA;AAC/B,IAAA,MAAM,EAAE3E,IAAAA,EAAMvD,KAAK,EAAE,GAAGwD,SAAAA,EAAAA;IAGxB,MAAM,EACJ2E,cAAc,EAAE,EAChB7D,SAAS,EACTK,KAAK,EACN,GAAGyD,OAAQ,CAAA;AACV,QAAA;YAAEvG,MAAQ,EAAA,uCAAA;YAAyCwG,OAASrI,EAAAA;AAAM,SAAA;AAClE,QAAA;YAAE6B,MAAQ,EAAA,yCAAA;YAA2CwG,OAASrI,EAAAA;AAAM,SAAA;AACpE,QAAA;YAAE6B,MAAQ,EAAA,0CAAA;YAA4CwG,OAASrI,EAAAA;AAAM;AACtE,KAAA,CAAA;AAED,IAAA,IAAIsE,SAAW,EAAA;QACb,qBAAOhI,GAAA,CAACiI,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,IAAIG,KAAAA,IAAS,CAAC3E,KAAO,EAAA;AACnB,QAAA,qBACE1D,GAAC+K,CAAAA,GAAAA,EAAAA;YACChH,MAAO,EAAA,OAAA;YACPiH,KAAM,EAAA,OAAA;YACNxF,QAAS,EAAA,OAAA;YACTkG,GAAK,EAAA,CAAA;YACLC,IAAM,EAAA,CAAA;YACNK,MAAQ,EAAA,CAAA;YACR/H,UAAW,EAAA,UAAA;oCAEXjE,GAAA,CAACiI,KAAKX,KAAK,EAAA,EAAA;;AAGjB;AAEA,IAAA,qBACEtH,GAAC+K,CAAAA,GAAAA,EAAAA;QACChH,MAAO,EAAA,OAAA;QACPiH,KAAM,EAAA,OAAA;QACNxF,QAAS,EAAA,OAAA;QACTkG,GAAK,EAAA,CAAA;QACLC,IAAM,EAAA,CAAA;QACNK,MAAQ,EAAA,CAAA;QACR/H,UAAW,EAAA,UAAA;gCAEXjE,GAAA,CAACiI,KAAKgE,OAAO,EAAA;YACXJ,WAAaA,EAAAA,WAAAA,CAAYvG,MAAM,CAAC,CAAC4G,aAC/BA,UAAW3G,CAAAA,MAAM,CAACG,QAAQ,CAAC,eAAA,CAAA,CAAA;AAG7B,YAAA,QAAA,gBAAA1F,GAACmM,CAAAA,YAAAA,EAAAA;gBAAaN,WAAaA,EAAAA,WAAAA;AACzB,gBAAA,QAAA,gBAAA7L,GAAC0G,CAAAA,WAAAA,EAAAA,EAAAA;;;;AAKX,CAAA;AAEA,MAAM0F,oBAAuB,GAAA,IAAA;AAC3B,IAAA,qBACEpM,GAACqM,CAAAA,MAAAA,EAAAA;AACC,QAAA,QAAA,gBAAArM,GAACsM,CAAAA,SAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAtM,GAAC4L,CAAAA,wBAAAA,EAAAA,EAAAA;;;AAIT;;;;"}
|
@@ -1774,7 +1774,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1774
1774
|
* ```
|
1775
1775
|
*
|
1776
1776
|
* @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information
|
1777
|
-
*/ const useDocumentActions = ()=>{
|
1777
|
+
*/ const useDocumentActions = (fromPreview = false, fromRelationModal = false)=>{
|
1778
1778
|
const { toggleNotification } = strapiAdmin.useNotification();
|
1779
1779
|
const { formatMessage } = reactIntl.useIntl();
|
1780
1780
|
const { trackUsage } = strapiAdmin.useTracking();
|
@@ -1932,7 +1932,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1932
1932
|
};
|
1933
1933
|
}
|
1934
1934
|
trackUsage('didPublishEntry', {
|
1935
|
-
documentId
|
1935
|
+
documentId,
|
1936
|
+
fromPreview,
|
1937
|
+
fromRelationModal
|
1936
1938
|
});
|
1937
1939
|
toggleNotification({
|
1938
1940
|
type: 'success',
|
@@ -1952,6 +1954,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1952
1954
|
}, [
|
1953
1955
|
trackUsage,
|
1954
1956
|
publishDocument,
|
1957
|
+
fromPreview,
|
1958
|
+
fromRelationModal,
|
1955
1959
|
toggleNotification,
|
1956
1960
|
formatMessage,
|
1957
1961
|
formatAPIError
|
@@ -2022,7 +2026,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2022
2026
|
}
|
2023
2027
|
trackUsage('didEditEntry', {
|
2024
2028
|
...trackerProperty,
|
2025
|
-
documentId: res.data.data.documentId
|
2029
|
+
documentId: res.data.data.documentId,
|
2030
|
+
fromPreview,
|
2031
|
+
fromRelationModal
|
2026
2032
|
});
|
2027
2033
|
toggleNotification({
|
2028
2034
|
type: 'success',
|
@@ -2046,6 +2052,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2046
2052
|
}, [
|
2047
2053
|
trackUsage,
|
2048
2054
|
updateDocument,
|
2055
|
+
fromPreview,
|
2056
|
+
fromRelationModal,
|
2049
2057
|
toggleNotification,
|
2050
2058
|
formatMessage,
|
2051
2059
|
formatAPIError
|
@@ -2187,6 +2195,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2187
2195
|
createDocument,
|
2188
2196
|
formatAPIError,
|
2189
2197
|
formatMessage,
|
2198
|
+
setCurrentStep,
|
2190
2199
|
toggleNotification,
|
2191
2200
|
trackUsage
|
2192
2201
|
]);
|
@@ -2305,7 +2314,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2305
2314
|
};
|
2306
2315
|
};
|
2307
2316
|
|
2308
|
-
const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./History-
|
2317
|
+
const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./History-DECiFmYO.js'); }).then((mod)=>({
|
2309
2318
|
default: mod.ProtectedHistoryPage
|
2310
2319
|
})));
|
2311
2320
|
/**
|
@@ -2321,7 +2330,7 @@ const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.res
|
|
2321
2330
|
}
|
2322
2331
|
];
|
2323
2332
|
|
2324
|
-
const ProtectedPreviewPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./Preview-
|
2333
|
+
const ProtectedPreviewPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./Preview-BvCbqXQY.js'); }).then((mod)=>({
|
2325
2334
|
default: mod.ProtectedPreviewPage
|
2326
2335
|
})));
|
2327
2336
|
const routes$1 = [
|
@@ -2335,25 +2344,25 @@ const routes$1 = [
|
|
2335
2344
|
}
|
2336
2345
|
];
|
2337
2346
|
|
2338
|
-
const ProtectedEditViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditViewPage-
|
2347
|
+
const ProtectedEditViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditViewPage-Cd7iCrfo.js'); }).then((mod)=>({
|
2339
2348
|
default: mod.ProtectedEditViewPage
|
2340
2349
|
})));
|
2341
|
-
const ProtectedListViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListViewPage-
|
2350
|
+
const ProtectedListViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListViewPage-BfFRaMK8.js'); }).then((mod)=>({
|
2342
2351
|
default: mod.ProtectedListViewPage
|
2343
2352
|
})));
|
2344
|
-
const ProtectedListConfiguration = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListConfigurationPage-
|
2353
|
+
const ProtectedListConfiguration = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListConfigurationPage-BiKI9-fH.js'); }).then((mod)=>({
|
2345
2354
|
default: mod.ProtectedListConfiguration
|
2346
2355
|
})));
|
2347
|
-
const ProtectedEditConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditConfigurationPage-
|
2356
|
+
const ProtectedEditConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditConfigurationPage-D_otE6ca.js'); }).then((mod)=>({
|
2348
2357
|
default: mod.ProtectedEditConfigurationPage
|
2349
2358
|
})));
|
2350
|
-
const ProtectedComponentConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ComponentConfigurationPage-
|
2359
|
+
const ProtectedComponentConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ComponentConfigurationPage-DDybTE9k.js'); }).then((mod)=>({
|
2351
2360
|
default: mod.ProtectedComponentConfigurationPage
|
2352
2361
|
})));
|
2353
|
-
const NoPermissions = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoPermissionsPage-
|
2362
|
+
const NoPermissions = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoPermissionsPage-D0T5uTtv.js'); }).then((mod)=>({
|
2354
2363
|
default: mod.NoPermissions
|
2355
2364
|
})));
|
2356
|
-
const NoContentType = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoContentTypePage-
|
2365
|
+
const NoContentType = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoContentTypePage-C-WQTH0F.js'); }).then((mod)=>({
|
2357
2366
|
default: mod.NoContentType
|
2358
2367
|
})));
|
2359
2368
|
const CollectionTypePages = ()=>{
|
@@ -2740,7 +2749,7 @@ const transformData = (data)=>{
|
|
2740
2749
|
};
|
2741
2750
|
/* -------------------------------------------------------------------------------------------------
|
2742
2751
|
* DocumentActionComponents
|
2743
|
-
* -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document, onPreview })=>{
|
2752
|
+
* -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document, onPreview, fromPreview = false, fromRelationModal = false })=>{
|
2744
2753
|
const schema = useDocumentContext('PublishAction', (state)=>state.document.schema);
|
2745
2754
|
const navigate = reactRouterDom.useNavigate();
|
2746
2755
|
const { toggleNotification } = strapiAdmin.useNotification();
|
@@ -2750,7 +2759,7 @@ const transformData = (data)=>{
|
|
2750
2759
|
const { id } = reactRouterDom.useParams();
|
2751
2760
|
const { formatMessage } = reactIntl.useIntl();
|
2752
2761
|
const canPublish = useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
|
2753
|
-
const { publish, isLoading } = useDocumentActions();
|
2762
|
+
const { publish, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
|
2754
2763
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = useLazyGetDraftRelationCountQuery();
|
2755
2764
|
const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
|
2756
2765
|
const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
|
@@ -2948,14 +2957,14 @@ PublishAction$1.position = [
|
|
2948
2957
|
'preview',
|
2949
2958
|
'relation-modal'
|
2950
2959
|
];
|
2951
|
-
const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview })=>{
|
2960
|
+
const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview, fromPreview = false, fromRelationModal = false })=>{
|
2952
2961
|
const navigate = reactRouterDom.useNavigate();
|
2953
2962
|
const { toggleNotification } = strapiAdmin.useNotification();
|
2954
2963
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2955
2964
|
const cloneMatch = reactRouterDom.useMatch(CLONE_PATH);
|
2956
2965
|
const isCloning = cloneMatch !== null;
|
2957
2966
|
const { formatMessage } = reactIntl.useIntl();
|
2958
|
-
const { create, update, clone, isLoading } = useDocumentActions();
|
2967
|
+
const { create, update, clone, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
|
2959
2968
|
const [{ query, rawQuery }] = strapiAdmin.useQueryParams();
|
2960
2969
|
const params = React__namespace.useMemo(()=>buildValidParams(query), [
|
2961
2970
|
query
|
@@ -3045,6 +3054,8 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview
|
|
3045
3054
|
cloneMatch?.params.origin,
|
3046
3055
|
collectionType,
|
3047
3056
|
create,
|
3057
|
+
currentDocumentMeta.documentId,
|
3058
|
+
currentDocumentMeta.params,
|
3048
3059
|
document,
|
3049
3060
|
documentId,
|
3050
3061
|
formatMessage,
|
@@ -3053,9 +3064,11 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview
|
|
3053
3064
|
model,
|
3054
3065
|
modified,
|
3055
3066
|
navigate,
|
3067
|
+
onPreview,
|
3056
3068
|
params,
|
3057
3069
|
rawQuery,
|
3058
3070
|
resetForm,
|
3071
|
+
rootDocumentMeta.documentId,
|
3059
3072
|
setErrors,
|
3060
3073
|
setSubmitting,
|
3061
3074
|
toggleNotification,
|
@@ -5402,7 +5415,7 @@ function __variableDynamicImportRuntime1__(path) {
|
|
5402
5415
|
case './translations/tr.json': return Promise.resolve().then(function () { return require('./tr-CkS6sLIE.js'); });
|
5403
5416
|
case './translations/uk.json': return Promise.resolve().then(function () { return require('./uk-DB6OgySY.js'); });
|
5404
5417
|
case './translations/vi.json': return Promise.resolve().then(function () { return require('./vi-BGr1X_HZ.js'); });
|
5405
|
-
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-
|
5418
|
+
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-Djj7eGpO.js'); });
|
5406
5419
|
case './translations/zh.json': return Promise.resolve().then(function () { return require('./zh-DwFu_Kfj.js'); });
|
5407
5420
|
default: return new Promise(function(resolve, reject) {
|
5408
5421
|
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
@@ -5431,7 +5444,7 @@ var index = {
|
|
5431
5444
|
app.router.addRoute({
|
5432
5445
|
path: 'content-manager/*',
|
5433
5446
|
lazy: async ()=>{
|
5434
|
-
const { Layout } = await Promise.resolve().then(function () { return require('./layout-
|
5447
|
+
const { Layout } = await Promise.resolve().then(function () { return require('./layout-DGlrPEkC.js'); });
|
5435
5448
|
return {
|
5436
5449
|
Component: Layout
|
5437
5450
|
};
|
@@ -5517,4 +5530,4 @@ exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
|
5517
5530
|
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
5518
5531
|
exports.useLazyGetDocumentQuery = useLazyGetDocumentQuery;
|
5519
5532
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
5520
|
-
//# sourceMappingURL=index-
|
5533
|
+
//# sourceMappingURL=index-CB_ymrXf.js.map
|