@strapi/content-manager 0.0.0-experimental.a4161dd0ce4a6742074cbfc43734281e14a29baa → 0.0.0-experimental.a4cee39f4705cbd534afa66170f94f2f68e65b75

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 (89) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-CDKJ1saA.js → ComponentConfigurationPage-BWB_urBW.js} +3 -3
  2. package/dist/admin/chunks/{ComponentConfigurationPage-CDKJ1saA.js.map → ComponentConfigurationPage-BWB_urBW.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-BdKTyTdt.mjs → ComponentConfigurationPage-Bw3SD5w3.mjs} +3 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-BdKTyTdt.mjs.map → ComponentConfigurationPage-Bw3SD5w3.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-BW5fpvkO.js → EditConfigurationPage-BazMqkY5.js} +3 -3
  6. package/dist/admin/chunks/{EditConfigurationPage-BW5fpvkO.js.map → EditConfigurationPage-BazMqkY5.js.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-CaJ_CmJz.mjs → EditConfigurationPage-bP8cL5u8.mjs} +3 -3
  8. package/dist/admin/chunks/{EditConfigurationPage-CaJ_CmJz.mjs.map → EditConfigurationPage-bP8cL5u8.mjs.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-BDekCXSy.mjs → EditViewPage-D3F0FbHV.mjs} +10 -7
  10. package/dist/admin/chunks/EditViewPage-D3F0FbHV.mjs.map +1 -0
  11. package/dist/admin/chunks/{EditViewPage-CNacGhk_.js → EditViewPage-DjB2aEuN.js} +11 -8
  12. package/dist/admin/chunks/EditViewPage-DjB2aEuN.js.map +1 -0
  13. package/dist/admin/chunks/{Form-2LZDIqUE.mjs → Form-CO-twQva.mjs} +2 -2
  14. package/dist/admin/chunks/{Form-2LZDIqUE.mjs.map → Form-CO-twQva.mjs.map} +1 -1
  15. package/dist/admin/chunks/{Form-CouVf26p.js → Form-Dyr8enar.js} +2 -2
  16. package/dist/admin/chunks/{Form-CouVf26p.js.map → Form-Dyr8enar.js.map} +1 -1
  17. package/dist/admin/chunks/{History-Cv3uNjvV.js → History-BsZCxc7e.js} +6 -6
  18. package/dist/admin/chunks/{History-Cv3uNjvV.js.map → History-BsZCxc7e.js.map} +1 -1
  19. package/dist/admin/chunks/{History-B7zZvnQF.mjs → History-DJ_pI0gL.mjs} +5 -5
  20. package/dist/admin/chunks/{History-B7zZvnQF.mjs.map → History-DJ_pI0gL.mjs.map} +1 -1
  21. package/dist/admin/chunks/{Input-DPH5j7Yl.js → Input-D-yPzkxz.js} +634 -848
  22. package/dist/admin/chunks/Input-D-yPzkxz.js.map +1 -0
  23. package/dist/admin/chunks/{Input-BPTHgeyh.mjs → Input-DWQWd5MK.mjs} +634 -847
  24. package/dist/admin/chunks/Input-DWQWd5MK.mjs.map +1 -0
  25. package/dist/admin/chunks/{ListConfigurationPage-FS8YuoKF.mjs → ListConfigurationPage-DlvGrjR_.mjs} +2 -2
  26. package/dist/admin/chunks/{ListConfigurationPage-FS8YuoKF.mjs.map → ListConfigurationPage-DlvGrjR_.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-Cj1tt01r.js → ListConfigurationPage-dHbA6tve.js} +2 -2
  28. package/dist/admin/chunks/{ListConfigurationPage-Cj1tt01r.js.map → ListConfigurationPage-dHbA6tve.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-Xv5mmaJq.mjs → ListViewPage-DaxIL_8o.mjs} +3 -3
  30. package/dist/admin/chunks/{ListViewPage-Xv5mmaJq.mjs.map → ListViewPage-DaxIL_8o.mjs.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-BCmGmK7N.js → ListViewPage-gsJS3ulI.js} +3 -3
  32. package/dist/admin/chunks/{ListViewPage-BCmGmK7N.js.map → ListViewPage-gsJS3ulI.js.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-DpvfQfhU.js → NoContentTypePage-BD-VEn6M.js} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-DpvfQfhU.js.map → NoContentTypePage-BD-VEn6M.js.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-Bbqw5ZV9.mjs → NoContentTypePage-xzAGzlVY.mjs} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-Bbqw5ZV9.mjs.map → NoContentTypePage-xzAGzlVY.mjs.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-igrvpcW0.mjs → NoPermissionsPage-BAKqxUK7.mjs} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-igrvpcW0.mjs.map → NoPermissionsPage-BAKqxUK7.mjs.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-BYEkhBnk.js → NoPermissionsPage-BmE5T_Mq.js} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-BYEkhBnk.js.map → NoPermissionsPage-BmE5T_Mq.js.map} +1 -1
  41. package/dist/admin/chunks/{Preview-DR-9uYxZ.mjs → Preview-Bz2ir5R5.mjs} +102 -182
  42. package/dist/admin/chunks/Preview-Bz2ir5R5.mjs.map +1 -0
  43. package/dist/admin/chunks/{Preview-DlRltQbE.js → Preview-CP4m2RBm.js} +101 -181
  44. package/dist/admin/chunks/Preview-CP4m2RBm.js.map +1 -0
  45. package/dist/admin/chunks/{en-DBP0Gaid.mjs → en-C2zEwS3-.mjs} +3 -1
  46. package/dist/admin/chunks/{en-DBP0Gaid.mjs.map → en-C2zEwS3-.mjs.map} +1 -1
  47. package/dist/admin/chunks/{en-CH__IC8g.js → en-G976DLsg.js} +3 -1
  48. package/dist/admin/chunks/{en-CH__IC8g.js.map → en-G976DLsg.js.map} +1 -1
  49. package/dist/admin/chunks/{index-CISU19oJ.js → index-CFa6xmgK.js} +197 -127
  50. package/dist/admin/chunks/index-CFa6xmgK.js.map +1 -0
  51. package/dist/admin/chunks/{index-C_e5v8f7.mjs → index-ZyDJIuQ1.mjs} +196 -129
  52. package/dist/admin/chunks/index-ZyDJIuQ1.mjs.map +1 -0
  53. package/dist/admin/chunks/{layout-CrqscUTi.mjs → layout-D2tOWWAq.mjs} +4 -4
  54. package/dist/admin/chunks/{layout-CrqscUTi.mjs.map → layout-D2tOWWAq.mjs.map} +1 -1
  55. package/dist/admin/chunks/{layout-CajJum-G.js → layout-XA97mHoN.js} +4 -4
  56. package/dist/admin/chunks/{layout-CajJum-G.js.map → layout-XA97mHoN.js.map} +1 -1
  57. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  58. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  59. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  60. package/dist/admin/chunks/uk-DB6OgySY.js.map +1 -0
  61. package/dist/admin/chunks/{usePrev-CHotxABl.js → usePrev-BEkg-rKP.js} +2 -2
  62. package/dist/admin/chunks/{usePrev-CHotxABl.js.map → usePrev-BEkg-rKP.js.map} +1 -1
  63. package/dist/admin/chunks/{usePrev-DF3ZO0z4.mjs → usePrev-DAPoUN3D.mjs} +2 -2
  64. package/dist/admin/chunks/{usePrev-DF3ZO0z4.mjs.map → usePrev-DAPoUN3D.mjs.map} +1 -1
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +1 -1
  67. package/dist/admin/src/content-manager.d.ts +1 -0
  68. package/dist/admin/src/features/DocumentContext.d.ts +13 -2
  69. package/dist/admin/src/hooks/useDocument.d.ts +2 -0
  70. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  71. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +5 -7
  72. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -2
  73. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +3 -1
  74. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +5 -2
  75. package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
  76. package/package.json +8 -8
  77. package/dist/admin/chunks/EditViewPage-BDekCXSy.mjs.map +0 -1
  78. package/dist/admin/chunks/EditViewPage-CNacGhk_.js.map +0 -1
  79. package/dist/admin/chunks/Input-BPTHgeyh.mjs.map +0 -1
  80. package/dist/admin/chunks/Input-DPH5j7Yl.js.map +0 -1
  81. package/dist/admin/chunks/Preview-DR-9uYxZ.mjs.map +0 -1
  82. package/dist/admin/chunks/Preview-DlRltQbE.js.map +0 -1
  83. package/dist/admin/chunks/index-CISU19oJ.js.map +0 -1
  84. package/dist/admin/chunks/index-C_e5v8f7.mjs.map +0 -1
  85. package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
  86. package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
  87. package/dist/admin/chunks/uk-Cpgmm7gE.mjs +0 -140
  88. package/dist/admin/chunks/uk-Cpgmm7gE.mjs.map +0 -1
  89. package/dist/admin/src/preview/components/PreviewContent.d.ts +0 -3
