@strapi/content-manager 0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa → 0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac

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.
Files changed (92) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-C5H-5L1u.js → ComponentConfigurationPage-BBCYsnnE.js} +3 -3
  2. package/dist/admin/chunks/{ComponentConfigurationPage-C5H-5L1u.js.map → ComponentConfigurationPage-BBCYsnnE.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-BN2kOtDm.mjs → ComponentConfigurationPage-DNBN8tI3.mjs} +3 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-BN2kOtDm.mjs.map → ComponentConfigurationPage-DNBN8tI3.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-tMgOELQG.mjs → EditConfigurationPage-CoivzF-x.mjs} +3 -3
  6. package/dist/admin/chunks/{EditConfigurationPage-tMgOELQG.mjs.map → EditConfigurationPage-CoivzF-x.mjs.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-BExtZuB7.js → EditConfigurationPage-Cu0Vt-uc.js} +3 -3
  8. package/dist/admin/chunks/{EditConfigurationPage-BExtZuB7.js.map → EditConfigurationPage-Cu0Vt-uc.js.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-DFkloeMZ.js → EditViewPage-B48r4DLX.js} +6 -9
  10. package/dist/admin/chunks/EditViewPage-B48r4DLX.js.map +1 -0
  11. package/dist/admin/chunks/{EditViewPage-CYe7wAXF.mjs → EditViewPage-BpGtaOKG.mjs} +6 -9
  12. package/dist/admin/chunks/EditViewPage-BpGtaOKG.mjs.map +1 -0
  13. package/dist/admin/chunks/{Form-DGUP3zQO.js → Form-DD49gSWW.js} +2 -2
  14. package/dist/admin/chunks/{Form-DGUP3zQO.js.map → Form-DD49gSWW.js.map} +1 -1
  15. package/dist/admin/chunks/{Form-DTO0ZIaB.mjs → Form-rQQtxfmF.mjs} +2 -2
  16. package/dist/admin/chunks/{Form-DTO0ZIaB.mjs.map → Form-rQQtxfmF.mjs.map} +1 -1
  17. package/dist/admin/chunks/{History-C333pgXF.mjs → History-BdsTgpW-.mjs} +5 -5
  18. package/dist/admin/chunks/{History-C333pgXF.mjs.map → History-BdsTgpW-.mjs.map} +1 -1
  19. package/dist/admin/chunks/{History-CQznK1pG.js → History-RLJ9Svg6.js} +5 -5
  20. package/dist/admin/chunks/{History-CQznK1pG.js.map → History-RLJ9Svg6.js.map} +1 -1
  21. package/dist/admin/chunks/{Input-DLJZHw9Y.js → Input-BUVu6H9n.js} +4 -4
  22. package/dist/admin/chunks/{Input-DLJZHw9Y.js.map → Input-BUVu6H9n.js.map} +1 -1
  23. package/dist/admin/chunks/{Input-BexkC_pp.mjs → Input-CtIJ2J0c.mjs} +4 -4
  24. package/dist/admin/chunks/{Input-BexkC_pp.mjs.map → Input-CtIJ2J0c.mjs.map} +1 -1
  25. package/dist/admin/chunks/{ListConfigurationPage-BX2WR7MI.mjs → ListConfigurationPage-38s4e-VJ.mjs} +2 -2
  26. package/dist/admin/chunks/{ListConfigurationPage-BX2WR7MI.mjs.map → ListConfigurationPage-38s4e-VJ.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-71I_stAM.js → ListConfigurationPage-DfnrA3dw.js} +2 -2
  28. package/dist/admin/chunks/{ListConfigurationPage-71I_stAM.js.map → ListConfigurationPage-DfnrA3dw.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-BDeT3Dkk.mjs → ListViewPage-BTmlktgT.mjs} +3 -3
  30. package/dist/admin/chunks/{ListViewPage-BDeT3Dkk.mjs.map → ListViewPage-BTmlktgT.mjs.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-DV3heO4F.js → ListViewPage-D9-LGPq_.js} +3 -3
  32. package/dist/admin/chunks/{ListViewPage-DV3heO4F.js.map → ListViewPage-D9-LGPq_.js.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-9JHYpYVX.mjs → NoContentTypePage-CcyR2i1K.mjs} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-9JHYpYVX.mjs.map → NoContentTypePage-CcyR2i1K.mjs.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-COih9y2J.js → NoContentTypePage-owzdv-pl.js} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-COih9y2J.js.map → NoContentTypePage-owzdv-pl.js.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-DGAwRIlN.js → NoPermissionsPage-CM_r8w5u.js} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-DGAwRIlN.js.map → NoPermissionsPage-CM_r8w5u.js.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-DTe9I47q.mjs → NoPermissionsPage-lBonAXej.mjs} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-DTe9I47q.mjs.map → NoPermissionsPage-lBonAXej.mjs.map} +1 -1
  41. package/dist/admin/chunks/{Preview-CXtc9yEV.js → Preview-Bv3GKyWZ.js} +209 -86
  42. package/dist/admin/chunks/Preview-Bv3GKyWZ.js.map +1 -0
  43. package/dist/admin/chunks/{Preview-BEq0FXda.mjs → Preview-Dh5Z7aGp.mjs} +213 -90
  44. package/dist/admin/chunks/Preview-Dh5Z7aGp.mjs.map +1 -0
  45. package/dist/admin/chunks/{Relations-qeZyLDgQ.mjs → Relations-DP5krCGC.mjs} +3 -3
  46. package/dist/admin/chunks/{Relations-qeZyLDgQ.mjs.map → Relations-DP5krCGC.mjs.map} +1 -1
  47. package/dist/admin/chunks/{Relations-o7_hVGyK.js → Relations-T8Cr0N9M.js} +3 -3
  48. package/dist/admin/chunks/{Relations-o7_hVGyK.js.map → Relations-T8Cr0N9M.js.map} +1 -1
  49. package/dist/admin/chunks/{en-LfhocNG2.mjs → en-CImiNxXE.mjs} +3 -1
  50. package/dist/admin/chunks/{en-LfhocNG2.mjs.map → en-CImiNxXE.mjs.map} +1 -1
  51. package/dist/admin/chunks/{en-C1CjdAtC.js → en-CLf4SuMQ.js} +3 -1
  52. package/dist/admin/chunks/{en-C1CjdAtC.js.map → en-CLf4SuMQ.js.map} +1 -1
  53. package/dist/admin/chunks/{index-Cs6qwFQu.mjs → index-BkM_Z7pU.mjs} +78 -40
  54. package/dist/admin/chunks/index-BkM_Z7pU.mjs.map +1 -0
  55. package/dist/admin/chunks/{index-BHimg6jW.js → index-CGBB9Dho.js} +78 -39
  56. package/dist/admin/chunks/index-CGBB9Dho.js.map +1 -0
  57. package/dist/admin/chunks/{layout-DStNia_P.mjs → layout-D8ji6QNJ.mjs} +4 -4
  58. package/dist/admin/chunks/{layout-DStNia_P.mjs.map → layout-D8ji6QNJ.mjs.map} +1 -1
  59. package/dist/admin/chunks/{layout-Dtahn4Ue.js → layout-Dbmjk7mC.js} +4 -4
  60. package/dist/admin/chunks/{layout-Dtahn4Ue.js.map → layout-Dbmjk7mC.js.map} +1 -1
  61. package/dist/admin/chunks/{relations-Cq8NRUto.mjs → relations-Dv0FHoBS.mjs} +2 -2
  62. package/dist/admin/chunks/{relations-Cq8NRUto.mjs.map → relations-Dv0FHoBS.mjs.map} +1 -1
  63. package/dist/admin/chunks/{relations-XOYEEqMz.js → relations-jNJK8ESO.js} +2 -2
  64. package/dist/admin/chunks/{relations-XOYEEqMz.js.map → relations-jNJK8ESO.js.map} +1 -1
  65. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  66. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  67. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  68. package/dist/admin/chunks/uk-DB6OgySY.js.map +1 -0
  69. package/dist/admin/index.js +1 -1
  70. package/dist/admin/index.mjs +1 -1
  71. package/dist/admin/src/components/InjectionZone.d.ts +7 -1
  72. package/dist/admin/src/content-manager.d.ts +4 -0
  73. package/dist/admin/src/hooks/useDocument.d.ts +2 -0
  74. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  75. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
  76. package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
  77. package/dist/admin/src/preview/pages/Preview.d.ts +2 -0
  78. package/dist/server/index.js +1 -1
  79. package/dist/server/index.js.map +1 -1
  80. package/dist/server/index.mjs +1 -1
  81. package/dist/server/index.mjs.map +1 -1
  82. package/package.json +8 -8
  83. package/dist/admin/chunks/EditViewPage-CYe7wAXF.mjs.map +0 -1
  84. package/dist/admin/chunks/EditViewPage-DFkloeMZ.js.map +0 -1
  85. package/dist/admin/chunks/Preview-BEq0FXda.mjs.map +0 -1
  86. package/dist/admin/chunks/Preview-CXtc9yEV.js.map +0 -1
  87. package/dist/admin/chunks/index-BHimg6jW.js.map +0 -1
  88. package/dist/admin/chunks/index-Cs6qwFQu.mjs.map +0 -1
  89. package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
  90. package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
  91. package/dist/admin/chunks/uk-Cpgmm7gE.mjs +0 -140
  92. package/dist/admin/chunks/uk-Cpgmm7gE.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/content-manager",
