@strapi/content-manager 5.10.4 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-Cgjg4CQj.js → ComponentConfigurationPage-BBCYsnnE.js} +3 -3
  2. package/dist/admin/chunks/{ComponentConfigurationPage-Cgjg4CQj.js.map → ComponentConfigurationPage-BBCYsnnE.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-D6mjS3eX.mjs → ComponentConfigurationPage-DNBN8tI3.mjs} +3 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-D6mjS3eX.mjs.map → ComponentConfigurationPage-DNBN8tI3.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-DSSrKbwM.mjs → EditConfigurationPage-CoivzF-x.mjs} +3 -3
  6. package/dist/admin/chunks/{EditConfigurationPage-DSSrKbwM.mjs.map → EditConfigurationPage-CoivzF-x.mjs.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-C5E6D6NI.js → EditConfigurationPage-Cu0Vt-uc.js} +3 -3
  8. package/dist/admin/chunks/{EditConfigurationPage-C5E6D6NI.js.map → EditConfigurationPage-Cu0Vt-uc.js.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-Cyt_AqcH.js → EditViewPage-B48r4DLX.js} +5 -5
  10. package/dist/admin/chunks/{EditViewPage-Cyt_AqcH.js.map → EditViewPage-B48r4DLX.js.map} +1 -1
  11. package/dist/admin/chunks/{EditViewPage-B9oaTSxh.mjs → EditViewPage-BpGtaOKG.mjs} +5 -5
  12. package/dist/admin/chunks/{EditViewPage-B9oaTSxh.mjs.map → EditViewPage-BpGtaOKG.mjs.map} +1 -1
  13. package/dist/admin/chunks/{Form-BynZsnG8.js → Form-DD49gSWW.js} +2 -2
  14. package/dist/admin/chunks/{Form-BynZsnG8.js.map → Form-DD49gSWW.js.map} +1 -1
  15. package/dist/admin/chunks/{Form-CiDhWFF2.mjs → Form-rQQtxfmF.mjs} +2 -2
  16. package/dist/admin/chunks/{Form-CiDhWFF2.mjs.map → Form-rQQtxfmF.mjs.map} +1 -1
  17. package/dist/admin/chunks/{History-BIzCrHlU.mjs → History-BdsTgpW-.mjs} +5 -5
  18. package/dist/admin/chunks/{History-BIzCrHlU.mjs.map → History-BdsTgpW-.mjs.map} +1 -1
  19. package/dist/admin/chunks/{History-D8x3KfXk.js → History-RLJ9Svg6.js} +5 -5
  20. package/dist/admin/chunks/{History-D8x3KfXk.js.map → History-RLJ9Svg6.js.map} +1 -1
  21. package/dist/admin/chunks/{Input-Cx7glRRR.js → Input-BUVu6H9n.js} +4 -4
  22. package/dist/admin/chunks/{Input-Cx7glRRR.js.map → Input-BUVu6H9n.js.map} +1 -1
  23. package/dist/admin/chunks/{Input-BrTcf7W8.mjs → Input-CtIJ2J0c.mjs} +4 -4
  24. package/dist/admin/chunks/{Input-BrTcf7W8.mjs.map → Input-CtIJ2J0c.mjs.map} +1 -1
  25. package/dist/admin/chunks/{ListConfigurationPage-JWHsiJKb.mjs → ListConfigurationPage-38s4e-VJ.mjs} +2 -2
  26. package/dist/admin/chunks/{ListConfigurationPage-JWHsiJKb.mjs.map → ListConfigurationPage-38s4e-VJ.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-C1HEB6A1.js → ListConfigurationPage-DfnrA3dw.js} +2 -2
  28. package/dist/admin/chunks/{ListConfigurationPage-C1HEB6A1.js.map → ListConfigurationPage-DfnrA3dw.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-lpuA2rS8.mjs → ListViewPage-BTmlktgT.mjs} +3 -3
  30. package/dist/admin/chunks/{ListViewPage-lpuA2rS8.mjs.map → ListViewPage-BTmlktgT.mjs.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-38RhQMrO.js → ListViewPage-D9-LGPq_.js} +3 -3
  32. package/dist/admin/chunks/{ListViewPage-38RhQMrO.js.map → ListViewPage-D9-LGPq_.js.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-mxdu7QG9.mjs → NoContentTypePage-CcyR2i1K.mjs} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-mxdu7QG9.mjs.map → NoContentTypePage-CcyR2i1K.mjs.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-q48fU1h9.js → NoContentTypePage-owzdv-pl.js} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-q48fU1h9.js.map → NoContentTypePage-owzdv-pl.js.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-B_p7s1uj.js → NoPermissionsPage-CM_r8w5u.js} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-B_p7s1uj.js.map → NoPermissionsPage-CM_r8w5u.js.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-CihsLbNC.mjs → NoPermissionsPage-lBonAXej.mjs} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-CihsLbNC.mjs.map → NoPermissionsPage-lBonAXej.mjs.map} +1 -1
  41. package/dist/admin/chunks/{Preview-CMoqDEKI.js → Preview-Bv3GKyWZ.js} +90 -85
  42. package/dist/admin/chunks/Preview-Bv3GKyWZ.js.map +1 -0
  43. package/dist/admin/chunks/{Preview-DGQMt8XZ.mjs → Preview-Dh5Z7aGp.mjs} +92 -87
  44. package/dist/admin/chunks/Preview-Dh5Z7aGp.mjs.map +1 -0
  45. package/dist/admin/chunks/{Relations-BemEu63h.mjs → Relations-DP5krCGC.mjs} +3 -3
  46. package/dist/admin/chunks/{Relations-BemEu63h.mjs.map → Relations-DP5krCGC.mjs.map} +1 -1
  47. package/dist/admin/chunks/{Relations-BtC_Gort.js → Relations-T8Cr0N9M.js} +3 -3
  48. package/dist/admin/chunks/{Relations-BtC_Gort.js.map → Relations-T8Cr0N9M.js.map} +1 -1
  49. package/dist/admin/chunks/{index-njcS3gUl.mjs → index-BkM_Z7pU.mjs} +23 -16
  50. package/dist/admin/chunks/index-BkM_Z7pU.mjs.map +1 -0
  51. package/dist/admin/chunks/{index-D7EkCTnw.js → index-CGBB9Dho.js} +23 -16
  52. package/dist/admin/chunks/index-CGBB9Dho.js.map +1 -0
  53. package/dist/admin/chunks/{layout-os6F94Aa.mjs → layout-D8ji6QNJ.mjs} +4 -4
  54. package/dist/admin/chunks/{layout-os6F94Aa.mjs.map → layout-D8ji6QNJ.mjs.map} +1 -1
  55. package/dist/admin/chunks/{layout-Ccv9FwbI.js → layout-Dbmjk7mC.js} +4 -4
  56. package/dist/admin/chunks/{layout-Ccv9FwbI.js.map → layout-Dbmjk7mC.js.map} +1 -1
  57. package/dist/admin/chunks/{relations-De8hSklO.mjs → relations-Dv0FHoBS.mjs} +2 -2
  58. package/dist/admin/chunks/{relations-De8hSklO.mjs.map → relations-Dv0FHoBS.mjs.map} +1 -1
  59. package/dist/admin/chunks/{relations-iguhDgFp.js → relations-jNJK8ESO.js} +2 -2
  60. package/dist/admin/chunks/{relations-iguhDgFp.js.map → relations-jNJK8ESO.js.map} +1 -1
  61. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  62. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  63. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  64. package/dist/admin/chunks/uk-DB6OgySY.js.map +1 -0
  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/hooks/useDocument.d.ts +2 -0
  69. package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
  70. package/dist/admin/src/preview/pages/Preview.d.ts +2 -0
  71. package/package.json +8 -8
  72. package/dist/admin/chunks/Preview-CMoqDEKI.js.map +0 -1
  73. package/dist/admin/chunks/Preview-DGQMt8XZ.mjs.map +0 -1
  74. package/dist/admin/chunks/index-D7EkCTnw.js.map +0 -1
  75. package/dist/admin/chunks/index-njcS3gUl.mjs.map +0 -1
  76. package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
  77. package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
  78. package/dist/admin/chunks/uk-Cpgmm7gE.mjs +0 -140
  79. package/dist/admin/chunks/uk-Cpgmm7gE.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useStrapiApp, useQueryParams, useNotification, useClipboard, DescriptionComponentRenderer, useHistory, createContext, useRBAC, Page, Form } from '@strapi/admin/strapi-admin';