@@ -4,14 +4,14 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var designSystem = require('@strapi/design-system');
7
+ var Icons = require('@strapi/icons');
7
8
  var reactIntl = require('react-intl');
8
9
  var reactRouterDom = require('react-router-dom');
9
- var index = require('./index-CISU19oJ.js');
10
- var Input = require('./Input-DPH5j7Yl.js');
11
- var Icons = require('@strapi/icons');
12
10
  var styledComponents = require('styled-components');
11
+ var index = require('./index-CFa6xmgK.js');
12
+ var Input = require('./Input-D-yPzkxz.js');
13
13
  var qs = require('qs');
14
- var EditViewPage = require('./EditViewPage-CNacGhk_.js');
14
+ var EditViewPage = require('./EditViewPage-DjB2aEuN.js');
15
15
  require('lodash/fp/mapValues');
16
16
  require('yup');
17
17
  require('fractional-indexing');
@@ -72,7 +72,7 @@ require('prismjs/components/prism-typescript');
72
72
  require('prismjs/components/prism-tsx');
73
73
  require('prismjs/components/prism-vbnet');
74
74
  require('prismjs/components/prism-yaml');
75
- require('./usePrev-CHotxABl.js');
75
+ require('./usePrev-BEkg-rKP.js');
76
76
  require('./objects-BJTP843m.js');