3
- "version": "0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa",
3
+ "version": "0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac",
4
4
  "description": "A powerful UI to easily manage your data.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -64,16 +64,16 @@
64
64
  "@radix-ui/react-toolbar": "1.0.4",
65
65
  "@reduxjs/toolkit": "1.9.7",
66
66
  "@sindresorhus/slugify": "1.1.0",
67
- "@strapi/design-system": "2.0.0-rc.16",
68
- "@strapi/icons": "2.0.0-rc.16",
69
- "@strapi/types": "0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa",
70
- "@strapi/utils": "0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa",
67
+ "@strapi/design-system": "2.0.0-rc.18",
68
+ "@strapi/icons": "2.0.0-rc.18",
69
+ "@strapi/types": "0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac",
70
+ "@strapi/utils": "0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac",
71
71
  "codemirror5": "npm:codemirror@^5.65.11",
72
72
  "date-fns": "2.30.0",
73
73
  "fractional-indexing": "3.2.0",
74
74
  "highlight.js": "^10.4.1",
75
75
  "immer": "9.0.21",
76
- "koa": "2.15.2",
76
+ "koa": "2.15.4",
77
77
  "lodash": "4.17.21",
78
78
  "markdown-it": "^12.3.2",
79
79
  "markdown-it-abbr": "^1.0.4",