4
- import { Flex, Box, IconButton, Typography, Tabs, Grid, Portal, FocusTrap } from '@strapi/design-system';
4
+ import { Box, Typography, Tabs, Flex, IconButton, Grid, Portal, FocusTrap } from '@strapi/design-system';
5
+ import { Link, Cross, ArrowLeft } from '@strapi/icons';
5
6
  import { useIntl } from 'react-intl';
6
7
  import { Link as Link$1, useParams, useLocation } from 'react-router-dom';
7
- import { I as InjectionZone, N as DocumentActionButton, D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, O as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout, i as createYupSchema } from './index-njcS3gUl.mjs';
8
- import { ArrowLeft, Link, Cross } from '@strapi/icons';
9
8
  import { styled } from 'styled-components';
10
- import { F as FormLayout } from './Input-BrTcf7W8.mjs';
9
+ import { I as InjectionZone, N as DocumentActionButton, D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, O as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout, i as createYupSchema } from './index-BkM_Z7pU.mjs';
10
+ import { F as FormLayout } from './Input-CtIJ2J0c.mjs';
11
11
  import { stringify } from 'qs';
12
- import { getDocumentStatus } from './EditViewPage-B9oaTSxh.mjs';
12
+ import { getDocumentStatus } from './EditViewPage-BpGtaOKG.mjs';
13
13
  import 'lodash/fp/mapValues';