77
77
  require('react-dnd');
78
78
  require('lodash/clone');
@@ -117,93 +117,6 @@ function _interopNamespaceDefault(e) {
117
117
 
118
118
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
119
119
 
120
- // TODO use ArrowLineLeft once it's available in the DS
121
- const AnimatedArrow = styledComponents.styled(Icons.ArrowLeft)`
122
- will-change: transform;
123
- rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
124
- transition: rotate 0.2s ease-in-out;
125
- `;
126
- const UnstablePreviewContent = ()=>{
127
- const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
128
- const layout = usePreviewContext('PreviewContent', (state)=>state.layout);
129
- const { formatMessage } = reactIntl.useIntl();
130
- const [isSideEditorOpen, setIsSideEditorOpen] = React__namespace.useState(true);
131
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
132
- flex: 1,
133
- overflow: "auto",
134
- alignItems: "stretch",
135
- children: [
136
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
137
- overflow: "auto",
138
- width: isSideEditorOpen ? '50%' : 0,
139
- borderWidth: "0 1px 0 0",
140
- borderColor: "neutral150",
141
- paddingTop: 6,
142
- paddingBottom: 6,
143
- // Remove horizontal padding when the editor is closed or it won't fully disappear
144
- paddingLeft: isSideEditorOpen ? 6 : 0,
145
- paddingRight: isSideEditorOpen ? 6 : 0,
146
- transition: "all 0.2s ease-in-out",
147
- children: /*#__PURE__*/ jsxRuntime.jsx(Input.FormLayout, {
148
- layout: layout.layout,
149
- hasBackground: true
150
- })
151
- }),
152
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
153
- position: "relative",
154
- flex: 1,
155
- height: "100%",
156
- overflow: "hidden",
157
- children: [
158
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
159
- src: previewUrl,
160
- title: formatMessage({
161
- id: 'content-manager.preview.panel.title',
162
- defaultMessage: 'Preview'
163
- }),
164
- width: "100%",
165
- height: "100%",
166
- borderWidth: 0,
167
- tag: "iframe"
168
- }, previewUrl),
169
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
170
- variant: "tertiary",
171
- label: formatMessage(isSideEditorOpen ? {
172
- id: 'content-manager.preview.content.close-editor',
173
- defaultMessage: 'Close editor'
174
- } : {
175
- id: 'content-manager.preview.content.open-editor',
176
- defaultMessage: 'Open editor'
177
- }),
178
- onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
179
- position: "absolute",
180
- top: 2,
181
- left: 2,
182
- children: /*#__PURE__*/ jsxRuntime.jsx(AnimatedArrow, {
183
- isSideEditorOpen: isSideEditorOpen
184
- })
185
- })
186
- ]
187
- })
188
- ]
189
- });
190
- };
191
- const PreviewContent = ()=>{
192
- const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
193
- const { formatMessage } = reactIntl.useIntl();
194
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
195
- src: previewUrl,
196
- title: formatMessage({
197
- id: 'content-manager.preview.panel.title',
198
- defaultMessage: 'Preview'
199
- }),
200
- width: "100%",
201
- height: "100%",
202
- borderWidth: 0,
203
- tag: "iframe"
204
- }, previewUrl);
205
- };
206
-
207
120
  /* -------------------------------------------------------------------------------------------------
208
121
  * ClosePreviewButton
209
122
  * -----------------------------------------------------------------------------------------------*/ const ClosePreviewButton = ()=>{
@@ -315,12 +228,13 @@ const PreviewTabs = ()=>{
315
228
  };
316
229
  /* -------------------------------------------------------------------------------------------------
317
230
  * PreviewHeader
318
- * -----------------------------------------------------------------------------------------------*/ const UnstablePreviewHeader = ()=>{
231
+ * -----------------------------------------------------------------------------------------------*/ const PreviewHeader = ()=>{
319
232
  const title = usePreviewContext('PreviewHeader', (state)=>state.title);
320
233
  const document = usePreviewContext('PreviewHeader', (state)=>state.document);
321
234
  const schema = usePreviewContext('PreviewHeader', (state)=>state.schema);
322
235
  const meta = usePreviewContext('PreviewHeader', (state)=>state.meta);
323
236
  const plugins = strapiAdmin.useStrapiApp('PreviewHeader', (state)=>state.plugins);
237
+ const onPreview = index.useDocumentContext('PreviewHeader', (state)=>state.onPreview);
324
238
  const [{ query }] = strapiAdmin.useQueryParams();
325
239
  const { formatMessage } = reactIntl.useIntl();
326
240
  const { toggleNotification } = strapiAdmin.useNotification();
@@ -336,13 +250,14 @@ const PreviewTabs = ()=>{
336
250
  });
337
251
  };
338
252
  const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;
339
- const props = {
253
+ const documentActionProps = {
340
254
  activeTab: query.status ?? null,
341
255
  collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',
342
256
  model: schema.uid,
343
257
  documentId: document.documentId,
344
258
  document,
345
- meta
259
+ meta,
260
+ onPreview
346
261
  };
347
262
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
348
263
  height: "48px",
@@ -396,7 +311,7 @@ const PreviewTabs = ()=>{
396
311
  area: "preview.actions"
397
312
  }),
398
313
  /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
399
- props: props,
314
+ props: documentActionProps,
400
315
  descriptions: plugins['content-manager'].apis.getDocumentActions('preview'),
401
316
  children: (actions)=>{
402
317
  const filteredActions = actions.filter((action)=>[
@@ -433,74 +348,6 @@ const PreviewTabs = ()=>{
433
348
  ]
434
349
  });
435
350
  };
436
- const PreviewHeader = ()=>{
437
- // Get the document title
438
- const title = usePreviewContext('PreviewHeader', (state)=>state.title);
439
- const { formatMessage } = reactIntl.useIntl();
440
- const { toggleNotification } = strapiAdmin.useNotification();
441
- const { copy } = strapiAdmin.useClipboard();
442
- const handleCopyLink = ()=>{
443
- copy(window.location.href);
444
- toggleNotification({
445
- message: formatMessage({
446
- id: 'content-manager.preview.copy.success',
447
- defaultMessage: 'Copied preview link'
448
- }),
449
- type: 'success'
450
- });
451
- };
452
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
453
- gap: 3,
454
- gridCols: 3,
455
- paddingLeft: 2,
456
- paddingRight: 2,
457
- background: "neutral0",
458
- borderColor: "neutral150",
459
- tag: "header",
460
- children: [
461
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Item, {
462
- xs: 1,
463
- paddingTop: 2,
464
- paddingBottom: 2,
465
- gap: 3,
466
- children: [
467
- /*#__PURE__*/ jsxRuntime.jsx(ClosePreviewButton, {}),
468
- /*#__PURE__*/ jsxRuntime.jsx(PreviewTitle, {
469
- tag: "h1",
470
- fontWeight: 600,
471
- fontSize: 2,
472
- maxWidth: "200px",
473
- title: title,
474
- children: title
475
- }),
476
- /*#__PURE__*/ jsxRuntime.jsx(Status, {})
477
- ]
478
- }),
479
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
480
- xs: 1,
481
- marginBottom: "-1px",
482
- alignItems: "end",
483
- margin: "auto",
484
- children: /*#__PURE__*/ jsxRuntime.jsx(PreviewTabs, {})
485
- }),
486
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
487
- xs: 1,
488
- justifyContent: "end",
489
- paddingTop: 2,
490
- paddingBottom: 2,
491
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
492
- type: "button",
493
- label: formatMessage({
494
- id: 'preview.copy.label',
495
- defaultMessage: 'Copy preview link'
496
- }),
497
- onClick: handleCopyLink,
498
- children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Link, {})
499
- })
500
- })
501
- ]
502
- });
503
- };
504
351
  const PreviewTitle = styledComponents.styled(designSystem.Typography)`
505
352
  overflow: hidden;
506
353
  text-overflow: ellipsis;
@@ -516,9 +363,16 @@ const TitleContainer = styledComponents.styled(designSystem.Flex)`
516
363
  const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewPage');