@@ -102,8 +102,8 @@
102
102
  "yup": "0.32.9"
103
103
  },
104
104
  "devDependencies": {
105
- "@strapi/admin": "0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa",
106
- "@strapi/database": "0.0.0-next.2a1c7a281f8080296033541146ea489dcd441daa",
105
+ "@strapi/admin": "0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac",
106
+ "@strapi/database": "0.0.0-next.2cc011c888f93c1bfab276c5f709a40fb3fc9aac",
107
107
  "@testing-library/react": "15.0.7",
108
108
  "@types/jest": "29.5.2",
109
109
  "@types/lodash": "^4.14.191",
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditViewPage-CYe7wAXF.mjs","sources":["../../../admin/src/hooks/useOnce.ts","../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (hasError) {\n return <Page.Error />;\n }\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["useOnce","effect","React","useEffect","emptyDeps","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","useDoc","hasDraftAndPublished","options","draftAndPublish","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","isLazyLoading","useLazyComponents","initialValues","_jsx","Page","Error","documentId","Loading","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","resetForm","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","Blocker","onProceed","styled","Trigger","docStatus","statuses","find","doc","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditViewPage-DFkloeMZ.js","sources":["../../../admin/src/hooks/useOnce.ts","../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (hasError) {\n return <Page.Error />;\n }\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["useOnce","effect","React","useEffect","emptyDeps","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","useDoc","hasDraftAndPublished","options","draftAndPublish","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","isLazyLoading","useLazyComponents","initialValues","_jsx","Page","Error","documentId","Loading","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","resetForm","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","Blocker","onProceed","styled","Trigger","docStatus","statuses","find","doc","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preview-BEq0FXda.mjs","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { usePreviewContext } from '../pages/Preview';\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n const layout = usePreviewContext('PreviewContent', (state) => state.layout);\n\n const { formatMessage } = useIntl();\n\n return (\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <Box overflow=\"auto\" flex={1} borderWidth=\"0 1px 0 0\" borderColor=\"neutral150\" padding={6}>\n <FormLayout layout={layout.layout} hasBackground />\n </Box>\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 flex={1}\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n </Flex>\n );\n};\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, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\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 { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\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 <>\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/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\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 <Flex 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 flex={1} paddingRight={2} justifyContent=\"space-between\">\n <PreviewTabs />\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 </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, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\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 { buildValidParams } from '../../utils/api';\nimport { PreviewContent, UnstablePreviewContent } 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}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\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 }>();\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\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\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 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={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext method=\"POST\" initialValues={documentResponse.document} height=\"100%\">\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\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 ]);\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":["UnstablePreviewContent","previewUrl","usePreviewContext","state","url","layout","formatMessage","useIntl","_jsxs","Flex","flex","overflow","alignItems","_jsx","Box","borderWidth","borderColor","padding","FormLayout","hasBackground","src","title","id","defaultMessage","height","tag","PreviewContent","width","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","_Fragment","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","gap","background","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","FormContext","method","initialValues","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","filter","permission","includes","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preview-CXtc9yEV.js","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { usePreviewContext } from '../pages/Preview';\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n const layout = usePreviewContext('PreviewContent', (state) => state.layout);\n\n const { formatMessage } = useIntl();\n\n return (\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <Box overflow=\"auto\" flex={1} borderWidth=\"0 1px 0 0\" borderColor=\"neutral150\" padding={6}>\n <FormLayout layout={layout.layout} hasBackground />\n </Box>\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 flex={1}\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n </Flex>\n );\n};\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, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\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 { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\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 <>\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/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\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 <Flex 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 flex={1} paddingRight={2} justifyContent=\"space-between\">\n <PreviewTabs />\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 </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, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\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 { buildValidParams } from '../../utils/api';\nimport { PreviewContent, UnstablePreviewContent } 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}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\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 }>();\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\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\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 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={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext method=\"POST\" initialValues={documentResponse.document} height=\"100%\">\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\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 ]);\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":["UnstablePreviewContent","previewUrl","usePreviewContext","state","url","layout","formatMessage","useIntl","_jsxs","Flex","flex","overflow","alignItems","_jsx","Box","borderWidth","borderColor","padding","FormLayout","hasBackground","src","title","id","defaultMessage","height","tag","PreviewContent","width","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","_Fragment","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","gap","background","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","FormContext","method","initialValues","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","filter","permission","includes","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}