14
14
  import 'yup';
15
15
  import 'fractional-indexing';
@@ -78,9 +78,9 @@ import 'react-dnd-html5-backend';
78
78
  import './objects-wl73iEma.mjs';
79
79
  import 'lodash/clone';
80
80
  import 'lodash/toPath';
81
- import './Relations-BemEu63h.mjs';
81
+ import './Relations-DP5krCGC.mjs';
82
82
  import 'react-window';
83
- import './relations-De8hSklO.mjs';
83
+ import './relations-Dv0FHoBS.mjs';
84
84
  import './ComponentIcon-BZcTc4rj.mjs';
85
85
  import '@strapi/icons/symbols';
86
86
  import 'codemirror5';
@@ -99,77 +99,6 @@ import 'markdown-it-sup';
99
99
  import 'highlight.js/styles/solarized-dark.css';
100
100
  import 'codemirror5/addon/display/placeholder';
101
101
 
102
- // TODO use ArrowLineLeft once it's available in the DS
103
- const AnimatedArrow = styled(ArrowLeft)`
104
- will-change: transform;
105
- rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
106
- transition: rotate 0.2s ease-in-out;
107
- `;
108
- const UnstablePreviewContent = ()=>{
109
- const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
110
- const layout = usePreviewContext('PreviewContent', (state)=>state.layout);
111
- const { formatMessage } = useIntl();
112
- const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
113
- return /*#__PURE__*/ jsxs(Flex, {
114
- flex: 1,
115
- overflow: "auto",
116
- alignItems: "stretch",
117
- children: [
118
- /*#__PURE__*/ jsx(Box, {
119
- overflow: "auto",
120
- width: isSideEditorOpen ? '50%' : 0,
121
- borderWidth: "0 1px 0 0",
122
- borderColor: "neutral150",
123
- paddingTop: 6,
124
- paddingBottom: 6,
125
- // Remove horizontal padding when the editor is closed or it won't fully disappear
126
- paddingLeft: isSideEditorOpen ? 6 : 0,
127
- paddingRight: isSideEditorOpen ? 6 : 0,
128
- transition: "all 0.2s ease-in-out",
129
- children: /*#__PURE__*/ jsx(FormLayout, {
130
- layout: layout.layout,
131
- hasBackground: true
132
- })
133
- }),
134
- /*#__PURE__*/ jsxs(Box, {
135
- position: "relative",
136
- flex: 1,
137
- height: "100%",
138
- overflow: "hidden",
139
- children: [
140
- /*#__PURE__*/ jsx(Box, {
141
- src: previewUrl,
142
- title: formatMessage({
143
- id: 'content-manager.preview.panel.title',
144
- defaultMessage: 'Preview'
145
- }),
146
- width: "100%",
147
- height: "100%",
148
- borderWidth: 0,
149
- tag: "iframe"
150
- }, previewUrl),
151
- /*#__PURE__*/ jsx(IconButton, {
152
- variant: "tertiary",
153
- label: formatMessage(isSideEditorOpen ? {
154
- id: 'content-manager.preview.content.close-editor',
155
- defaultMessage: 'Close editor'
156
- } : {
157
- id: 'content-manager.preview.content.open-editor',
158
- defaultMessage: 'Open editor'
159
- }),
160
- onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
161
- position: "absolute",
162
- top: 2,
163
- left: 2,
164
- children: /*#__PURE__*/ jsx(AnimatedArrow, {
165
- isSideEditorOpen: isSideEditorOpen
166
- })
167
- })
168
- ]
169
- })
170
- ]
171
- });
172
- };
173
102
  const PreviewContent = ()=>{
174
103
  const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
175
104
  const { formatMessage } = useIntl();
@@ -303,6 +232,7 @@ const PreviewTabs = ()=>{
303
232
  const schema = usePreviewContext('PreviewHeader', (state)=>state.schema);
304
233
  const meta = usePreviewContext('PreviewHeader', (state)=>state.meta);
305
234
  const plugins = useStrapiApp('PreviewHeader', (state)=>state.plugins);
235
+ const iframeRef = usePreviewContext('PreviewHeader', (state)=>state.iframeRef);
306
236
  const [{ query }] = useQueryParams();
307
237
  const { formatMessage } = useIntl();
308
238
  const { toggleNotification } = useNotification();
@@ -318,13 +248,18 @@ const PreviewTabs = ()=>{
318
248
  });
319
249
  };