517
364
  /* -------------------------------------------------------------------------------------------------
518
365
  * PreviewPage
519
- * -----------------------------------------------------------------------------------------------*/ const PreviewPage = ()=>{
366
+ * -----------------------------------------------------------------------------------------------*/ const AnimatedArrow = styledComponents.styled(Icons.ArrowLineLeft)`
367
+ will-change: transform;
368
+ rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
369
+ transition: rotate 0.2s ease-in-out;
370
+ `;
371
+ const PreviewPage = ()=>{
520
372
  const location = reactRouterDom.useLocation();
521
373
  const { formatMessage } = reactIntl.useIntl();
374
+ const iframeRef = React__namespace.useRef(null);
375
+ const [isSideEditorOpen, setIsSideEditorOpen] = React__namespace.useState(true);
522
376
  // Read all the necessary data from the URL to find the right preview URL
523
377
  const { slug: model, id: documentId, collectionType } = reactRouterDom.useParams();
524
378
  const [{ query }] = strapiAdmin.useQueryParams();
@@ -552,7 +406,8 @@ const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewP
552
406
  params
553
407
  });
554
408
  const documentLayoutResponse = index.useDocumentLayout(model);
555
- if (documentResponse.isLoading || previewUrlResponse.isLoading || documentLayoutResponse.isLoading) {
409
+ const isLoading = previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;
410
+ if (isLoading && !documentResponse.document?.documentId) {
556
411
  return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
557
412
  }
558
413
  const initialValues = documentResponse.getInitialFormValues();
@@ -572,6 +427,13 @@ const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewP
572
427
  abortEarly: false
573
428
  });
