@strapi/content-manager 0.0.0-next.c22d1aa5024dc77092c3df7e990ad89dcd79e7b0 → 0.0.0-next.c57731c6e91ae024fa544ad986d80a3c4a489dbf
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/{CardDragPreview-DwuraT0K.js → CardDragPreview-DwuraT0K.mjs} +1 -1
- package/dist/admin/chunks/CardDragPreview-DwuraT0K.mjs.map +1 -0
- package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js → ComponentConfigurationPage-BqvYunl3.js} +4 -3
- package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js.map → ComponentConfigurationPage-BqvYunl3.js.map} +1 -1
- package/dist/admin/chunks/{ComponentConfigurationPage-Co2eC_-C.js → ComponentConfigurationPage-C9JWxciR.mjs} +9 -8
- package/dist/admin/chunks/ComponentConfigurationPage-C9JWxciR.mjs.map +1 -0
- package/dist/admin/chunks/{ComponentIcon-BZcTc4rj.js → ComponentIcon-BZcTc4rj.mjs} +1 -1
- package/dist/admin/chunks/ComponentIcon-BZcTc4rj.mjs.map +1 -0
- package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js → EditConfigurationPage-DE_FVPa6.js} +4 -3
- package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js.map → EditConfigurationPage-DE_FVPa6.js.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-zd9OLaVh.js → EditConfigurationPage-DqBbH_tt.mjs} +9 -8
- package/dist/admin/chunks/EditConfigurationPage-DqBbH_tt.mjs.map +1 -0
- package/dist/admin/chunks/{EditViewPage-DsBKmSPb.js → EditViewPage-BPrkSLuI.js} +7 -10
- package/dist/admin/chunks/EditViewPage-BPrkSLuI.js.map +1 -0
- package/dist/admin/chunks/{EditViewPage-kAIaYTg0.js → EditViewPage-CxmB65b6.mjs} +11 -14
- package/dist/admin/chunks/EditViewPage-CxmB65b6.mjs.map +1 -0
- package/dist/admin/chunks/{FieldTypeIcon-BY6MrVF4.js → FieldTypeIcon-BY6MrVF4.mjs} +1 -1
- package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.mjs.map +1 -0
- package/dist/admin/chunks/{Form-BPIhJKyf.js → Form-CnU6eQgF.js} +2 -2
- package/dist/admin/chunks/{Form-BPIhJKyf.js.map → Form-CnU6eQgF.js.map} +1 -1
- package/dist/admin/chunks/{Form-BO69oITe.js → Form-DBte52Jp.mjs} +5 -5
- package/dist/admin/chunks/Form-DBte52Jp.mjs.map +1 -0
- package/dist/admin/chunks/{History-BzvpM-Gw.js → History-BZnq2Bi2.mjs} +11 -11
- package/dist/admin/chunks/History-BZnq2Bi2.mjs.map +1 -0
- package/dist/admin/chunks/{History-DBQ96jv2.js → History-CRk6-vwW.js} +6 -6
- package/dist/admin/chunks/{History-DBQ96jv2.js.map → History-CRk6-vwW.js.map} +1 -1
- package/dist/admin/chunks/{Input-Dh1MtWno.js → Input-CoyG0mFB.js} +748 -313
- package/dist/admin/chunks/Input-CoyG0mFB.js.map +1 -0
- package/dist/admin/chunks/{Input-BlDcbhUC.js → Input-CquZCZx3.mjs} +755 -320
- package/dist/admin/chunks/Input-CquZCZx3.mjs.map +1 -0
- package/dist/admin/chunks/{ListConfigurationPage-8d3BsQIr.js → ListConfigurationPage-CyWNH3Mv.js} +3 -2
- package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js.map → ListConfigurationPage-CyWNH3Mv.js.map} +1 -1
- package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js → ListConfigurationPage-T4REP8DG.mjs} +8 -7
- package/dist/admin/chunks/ListConfigurationPage-T4REP8DG.mjs.map +1 -0
- package/dist/admin/chunks/{ListViewPage-CS1ED-vI.js → ListViewPage-Br5s3p1I.js} +4 -3
- package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js.map → ListViewPage-Br5s3p1I.js.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js → ListViewPage-eJAJfQ91.mjs} +6 -5
- package/dist/admin/chunks/ListViewPage-eJAJfQ91.mjs.map +1 -0
- package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js → NoContentTypePage-BZlQtroN.js} +3 -2
- package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js.map → NoContentTypePage-BZlQtroN.js.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-DjdXr1-j.js → NoContentTypePage-Ccor5E27.mjs} +3 -2
- package/dist/admin/chunks/NoContentTypePage-Ccor5E27.mjs.map +1 -0
- package/dist/admin/chunks/{NoPermissionsPage-C5dC0MtL.js → NoPermissionsPage-BeqSJ6Je.js} +3 -2
- package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js.map → NoPermissionsPage-BeqSJ6Je.js.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js → NoPermissionsPage-BpCoaqBJ.mjs} +3 -2
- package/dist/admin/chunks/NoPermissionsPage-BpCoaqBJ.mjs.map +1 -0
- package/dist/admin/chunks/{Preview-DBvmhR7Q.js → Preview-DYyTSe9I.js} +236 -92
- package/dist/admin/chunks/Preview-DYyTSe9I.js.map +1 -0
- package/dist/admin/chunks/{Preview-C9kXTY6C.js → Preview-VVd4rU0x.mjs} +244 -100
- package/dist/admin/chunks/Preview-VVd4rU0x.mjs.map +1 -0
- package/dist/admin/chunks/{Relations-Cn0atFpd.js → Relations-CiBR_0b1.mjs} +471 -7
- package/dist/admin/chunks/Relations-CiBR_0b1.mjs.map +1 -0
- package/dist/admin/chunks/{Relations-XHxDKEvT.js → Relations-PF93YcFV.js} +469 -4
- package/dist/admin/chunks/Relations-PF93YcFV.js.map +1 -0
- package/dist/admin/chunks/{ar-DckYq_WK.js → ar-DckYq_WK.mjs} +1 -1
- package/dist/admin/chunks/ar-DckYq_WK.mjs.map +1 -0
- package/dist/admin/chunks/{ca-DviY7mRj.js → ca-DviY7mRj.mjs} +1 -1
- package/dist/admin/chunks/ca-DviY7mRj.mjs.map +1 -0
- package/dist/admin/chunks/{cs-C7OSYFQ7.js → cs-C7OSYFQ7.mjs} +1 -1
- package/dist/admin/chunks/cs-C7OSYFQ7.mjs.map +1 -0
- package/dist/admin/chunks/{de-5QRlDHyR.js → de-5QRlDHyR.mjs} +1 -1
- package/dist/admin/chunks/de-5QRlDHyR.mjs.map +1 -0
- package/dist/admin/chunks/{en-LfhocNG2.js → en-CImiNxXE.mjs} +3 -1
- package/dist/admin/chunks/en-CImiNxXE.mjs.map +1 -0
- package/dist/admin/chunks/{en-C1CjdAtC.js → en-CLf4SuMQ.js} +3 -1
- package/dist/admin/chunks/{en-LfhocNG2.js.map → en-CLf4SuMQ.js.map} +1 -1
- package/dist/admin/chunks/{es-DkoWSExG.js → es-DkoWSExG.mjs} +1 -1
- package/dist/admin/chunks/es-DkoWSExG.mjs.map +1 -0
- package/dist/admin/chunks/{eu-BG1xX7HK.js → eu-BG1xX7HK.mjs} +1 -1
- package/dist/admin/chunks/eu-BG1xX7HK.mjs.map +1 -0
- package/dist/admin/chunks/{fr-CFdRaRVj.js → fr-CFdRaRVj.mjs} +1 -1
- package/dist/admin/chunks/fr-CFdRaRVj.mjs.map +1 -0
- package/dist/admin/chunks/{gu-D5MMMXRs.js → gu-D5MMMXRs.mjs} +1 -1
- package/dist/admin/chunks/gu-D5MMMXRs.mjs.map +1 -0
- package/dist/admin/chunks/{hi-lp17SCjr.js → hi-lp17SCjr.mjs} +1 -1
- package/dist/admin/chunks/hi-lp17SCjr.mjs.map +1 -0
- package/dist/admin/chunks/{hooks-DMvik5y_.js → hooks-DMvik5y_.mjs} +1 -1
- package/dist/admin/chunks/hooks-DMvik5y_.mjs.map +1 -0
- package/dist/admin/chunks/{hu-CLka1U2C.js → hu-CLka1U2C.mjs} +1 -1
- package/dist/admin/chunks/hu-CLka1U2C.mjs.map +1 -0
- package/dist/admin/chunks/{id-USfY9m1g.js → id-USfY9m1g.mjs} +1 -1
- package/dist/admin/chunks/id-USfY9m1g.mjs.map +1 -0
- package/dist/admin/chunks/{index-BczuAULz.js → index-Cv0O6gf0.js} +93 -43
- package/dist/admin/chunks/index-Cv0O6gf0.js.map +1 -0
- package/dist/admin/chunks/{index-BkyR-Bnu.js → index-Dz9dwt8b.mjs} +122 -73
- package/dist/admin/chunks/index-Dz9dwt8b.mjs.map +1 -0
- package/dist/admin/chunks/{it-BAHrwmYS.js → it-BAHrwmYS.mjs} +1 -1
- package/dist/admin/chunks/it-BAHrwmYS.mjs.map +1 -0
- package/dist/admin/chunks/{ja-BWKmBJFT.js → ja-BWKmBJFT.mjs} +1 -1
- package/dist/admin/chunks/ja-BWKmBJFT.mjs.map +1 -0
- package/dist/admin/chunks/{ko-CgADGBNt.js → ko-CgADGBNt.mjs} +1 -1
- package/dist/admin/chunks/ko-CgADGBNt.mjs.map +1 -0
- package/dist/admin/chunks/{layout-DcDoRT8g.js → layout-CzYR-gGR.js} +5 -4
- package/dist/admin/chunks/{layout-DcDoRT8g.js.map → layout-CzYR-gGR.js.map} +1 -1
- package/dist/admin/chunks/{layout-fghBgRgX.js → layout-Jq9GIk_m.mjs} +8 -7
- package/dist/admin/chunks/layout-Jq9GIk_m.mjs.map +1 -0
- package/dist/admin/chunks/{ml-CnhCfOn_.js → ml-CnhCfOn_.mjs} +1 -1
- package/dist/admin/chunks/ml-CnhCfOn_.mjs.map +1 -0
- package/dist/admin/chunks/{ms-Bh09NFff.js → ms-Bh09NFff.mjs} +1 -1
- package/dist/admin/chunks/ms-Bh09NFff.mjs.map +1 -0
- package/dist/admin/chunks/{nl-C8HYflTc.js → nl-C8HYflTc.mjs} +1 -1
- package/dist/admin/chunks/nl-C8HYflTc.mjs.map +1 -0
- package/dist/admin/chunks/{objects-wl73iEma.js → objects-wl73iEma.mjs} +1 -1
- package/dist/admin/chunks/objects-wl73iEma.mjs.map +1 -0
- package/dist/admin/chunks/{pl-MFCZJZuZ.js → pl-MFCZJZuZ.mjs} +1 -1
- package/dist/admin/chunks/pl-MFCZJZuZ.mjs.map +1 -0
- package/dist/admin/chunks/{pt-BR-CcotyBGJ.js → pt-BR-CcotyBGJ.mjs} +1 -1
- package/dist/admin/chunks/pt-BR-CcotyBGJ.mjs.map +1 -0
- package/dist/admin/chunks/{pt-HbmgeiYO.js → pt-HbmgeiYO.mjs} +1 -1
- package/dist/admin/chunks/pt-HbmgeiYO.mjs.map +1 -0
- package/dist/admin/chunks/{relations-CgaydhiM.js → relations-CMn4X6LA.js} +2 -2
- package/dist/admin/chunks/{relations-CgaydhiM.js.map → relations-CMn4X6LA.js.map} +1 -1
- package/dist/admin/chunks/{relations-DPVgU_rq.js → relations-Y5L4AlFb.mjs} +2 -2
- package/dist/admin/chunks/relations-Y5L4AlFb.mjs.map +1 -0
- package/dist/admin/chunks/{ru-CB4BUyQp.js → ru-CB4BUyQp.mjs} +1 -1
- package/dist/admin/chunks/{ru-CB4BUyQp.js.map → ru-CB4BUyQp.mjs.map} +1 -1
- package/dist/admin/chunks/{sa-n_aPA-pU.js → sa-n_aPA-pU.mjs} +1 -1
- package/dist/admin/chunks/sa-n_aPA-pU.mjs.map +1 -0
- package/dist/admin/chunks/{sk-tn_BDjE2.js → sk-tn_BDjE2.mjs} +1 -1
- package/dist/admin/chunks/sk-tn_BDjE2.mjs.map +1 -0
- package/dist/admin/chunks/{sv-cq4ZrQRd.js → sv-cq4ZrQRd.mjs} +1 -1
- package/dist/admin/chunks/sv-cq4ZrQRd.mjs.map +1 -0
- package/dist/admin/chunks/{th-mUH7hEtc.js → th-mUH7hEtc.mjs} +1 -1
- package/dist/admin/chunks/th-mUH7hEtc.mjs.map +1 -0
- package/dist/admin/chunks/{tr-Yt38daxh.js → tr-Yt38daxh.mjs} +1 -1
- package/dist/admin/chunks/tr-Yt38daxh.mjs.map +1 -0
- package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
- package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
- package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
- package/dist/admin/chunks/{en-C1CjdAtC.js.map → uk-DB6OgySY.js.map} +1 -1
- package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.js → useDragAndDrop-HYwNDExe.mjs} +1 -1
- package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +1 -0
- package/dist/admin/chunks/{usePrev-Bjw2dhmq.js → usePrev-Bjw2dhmq.mjs} +1 -1
- package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +1 -0
- package/dist/admin/chunks/{vi-CvBGlTjr.js → vi-CvBGlTjr.mjs} +1 -1
- package/dist/admin/chunks/vi-CvBGlTjr.mjs.map +1 -0
- package/dist/admin/chunks/{zh-BmF-sHaT.js → zh-BmF-sHaT.mjs} +1 -1
- package/dist/admin/chunks/zh-BmF-sHaT.mjs.map +1 -0
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.js → zh-Hans-CI0HKio3.mjs} +1 -1
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.js.map → zh-Hans-CI0HKio3.mjs.map} +1 -1
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/InjectionZone.d.ts +7 -1
- package/dist/admin/src/content-manager.d.ts +4 -0
- package/dist/admin/src/hooks/useDocument.d.ts +2 -0
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +11 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +49 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +1 -2
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +2 -1
- package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
- package/dist/admin/src/preview/pages/Preview.d.ts +4 -0
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/package.json +8 -8
- package/dist/admin/chunks/CardDragPreview-DwuraT0K.js.map +0 -1
- package/dist/admin/chunks/ComponentConfigurationPage-Co2eC_-C.js.map +0 -1
- package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js.map +0 -1
- package/dist/admin/chunks/EditConfigurationPage-zd9OLaVh.js.map +0 -1
- package/dist/admin/chunks/EditViewPage-DsBKmSPb.js.map +0 -1
- package/dist/admin/chunks/EditViewPage-kAIaYTg0.js.map +0 -1
- package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js.map +0 -1
- package/dist/admin/chunks/Form-BO69oITe.js.map +0 -1
- package/dist/admin/chunks/History-BzvpM-Gw.js.map +0 -1
- package/dist/admin/chunks/Input-BlDcbhUC.js.map +0 -1
- package/dist/admin/chunks/Input-Dh1MtWno.js.map +0 -1
- package/dist/admin/chunks/ListConfigurationPage-8d3BsQIr.js.map +0 -1
- package/dist/admin/chunks/ListViewPage-CS1ED-vI.js.map +0 -1
- package/dist/admin/chunks/NoContentTypePage-DjdXr1-j.js.map +0 -1
- package/dist/admin/chunks/NoPermissionsPage-C5dC0MtL.js.map +0 -1
- package/dist/admin/chunks/Preview-C9kXTY6C.js.map +0 -1
- package/dist/admin/chunks/Preview-DBvmhR7Q.js.map +0 -1
- package/dist/admin/chunks/Relations-Cn0atFpd.js.map +0 -1
- package/dist/admin/chunks/Relations-XHxDKEvT.js.map +0 -1
- package/dist/admin/chunks/ar-DckYq_WK.js.map +0 -1
- package/dist/admin/chunks/ca-DviY7mRj.js.map +0 -1
- package/dist/admin/chunks/cs-C7OSYFQ7.js.map +0 -1
- package/dist/admin/chunks/de-5QRlDHyR.js.map +0 -1
- package/dist/admin/chunks/es-DkoWSExG.js.map +0 -1
- package/dist/admin/chunks/eu-BG1xX7HK.js.map +0 -1
- package/dist/admin/chunks/fr-CFdRaRVj.js.map +0 -1
- package/dist/admin/chunks/gu-D5MMMXRs.js.map +0 -1
- package/dist/admin/chunks/hi-lp17SCjr.js.map +0 -1
- package/dist/admin/chunks/hooks-DMvik5y_.js.map +0 -1
- package/dist/admin/chunks/hu-CLka1U2C.js.map +0 -1
- package/dist/admin/chunks/id-USfY9m1g.js.map +0 -1
- package/dist/admin/chunks/index-BczuAULz.js.map +0 -1
- package/dist/admin/chunks/index-BkyR-Bnu.js.map +0 -1
- package/dist/admin/chunks/it-BAHrwmYS.js.map +0 -1
- package/dist/admin/chunks/ja-BWKmBJFT.js.map +0 -1
- package/dist/admin/chunks/ko-CgADGBNt.js.map +0 -1
- package/dist/admin/chunks/layout-fghBgRgX.js.map +0 -1
- package/dist/admin/chunks/ml-CnhCfOn_.js.map +0 -1
- package/dist/admin/chunks/ms-Bh09NFff.js.map +0 -1
- package/dist/admin/chunks/nl-C8HYflTc.js.map +0 -1
- package/dist/admin/chunks/objects-wl73iEma.js.map +0 -1
- package/dist/admin/chunks/pl-MFCZJZuZ.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CcotyBGJ.js.map +0 -1
- package/dist/admin/chunks/pt-HbmgeiYO.js.map +0 -1
- package/dist/admin/chunks/relations-DPVgU_rq.js.map +0 -1
- package/dist/admin/chunks/sa-n_aPA-pU.js.map +0 -1
- package/dist/admin/chunks/sk-tn_BDjE2.js.map +0 -1
- package/dist/admin/chunks/sv-cq4ZrQRd.js.map +0 -1
- package/dist/admin/chunks/th-mUH7hEtc.js.map +0 -1
- package/dist/admin/chunks/tr-Yt38daxh.js.map +0 -1
- package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
- package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
- package/dist/admin/chunks/uk-Cpgmm7gE.js +0 -140
- package/dist/admin/chunks/uk-Cpgmm7gE.js.map +0 -1
- package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js.map +0 -1
- package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +0 -1
- package/dist/admin/chunks/vi-CvBGlTjr.js.map +0 -1
- package/dist/admin/chunks/zh-BmF-sHaT.js.map +0 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +0 -49
@@ -1,25 +1,25 @@
|
|
1
|
-
import {
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
2
2
|
import * as React from 'react';
|
3
|
-
import { useNotification, useClipboard,
|
4
|
-
import {
|
3
|
+
import { useStrapiApp, useQueryParams, useNotification, useClipboard, DescriptionComponentRenderer, useHistory, createContext, useRBAC, Page, Form } from '@strapi/admin/strapi-admin';
|
4
|
+
import { Box, Typography, Tabs, Flex, IconButton, Grid, Portal, FocusTrap } from '@strapi/design-system';
|
5
|
+
import { Link, Cross, ArrowLineLeft } from '@strapi/icons';
|
5
6
|
import { useIntl } from 'react-intl';
|
6
|
-
import { Link as Link$1, useParams } from 'react-router-dom';
|
7
|
-
import { D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, N as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout } from './index-BkyR-Bnu.js';
|
8
|
-
import { Link, Cross } from '@strapi/icons';
|
9
|
-
import { stringify } from 'qs';
|
7
|
+
import { Link as Link$1, useParams, useLocation } from 'react-router-dom';
|
10
8
|
import { styled } from 'styled-components';
|
11
|
-
import {
|
9
|
+
import { I as InjectionZone, N as DocumentActionButton, D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, O as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout, i as createYupSchema } from './index-Dz9dwt8b.mjs';
|
10
|
+
import { F as FormLayout } from './Input-CquZCZx3.mjs';
|
11
|
+
import { stringify } from 'qs';
|
12
|
+
import { getDocumentStatus } from './EditViewPage-CxmB65b6.mjs';
|
12
13
|
import 'lodash/fp/mapValues';
|
13
14
|
import 'yup';
|
14
15
|
import 'fractional-indexing';
|
15
16
|
import 'lodash/fp/pipe';
|
16
17
|
import 'date-fns';
|
17
18
|
import '@reduxjs/toolkit';
|
18
|
-
import '
|
19
|
+
import 'prismjs';
|
19
20
|
import 'slate';
|
20
21
|
import 'slate-history';
|
21
22
|
import 'slate-react';
|
22
|
-
import 'prismjs';
|
23
23
|
import 'prismjs/themes/prism-solarizedlight.css';
|
24
24
|
import 'prismjs/components/prism-asmatmel';
|
25
25
|
import 'prismjs/components/prism-bash';
|
@@ -70,18 +70,18 @@ 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-Bjw2dhmq.
|
74
|
-
import './useDragAndDrop-HYwNDExe.
|
73
|
+
import './usePrev-Bjw2dhmq.mjs';
|
74
|
+
import './useDragAndDrop-HYwNDExe.mjs';
|
75
75
|
import 'react-dnd';
|
76
76
|
import '@radix-ui/react-toolbar';
|
77
77
|
import 'react-dnd-html5-backend';
|
78
|
-
import './objects-wl73iEma.
|
78
|
+
import './objects-wl73iEma.mjs';
|
79
79
|
import 'lodash/clone';
|
80
80
|
import 'lodash/toPath';
|
81
|
-
import './Relations-
|
81
|
+
import './Relations-CiBR_0b1.mjs';
|
82
82
|
import 'react-window';
|
83
|
-
import './relations-
|
84
|
-
import './ComponentIcon-BZcTc4rj.
|
83
|
+
import './relations-Y5L4AlFb.mjs';
|
84
|
+
import './ComponentIcon-BZcTc4rj.mjs';
|
85
85
|
import '@strapi/icons/symbols';
|
86
86
|
import 'codemirror5';
|
87
87
|
import 'sanitize-html';
|
@@ -99,30 +99,6 @@ import 'markdown-it-sup';
|
|
99
99
|
import 'highlight.js/styles/solarized-dark.css';
|
100
100
|
import 'codemirror5/addon/display/placeholder';
|
101
101
|
|
102
|
-
const UnstablePreviewContent = ()=>{
|
103
|
-
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
104
|
-
const { formatMessage } = useIntl();
|
105
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
106
|
-
height: "100%",
|
107
|
-
children: [
|
108
|
-
/*#__PURE__*/ jsx(Box, {
|
109
|
-
flex: 1,
|
110
|
-
children: "TODO: Side editor"
|
111
|
-
}),
|
112
|
-
/*#__PURE__*/ jsx(Box, {
|
113
|
-
src: previewUrl,
|
114
|
-
title: formatMessage({
|
115
|
-
id: 'content-manager.preview.panel.title',
|
116
|
-
defaultMessage: 'Preview'
|
117
|
-
}),
|
118
|
-
flex: 1,
|
119
|
-
height: "100%",
|
120
|
-
borderWidth: 0,
|
121
|
-
tag: "iframe"
|
122
|
-
}, previewUrl)
|
123
|
-
]
|
124
|
-
});
|
125
|
-
};
|
126
102
|
const PreviewContent = ()=>{
|
127
103
|
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
128
104
|
const { formatMessage } = useIntl();
|
@@ -219,42 +195,45 @@ const PreviewTabs = ()=>{
|
|
219
195
|
if (!hasDraftAndPublish) {
|
220
196
|
return null;
|
221
197
|
}
|
222
|
-
return /*#__PURE__*/ jsx(
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
198
|
+
return /*#__PURE__*/ jsx(Tabs.Root, {
|
199
|
+
variant: "simple",
|
200
|
+
value: query.status || 'draft',
|
201
|
+
onValueChange: handleTabChange,
|
202
|
+
children: /*#__PURE__*/ jsxs(Tabs.List, {
|
203
|
+
"aria-label": formatMessage({
|
204
|
+
id: 'preview.tabs.label',
|
205
|
+
defaultMessage: 'Document status'
|
206
|
+
}),
|
207
|
+
children: [
|
208
|
+
/*#__PURE__*/ jsx(StatusTab, {
|
209
|
+
value: "draft",
|
210
|
+
children: formatMessage({
|
211
|
+
id: 'content-manager.containers.List.draft',
|
212
|
+
defaultMessage: 'draft'
|
213
|
+
})
|
231
214
|
}),
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
})
|
239
|
-
}),
|
240
|
-
/*#__PURE__*/ jsx(StatusTab, {
|
241
|
-
value: "published",
|
242
|
-
disabled: documentStatus === 'draft',
|
243
|
-
children: formatMessage({
|
244
|
-
id: 'content-manager.containers.List.published',
|
245
|
-
defaultMessage: 'published'
|
246
|
-
})
|
215
|
+
/*#__PURE__*/ jsx(StatusTab, {
|
216
|
+
value: "published",
|
217
|
+
disabled: documentStatus === 'draft',
|
218
|
+
children: formatMessage({
|
219
|
+
id: 'content-manager.containers.List.published',
|
220
|
+
defaultMessage: 'published'
|
247
221
|
})
|
248
|
-
|
249
|
-
|
222
|
+
})
|
223
|
+
]
|
250
224
|
})
|
251
225
|
});
|
252
226
|
};
|
253
227
|
/* -------------------------------------------------------------------------------------------------
|
254
228
|
* PreviewHeader
|
255
229
|
* -----------------------------------------------------------------------------------------------*/ const UnstablePreviewHeader = ()=>{
|
256
|
-
// Get the document title
|
257
230
|
const title = usePreviewContext('PreviewHeader', (state)=>state.title);
|
231
|
+
const document = usePreviewContext('PreviewHeader', (state)=>state.document);
|
232
|
+
const schema = usePreviewContext('PreviewHeader', (state)=>state.schema);
|
233
|
+
const meta = usePreviewContext('PreviewHeader', (state)=>state.meta);
|
234
|
+
const plugins = useStrapiApp('PreviewHeader', (state)=>state.plugins);
|
235
|
+
const iframeRef = usePreviewContext('PreviewHeader', (state)=>state.iframeRef);
|
236
|
+
const [{ query }] = useQueryParams();
|
258
237
|
const { formatMessage } = useIntl();
|
259
238
|
const { toggleNotification } = useNotification();
|
260
239
|
const { copy } = useClipboard();
|
@@ -268,7 +247,23 @@ const PreviewTabs = ()=>{
|
|
268
247
|
type: 'success'
|
269
248
|
});
|
270
249
|
};
|
250
|
+
const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;
|
251
|
+
const documentActionProps = {
|
252
|
+
activeTab: query.status ?? null,
|
253
|
+
collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',
|
254
|
+
model: schema.uid,
|
255
|
+
documentId: document.documentId,
|
256
|
+
document,
|
257
|
+
meta,
|
258
|
+
onPreview: ()=>{
|
259
|
+
iframeRef?.current?.contentWindow?.postMessage({
|
260
|
+
type: 'strapiUpdate'
|
261
|
+
}, // The iframe origin is safe to use since it must be provided through the allowedOrigins config
|
262
|
+
new URL(iframeRef.current.src).origin);
|
263
|
+
}
|
264
|
+
};
|
271
265
|
return /*#__PURE__*/ jsxs(Flex, {
|
266
|
+
height: "48px",
|
272
267
|
gap: 4,
|
273
268
|
background: "neutral0",
|
274
269
|
borderColor: "neutral150",
|
@@ -296,17 +291,60 @@ const PreviewTabs = ()=>{
|
|
296
291
|
/*#__PURE__*/ jsxs(Flex, {
|
297
292
|
flex: 1,
|
298
293
|
paddingRight: 2,
|
299
|
-
|
294
|
+
gap: 2,
|
295
|
+
justifyContent: hasDraftAndPublish ? 'space-between' : 'flex-end',
|
300
296
|
children: [
|
301
|
-
/*#__PURE__*/ jsx(
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
297
|
+
/*#__PURE__*/ jsx(Flex, {
|
298
|
+
flex: "1 1 70%",
|
299
|
+
children: /*#__PURE__*/ jsx(PreviewTabs, {})
|
300
|
+
}),
|
301
|
+
/*#__PURE__*/ jsxs(Flex, {
|
302
|
+
gap: 2,
|
303
|
+
children: [
|
304
|
+
/*#__PURE__*/ jsx(IconButton, {
|
305
|
+
type: "button",
|
306
|
+
label: formatMessage({
|
307
|
+
id: 'preview.copy.label',
|
308
|
+
defaultMessage: 'Copy preview link'
|
309
|
+
}),
|
310
|
+
onClick: handleCopyLink,
|
311
|
+
children: /*#__PURE__*/ jsx(Link, {})
|
312
|
+
}),
|
313
|
+
/*#__PURE__*/ jsx(InjectionZone, {
|
314
|
+
area: "preview.actions"
|
315
|
+
}),
|
316
|
+
/*#__PURE__*/ jsx(DescriptionComponentRenderer, {
|
317
|
+
props: documentActionProps,
|
318
|
+
descriptions: plugins['content-manager'].apis.getDocumentActions('preview'),
|
319
|
+
children: (actions)=>{
|
320
|
+
const filteredActions = actions.filter((action)=>[
|
321
|
+
action.position
|
322
|
+
].flat().includes('preview'));
|
323
|
+
const [primaryAction, secondaryAction] = filteredActions;
|
324
|
+
if (!primaryAction && !secondaryAction) return null;
|
325
|
+
// Both actions are available when draft and publish enabled
|
326
|
+
if (primaryAction && secondaryAction) {
|
327
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
328
|
+
children: [
|
329
|
+
/*#__PURE__*/ jsx(DocumentActionButton, {
|
330
|
+
...secondaryAction,
|
331
|
+
variant: secondaryAction.variant || 'secondary'
|
332
|
+
}),
|
333
|
+
/*#__PURE__*/ jsx(DocumentActionButton, {
|
334
|
+
...primaryAction,
|
335
|
+
variant: primaryAction.variant || 'default'
|
336
|
+
})
|
337
|
+
]
|
338
|
+
});
|
339
|
+
}
|
340
|
+
// Otherwise we just have the save action
|
341
|
+
return /*#__PURE__*/ jsx(DocumentActionButton, {
|
342
|
+
...primaryAction,
|
343
|
+
variant: primaryAction.variant || 'secondary'
|
344
|
+
});
|
345
|
+
}
|
346
|
+
})
|
347
|
+
]
|
310
348
|
})
|
311
349
|
]
|
312
350
|
})
|
@@ -396,8 +434,16 @@ const TitleContainer = styled(Flex)`
|
|
396
434
|
const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
397
435
|
/* -------------------------------------------------------------------------------------------------
|
398
436
|
* PreviewPage
|
399
|
-
* -----------------------------------------------------------------------------------------------*/ const
|
437
|
+
* -----------------------------------------------------------------------------------------------*/ const AnimatedArrow = styled(ArrowLineLeft)`
|
438
|
+
will-change: transform;
|
439
|
+
rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
|
440
|
+
transition: rotate 0.2s ease-in-out;
|
441
|
+
`;
|
442
|
+
const PreviewPage = ()=>{
|
443
|
+
const location = useLocation();
|
400
444
|
const { formatMessage } = useIntl();
|
445
|
+
const iframeRef = React.useRef(null);
|
446
|
+
const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
|
401
447
|
// Read all the necessary data from the URL to find the right preview URL
|
402
448
|
const { slug: model, id: documentId, collectionType } = useParams();
|
403
449
|
const [{ query }] = useQueryParams();
|
@@ -431,16 +477,28 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
|
431
477
|
params
|
432
478
|
});
|
433
479
|
const documentLayoutResponse = useDocumentLayout(model);
|
434
|
-
|
480
|
+
const isLoading = previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;
|
481
|
+
if (isLoading && !documentResponse.document?.documentId) {
|
435
482
|
return /*#__PURE__*/ jsx(Page.Loading, {});
|
436
483
|
}
|
437
|
-
|
484
|
+
const initialValues = documentResponse.getInitialFormValues();
|
485
|
+
if (previewUrlResponse.error || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema || !initialValues) {
|
438
486
|
return /*#__PURE__*/ jsx(Page.Error, {});
|
439
487
|
}
|
440
488
|
if (!previewUrlResponse.data?.data?.url) {
|
441
489
|
return /*#__PURE__*/ jsx(Page.NoData, {});
|
442
490
|
}
|
443
491
|
const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);
|
492
|
+
const validateSync = (values, options)=>{
|
493
|
+
const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
|
494
|
+
status: documentResponse.document?.status,
|
495
|
+
...options
|
496
|
+
});
|
497
|
+
return yupSchema.validateSync(values, {
|
498
|
+
abortEarly: false
|
499
|
+
});
|
500
|
+
};
|
501
|
+
const previewUrl = previewUrlResponse.data.data.url;
|
444
502
|
return /*#__PURE__*/ jsxs(Fragment, {
|
445
503
|
children: [
|
446
504
|
/*#__PURE__*/ jsx(Page.Title, {
|
@@ -452,25 +510,103 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
|
452
510
|
})
|
453
511
|
}),
|
454
512
|
/*#__PURE__*/ jsx(PreviewProvider, {
|
455
|
-
url:
|
513
|
+
url: previewUrl,
|
456
514
|
document: documentResponse.document,
|
457
515
|
title: documentTitle,
|
458
516
|
meta: documentResponse.meta,
|
459
517
|
schema: documentResponse.schema,
|
460
|
-
|
461
|
-
|
518
|
+
layout: documentLayoutResponse.edit,
|
519
|
+
iframeRef: iframeRef,
|
520
|
+
children: /*#__PURE__*/ jsx(Form, {
|
521
|
+
method: "PUT",
|
522
|
+
disabled: query.status === 'published' && documentResponse && documentResponse.document.status === 'published',
|
523
|
+
initialValues: documentResponse.getInitialFormValues(),
|
524
|
+
initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
|
462
525
|
height: "100%",
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
526
|
+
validate: (values, options)=>{
|
527
|
+
const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
|
528
|
+
status: documentResponse.document?.status,
|
529
|
+
...options
|
530
|
+
});
|
531
|
+
return yupSchema.validate(values, {
|
532
|
+
abortEarly: false
|
533
|
+
});
|
534
|
+
},
|
535
|
+
children: /*#__PURE__*/ jsx(Flex, {
|
536
|
+
direction: "column",
|
537
|
+
height: "100%",
|
538
|
+
alignItems: "stretch",
|
539
|
+
children: window.strapi.future.isEnabled('unstablePreviewSideEditor') ? /*#__PURE__*/ jsxs(Fragment, {
|
540
|
+
children: [
|
541
|
+
/*#__PURE__*/ jsx(UnstablePreviewHeader, {}),
|
542
|
+
/*#__PURE__*/ jsxs(Flex, {
|
543
|
+
flex: 1,
|
544
|
+
overflow: "auto",
|
545
|
+
alignItems: "stretch",
|
546
|
+
children: [
|
547
|
+
/*#__PURE__*/ jsx(Box, {
|
548
|
+
overflow: "auto",
|
549
|
+
width: isSideEditorOpen ? '50%' : 0,
|
550
|
+
borderWidth: "0 1px 0 0",
|
551
|
+
borderColor: "neutral150",
|
552
|
+
paddingTop: 6,
|
553
|
+
paddingBottom: 6,
|
554
|
+
// Remove horizontal padding when the editor is closed or it won't fully disappear
|
555
|
+
paddingLeft: isSideEditorOpen ? 6 : 0,
|
556
|
+
paddingRight: isSideEditorOpen ? 6 : 0,
|
557
|
+
transition: "all 0.2s ease-in-out",
|
558
|
+
children: /*#__PURE__*/ jsx(FormLayout, {
|
559
|
+
layout: documentLayoutResponse.edit.layout,
|
560
|
+
hasBackground: true
|
561
|
+
})
|
562
|
+
}),
|
563
|
+
/*#__PURE__*/ jsxs(Box, {
|
564
|
+
position: "relative",
|
565
|
+
flex: 1,
|
566
|
+
height: "100%",
|
567
|
+
overflow: "hidden",
|
568
|
+
children: [
|
569
|
+
/*#__PURE__*/ jsx(Box, {
|
570
|
+
"data-testid": "preview-iframe",
|
571
|
+
ref: iframeRef,
|
572
|
+
src: previewUrl,
|
573
|
+
title: formatMessage({
|
574
|
+
id: 'content-manager.preview.panel.title',
|
575
|
+
defaultMessage: 'Preview'
|
576
|
+
}),
|
577
|
+
width: "100%",
|
578
|
+
height: "100%",
|
579
|
+
borderWidth: 0,
|
580
|
+
tag: "iframe"
|
581
|
+
}, previewUrl),
|
582
|
+
/*#__PURE__*/ jsx(IconButton, {
|
583
|
+
variant: "tertiary",
|
584
|
+
label: formatMessage(isSideEditorOpen ? {
|
585
|
+
id: 'content-manager.preview.content.close-editor',
|
586
|
+
defaultMessage: 'Close editor'
|
587
|
+
} : {
|
588
|
+
id: 'content-manager.preview.content.open-editor',
|
589
|
+
defaultMessage: 'Open editor'
|
590
|
+
}),
|
591
|
+
onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
|
592
|
+
position: "absolute",
|
593
|
+
top: 2,
|
594
|
+
left: 2,
|
595
|
+
children: /*#__PURE__*/ jsx(AnimatedArrow, {
|
596
|
+
isSideEditorOpen: isSideEditorOpen
|
597
|
+
})
|
598
|
+
})
|
599
|
+
]
|
600
|
+
})
|
601
|
+
]
|
602
|
+
})
|
603
|
+
]
|
604
|
+
}) : /*#__PURE__*/ jsxs(Fragment, {
|
605
|
+
children: [
|
606
|
+
/*#__PURE__*/ jsx(PreviewHeader, {}),
|
607
|
+
/*#__PURE__*/ jsx(PreviewContent, {})
|
608
|
+
]
|
609
|
+
})
|
474
610
|
})
|
475
611
|
})
|
476
612
|
})
|
@@ -485,6 +621,14 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
|
485
621
|
{
|
486
622
|
action: 'plugin::content-manager.explorer.read',
|
487
623
|
subject: model
|
624
|
+
},
|
625
|
+
{
|
626
|
+
action: 'plugin::content-manager.explorer.update',
|
627
|
+
subject: model
|
628
|
+
},
|
629
|
+
{
|
630
|
+
action: 'plugin::content-manager.explorer.publish',
|
631
|
+
subject: model
|
488
632
|
}
|
489
633
|
]);
|
490
634
|
if (isLoading) {
|
@@ -511,11 +655,11 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
|
511
655
|
zIndex: 2,
|
512
656
|
background: "neutral0",
|
513
657
|
children: /*#__PURE__*/ jsx(Page.Protect, {
|
514
|
-
permissions: permissions,
|
515
|
-
children:
|
516
|
-
|
517
|
-
|
518
|
-
|
658
|
+
permissions: permissions.filter((permission)=>permission.action.includes('explorer.read')),
|
659
|
+
children: /*#__PURE__*/ jsx(DocumentRBAC, {
|
660
|
+
permissions: permissions,
|
661
|
+
children: /*#__PURE__*/ jsx(PreviewPage, {})
|
662
|
+
})
|
519
663
|
})
|
520
664
|
});
|
521
665
|
};
|
@@ -528,4 +672,4 @@ const ProtectedPreviewPage = ()=>{
|
|
528
672
|
};
|
529
673
|
|
530
674
|
export { ProtectedPreviewPage, usePreviewContext };
|
531
|
-
//# sourceMappingURL=Preview-
|
675
|
+
//# sourceMappingURL=Preview-VVd4rU0x.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Preview-VVd4rU0x.mjs","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\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 );\n};\n\nexport { PreviewContent };\n","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, Grid, 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 { 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 UnstablePreviewHeader = () => {\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 iframeRef = usePreviewContext('PreviewHeader', (state) => state.iframeRef);\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 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 } 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 PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\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 return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={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 </Grid.Item>\n </Grid.Root>\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, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\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 { 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 { PreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } 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 iframeRef?: React.RefObject<HTMLIFrameElement>;\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 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 <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n iframeRef={iframeRef}\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 <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\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 layout={documentLayoutResponse.edit.layout} hasBackground />\n </Box>\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 <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 </Box>\n </Flex>\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </FormContext>\n </PreviewProvider>\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":["PreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsx","Box","src","title","id","defaultMessage","width","height","borderWidth","tag","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","variant","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","plugins","useStrapiApp","iframeRef","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","documentActionProps","activeTab","collectionType","kind","model","uid","documentId","onPreview","current","contentWindow","postMessage","URL","origin","Flex","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","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","alignItems","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","AnimatedArrow","ArrowLineLeft","isSideEditorOpen","PreviewPage","useLocation","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","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","Title","layout","FormContext","method","initialErrors","forceValidation","validate","direction","strapi","future","isEnabled","overflow","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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"}
|