320
250
  const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;
321
- const props = {
251
+ const documentActionProps = {
322
252
  activeTab: query.status ?? null,
323
253
  collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',
324
254
  model: schema.uid,
325
255
  documentId: document.documentId,
326
256
  document,
327
- meta
257
+ meta,
258
+ onPreview: ()=>{
259
+ iframeRef?.current?.contentWindow?.postMessage({
260
+ type: 'strapiUpdate'
261
+ });
262
+ }
328
263
  };
329
264
  return /*#__PURE__*/ jsxs(Flex, {
330
265
  height: "48px",
@@ -378,7 +313,7 @@ const PreviewTabs = ()=>{
378
313
  area: "preview.actions"
379
314
  }),
380
315
  /*#__PURE__*/ jsx(DescriptionComponentRenderer, {
381
- props: props,
316
+ props: documentActionProps,
382
317
  descriptions: plugins['content-manager'].apis.getDocumentActions('preview'),
383
318
  children: (actions)=>{
384
319
  const filteredActions = actions.filter((action)=>[
@@ -498,9 +433,16 @@ const TitleContainer = styled(Flex)`
498
433
  const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
499
434
  /* -------------------------------------------------------------------------------------------------
500
435
  * PreviewPage
501
- * -----------------------------------------------------------------------------------------------*/ const PreviewPage = ()=>{
436
+ * -----------------------------------------------------------------------------------------------*/ const AnimatedArrow = styled(ArrowLeft)`
437
+ will-change: transform;
438
+ rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
439
+ transition: rotate 0.2s ease-in-out;
440
+ `;
441
+ const PreviewPage = ()=>{
502
442
  const location = useLocation();
503
443
  const { formatMessage } = useIntl();
444
+ const iframeRef = React.useRef(null);
445
+ const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
504
446
  // Read all the necessary data from the URL to find the right preview URL
505
447
  const { slug: model, id: documentId, collectionType } = useParams();
506
448
  const [{ query }] = useQueryParams();
@@ -534,7 +476,8 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
534
476
  params
535
477
  });
536
478
  const documentLayoutResponse = useDocumentLayout(model);
537
- if (documentResponse.isLoading || previewUrlResponse.isLoading || documentLayoutResponse.isLoading) {
479
+ const isLoading = previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;
480
+ if (isLoading && !documentResponse.document?.documentId) {
538
481
  return /*#__PURE__*/ jsx(Page.Loading, {});
539
482
  }
540
483
  const initialValues = documentResponse.getInitialFormValues();
@@ -554,6 +497,7 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
554
497
  abortEarly: false
555
498
  });
556
499
  };
500
+ const previewUrl = previewUrlResponse.data.data.url;
557
501
  return /*#__PURE__*/ jsxs(Fragment, {
558
502
  children: [
559
503
  /*#__PURE__*/ jsx(Page.Title, {
@@ -565,12 +509,13 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
565
509
  })
566
510
  }),
567
511
  /*#__PURE__*/ jsx(PreviewProvider, {
568
- url: previewUrlResponse.data.data.url,
512
+ url: previewUrl,
569
513
  document: documentResponse.document,
570
514
  title: documentTitle,
571
515
  meta: documentResponse.meta,
572
516
  schema: documentResponse.schema,
573
517
  layout: documentLayoutResponse.edit,
518
+ iframeRef: iframeRef,
574
519
  children: /*#__PURE__*/ jsx(Form, {
575
520
  method: "PUT",
576
521
  disabled: query.status === 'published' && documentResponse && documentResponse.document.status === 'published',
@@ -593,7 +538,67 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
593
538
  children: window.strapi.future.isEnabled('unstablePreviewSideEditor') ? /*#__PURE__*/ jsxs(Fragment, {
594
539
  children: [
595
540
  /*#__PURE__*/ jsx(UnstablePreviewHeader, {}),
596
- /*#__PURE__*/ jsx(UnstablePreviewContent, {})
541
+ /*#__PURE__*/ jsxs(Flex, {
542
+ flex: 1,
543
+ overflow: "auto",
544
+ alignItems: "stretch",
545
+ children: [
546
+ /*#__PURE__*/ jsx(Box, {
547
+ overflow: "auto",
548
+ width: isSideEditorOpen ? '50%' : 0,
549
+ borderWidth: "0 1px 0 0",
550
+ borderColor: "neutral150",
551
+ paddingTop: 6,
552
+ paddingBottom: 6,
553
+ // Remove horizontal padding when the editor is closed or it won't fully disappear
554
+ paddingLeft: isSideEditorOpen ? 6 : 0,
555
+ paddingRight: isSideEditorOpen ? 6 : 0,
556
+ transition: "all 0.2s ease-in-out",
557
+ children: /*#__PURE__*/ jsx(FormLayout, {
558
+ layout: documentLayoutResponse.edit.layout,
559
+ hasBackground: true
560
+ })
561
+ }),
562
+ /*#__PURE__*/ jsxs(Box, {
563
+ position: "relative",
564
+ flex: 1,
565
+ height: "100%",
566
+ overflow: "hidden",
567
+ children: [
568
+ /*#__PURE__*/ jsx(Box, {
569
+ "data-testid": "preview-iframe",
570
+ ref: iframeRef,
571
+ src: previewUrl,
572
+ title: formatMessage({
573
+ id: 'content-manager.preview.panel.title',
574
+ defaultMessage: 'Preview'
575
+ }),
576
+ width: "100%",
577
+ height: "100%",
578
+ borderWidth: 0,
579
+ tag: "iframe"
580
+ }, previewUrl),
581
+ /*#__PURE__*/ jsx(IconButton, {
582
+ variant: "tertiary",
583
+ label: formatMessage(isSideEditorOpen ? {
584
+ id: 'content-manager.preview.content.close-editor',
585
+ defaultMessage: 'Close editor'
586
+ } : {
587
+ id: 'content-manager.preview.content.open-editor',
588
+ defaultMessage: 'Open editor'
589
+ }),
590
+ onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
591
+ position: "absolute",
592
+ top: 2,
593
+ left: 2,
594
+ children: /*#__PURE__*/ jsx(AnimatedArrow, {
595
+ isSideEditorOpen: isSideEditorOpen
596
+ })
597
+ })
598
+ ]
599
+ })
600
+ ]
601
+ })
597
602
  ]
598
603
  }) : /*#__PURE__*/ jsxs(Fragment, {
599
604
  children: [
@@ -666,4 +671,4 @@ const ProtectedPreviewPage = ()=>{
666
671
  };
667
672
 
668
673
  export { ProtectedPreviewPage, usePreviewContext };
669
- //# sourceMappingURL=Preview-DGQMt8XZ.mjs.map
674
+ //# sourceMappingURL=Preview-Dh5Z7aGp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preview-Dh5Z7aGp.mjs","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent };\n","import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n const iframeRef = usePreviewContext('PreviewHeader', (state) => state.iframeRef);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const documentActionProps = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n onPreview: () => {\n iframeRef?.current?.contentWindow?.postMessage({ type: 'strapiUpdate' });\n },\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <Flex flex=\"1 1 70%\">\n <PreviewTabs />\n </Flex>\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <InjectionZone area=\"preview.actions\" />\n <DescriptionComponentRenderer\n props={documentActionProps}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, IconButton, Portal } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n iframeRef?: React.RefObject<HTMLIFrameElement>;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n iframeRef={iframeRef}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout layout={documentLayoutResponse.edit.layout} hasBackground />\n </Box>\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n data-testid=\"preview-iframe\"\n ref={iframeRef}\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n </Box>\n </Flex>\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </FormContext>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["PreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsx","Box","src","title","id","defaultMessage","width","height","borderWidth","tag","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","variant","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","plugins","useStrapiApp","iframeRef","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","documentActionProps","activeTab","collectionType","kind","model","uid","documentId","onPreview","current","contentWindow","postMessage","Flex","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","flex","justifyContent","LinkIcon","InjectionZone","area","DescriptionComponentRenderer","props","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","position","flat","includes","primaryAction","secondaryAction","_Fragment","DocumentActionButton","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","alignItems","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","AnimatedArrow","ArrowLeft","isSideEditorOpen","PreviewPage","useLocation","React","useRef","setIsSideEditorOpen","useState","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","Title","layout","FormContext","method","initialErrors","forceValidation","validate","direction","strapi","future","isEnabled","overflow","transition","FormLayout","hasBackground","data-testid","ref","prev","top","left","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
@@ -10,9 +10,9 @@ import { useIntl } from 'react-intl';
10
10
  import { NavLink } from 'react-router-dom';
11
11
  import { FixedSizeList } from 'react-window';
12
12
  import { styled } from 'styled-components';
13
- import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-njcS3gUl.mjs';
13
+ import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-BkM_Z7pU.mjs';
14
14
  import { u as useDragAndDrop, I as ItemTypes, D as DROP_SENSITIVITY } from './useDragAndDrop-HYwNDExe.mjs';
15
- import { u as useGetRelationsQuery, g as getRelationLabel, a as useDebounce, b as useLazySearchRelationsQuery } from './relations-De8hSklO.mjs';
15
+ import { u as useGetRelationsQuery, g as getRelationLabel, a as useDebounce, b as useLazySearchRelationsQuery } from './relations-Dv0FHoBS.mjs';
16
16
 
17
17
  /**
18
18
  * We use this component to wrap any individual component field in the Edit View,
@@ -1288,4 +1288,4 @@ const MemoizedRelationsField = /*#__PURE__*/ React.memo(RelationsField);
1288
1288
  const MemoizedUnstableRelationsField = /*#__PURE__*/ React.memo(UnstableRelationsField);
1289
1289
 
1290
1290
  export { ComponentProvider as C, DisconnectButton as D, FlexWrapper as F, LinkEllipsis as L, MemoizedUnstableRelationsField as M, MemoizedRelationsField as a, useComponent as u };
1291
- //# sourceMappingURL=Relations-BemEu63h.mjs.map
1291
+ //# sourceMappingURL=Relations-DP5krCGC.mjs.map