574
429
  };
430
+ const previewUrl = previewUrlResponse.data.data.url;
431
+ const onPreview = ()=>{
432
+ iframeRef?.current?.contentWindow?.postMessage({
433
+ type: 'strapiUpdate'
434
+ }, // The iframe origin is safe to use since it must be provided through the allowedOrigins config
435
+ new URL(iframeRef.current.src).origin);
436
+ };
575
437
  return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
576
438
  children: [
577
439
  /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Title, {
@@ -582,14 +444,15 @@ const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewP
582
444
  contentType: documentTitle
583
445
  })
584
446
  }),
585
- /*#__PURE__*/ jsxRuntime.jsx(Input.DocumentContextProvider, {
447
+ /*#__PURE__*/ jsxRuntime.jsx(index.DocumentContextProvider, {
586
448
  initialDocument: {
587
449
  documentId: documentId || '',
588
450
  model,
589
451
  collectionType
590
452
  },
453
+ onPreview: onPreview,
591
454
  children: /*#__PURE__*/ jsxRuntime.jsx(PreviewProvider, {
592
- url: previewUrlResponse.data.data.url,
455
+ url: previewUrl,
593
456
  document: documentResponse.document,
594
457
  title: documentTitle,
595
458
  meta: documentResponse.meta,
@@ -610,22 +473,79 @@ const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewP
610
473
  abortEarly: false
611
474
  });
612
475
  },
613
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
614
- direction: "column",
615
- height: "100%",
616
- alignItems: "stretch",
617
- children: window.strapi.future.isEnabled('unstablePreviewSideEditor') ? /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
618
- children: [
619
- /*#__PURE__*/ jsxRuntime.jsx(UnstablePreviewHeader, {}),
620
- /*#__PURE__*/ jsxRuntime.jsx(UnstablePreviewContent, {})
621
- ]
622
- }) : /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
476
+ children: ({ resetForm })=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
477
+ direction: "column",
478
+ height: "100%",
479
+ alignItems: "stretch",
623
480
  children: [
481
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Blocker, {
482
+ onProceed: resetForm
483
+ }),
624
484
  /*#__PURE__*/ jsxRuntime.jsx(PreviewHeader, {}),
625
- /*#__PURE__*/ jsxRuntime.jsx(PreviewContent, {})
485
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
486
+ flex: 1,
487
+ overflow: "auto",
488
+ alignItems: "stretch",
489
+ children: [
490
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
491
+ overflow: "auto",
492
+ width: isSideEditorOpen ? '50%' : 0,
493
+ borderWidth: "0 1px 0 0",
494
+ borderColor: "neutral150",
495
+ paddingTop: 6,
496
+ paddingBottom: 6,
497
+ // Remove horizontal padding when the editor is closed or it won't fully disappear
498
+ paddingLeft: isSideEditorOpen ? 6 : 0,
499
+ paddingRight: isSideEditorOpen ? 6 : 0,
500
+ transition: "all 0.2s ease-in-out",
501
+ children: /*#__PURE__*/ jsxRuntime.jsx(Input.FormLayout, {
502
+ layout: documentLayoutResponse.edit.layout,
503
+ document: documentResponse,
504
+ hasBackground: false
505
+ })
506
+ }),
507
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
508
+ position: "relative",
509
+ flex: 1,
510
+ height: "100%",
511
+ overflow: "hidden",
512
+ children: [
513
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
514
+ "data-testid": "preview-iframe",
515
+ ref: iframeRef,
516
+ src: previewUrl,
517
+ title: formatMessage({
518
+ id: 'content-manager.preview.panel.title',
519
+ defaultMessage: 'Preview'
520
+ }),
521
+ width: "100%",
522
+ height: "100%",
523
+ borderWidth: 0,
524
+ tag: "iframe"
525
+ }, previewUrl),
526
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
527
+ variant: "tertiary",
528
+ label: formatMessage(isSideEditorOpen ? {
529
+ id: 'content-manager.preview.content.close-editor',
530
+ defaultMessage: 'Close editor'
531
+ } : {
532
+ id: 'content-manager.preview.content.open-editor',
533
+ defaultMessage: 'Open editor'
534
+ }),
535
+ onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
536
+ position: "absolute",
537
+ top: 2,
538
+ left: 2,
539
+ children: /*#__PURE__*/ jsxRuntime.jsx(AnimatedArrow, {
540
+ isSideEditorOpen: isSideEditorOpen
541
+ })
542
+ })
543
+ ]
544
+ })
545
+ ]
546
+ })
626
547
  ]
627
548
  })
628
- })
629
549
  })
630
550
  })
631
551
  })
@@ -692,4 +612,4 @@ const ProtectedPreviewPage = ()=>{
692
612
 
693
613
  exports.ProtectedPreviewPage = ProtectedPreviewPage;
694
614
  exports.usePreviewContext = usePreviewContext;
695
- //# sourceMappingURL=Preview-DlRltQbE.js.map
615
+ //# sourceMappingURL=Preview-CP4m2RBm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preview-CP4m2RBm.js","sources":["../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { useDocumentContext } from '../../features/DocumentContext';\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n const onPreview = useDocumentContext('PreviewHeader', (state) => state.onPreview);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const documentActionProps = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n onPreview,\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <Flex flex=\"1 1 70%\">\n <PreviewTabs />\n </Flex>\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <InjectionZone area=\"preview.actions\" />\n <DescriptionComponentRenderer\n props={documentActionProps}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n Blocker,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, IconButton, Portal } from '@strapi/design-system';\nimport { ArrowLineLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentContextProvider } from '../../features/DocumentContext';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLineLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n const onPreview = () => {\n iframeRef?.current?.contentWindow?.postMessage(\n { type: 'strapiUpdate' },\n // The iframe origin is safe to use since it must be provided through the allowedOrigins config\n new URL(iframeRef.current.src).origin\n );\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <DocumentContextProvider\n initialDocument={{\n documentId: documentId || '',\n model,\n collectionType,\n }}\n onPreview={onPreview}\n >\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {({ resetForm }) => (\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <Blocker onProceed={resetForm} />\n <PreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <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 {/* TODO: add license check */}\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\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 </Flex>\n )}\n </FormContext>\n </PreviewProvider>\n </DocumentContextProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["ClosePreviewButton","query","useQueryParams","formatMessage","useIntl","canGoBack","useHistory","state","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","_jsx","IconButton","variant","tag","Link","relative","to","onClick","label","id","defaultMessage","Cross","Status","document","usePreviewContext","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","PreviewHeader","title","plugins","useStrapiApp","onPreview","useDocumentContext","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","documentActionProps","activeTab","collectionType","kind","model","uid","documentId","Flex","height","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","flex","justifyContent","LinkIcon","InjectionZone","area","DescriptionComponentRenderer","props","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","position","flat","includes","primaryAction","secondaryAction","_Fragment","DocumentActionButton","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","AnimatedArrow","ArrowLineLeft","isSideEditorOpen","PreviewPage","useLocation","iframeRef","React","useRef","setIsSideEditorOpen","useState","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","url","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","previewUrl","current","contentWindow","postMessage","URL","src","origin","Title","DocumentContextProvider","initialDocument","layout","FormContext","method","initialErrors","forceValidation","validate","resetForm","direction","alignItems","Blocker","onProceed","overflow","Box","width","borderWidth","paddingTop","paddingBottom","transition","FormLayout","hasBackground","data-testid","ref","prev","top","left","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
@@ -59,6 +59,8 @@ var en = {
59
59
  "components.NotAllowedInput.text": "No permissions to see this field",
60
60
  "components.RelationInput.icon-button-aria-label": "Drag",
61
61
  "components.RelationInputModal.modal-title": "Edit a relation",
62
+ "components.RelationInputModal.button-fullpage": "Go to entry",
63
+ "components.RelationInputModal.confirmation-message": "Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.",
62
64
  "components.RepeatableComponent.error-message": "The component(s) contain error(s)",
63
65
  "components.Search.placeholder": "Search for an entry...",
64
66
  "components.Select.draft-info-title": "Draft",
@@ -308,4 +310,4 @@ var en = {
308
310
  };
309
311
 
310
312
  export { en as default, groups, models, pageNotFound };
311
- //# sourceMappingURL=en-DBP0Gaid.mjs.map
313
+ //# sourceMappingURL=en-C2zEwS3-.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-DBP0Gaid.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en-C2zEwS3-.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -61,6 +61,8 @@ var en = {
61
61
  "components.NotAllowedInput.text": "No permissions to see this field",
62
62
  "components.RelationInput.icon-button-aria-label": "Drag",
63
63
  "components.RelationInputModal.modal-title": "Edit a relation",
64
+ "components.RelationInputModal.button-fullpage": "Go to entry",
65
+ "components.RelationInputModal.confirmation-message": "Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.",
64
66
  "components.RepeatableComponent.error-message": "The component(s) contain error(s)",
65
67
  "components.Search.placeholder": "Search for an entry...",
66
68
  "components.Select.draft-info-title": "Draft",
@@ -313,4 +315,4 @@ exports.default = en;
313
315
  exports.groups = groups;
314
316
  exports.models = models;
315
317
  exports.pageNotFound = pageNotFound;
316
- //# sourceMappingURL=en-CH__IC8g.js.map
318
+ //# sourceMappingURL=en-G976DLsg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-CH__IC8g.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en-G976DLsg.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}