@strapi/content-manager 0.0.0-next.e98ae27d8c69c68823eb7c46cf329385637ba393 → 0.0.0-next.eb48c73c86cbc452c1ba8d727106f9ed9da0c834

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 (113) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-Bn-SMKJG.js → ComponentConfigurationPage-B-gE3kXG.js} +5 -6
  2. package/dist/admin/chunks/{ComponentConfigurationPage-Bn-SMKJG.js.map → ComponentConfigurationPage-B-gE3kXG.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-Cqi5KqZa.mjs → ComponentConfigurationPage-R5N6EwIp.mjs} +5 -6
  4. package/dist/admin/chunks/{ComponentConfigurationPage-Cqi5KqZa.mjs.map → ComponentConfigurationPage-R5N6EwIp.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-Dm16gciL.mjs → EditConfigurationPage-0y9O2nBU.mjs} +5 -6
  6. package/dist/admin/chunks/{EditConfigurationPage-Dm16gciL.mjs.map → EditConfigurationPage-0y9O2nBU.mjs.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-CRxsqOhS.js → EditConfigurationPage-C62WuGTf.js} +5 -6
  8. package/dist/admin/chunks/{EditConfigurationPage-CRxsqOhS.js.map → EditConfigurationPage-C62WuGTf.js.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-Dk8CeS40.js → EditViewPage-CiYAHBOX.js} +102 -95
  10. package/dist/admin/chunks/EditViewPage-CiYAHBOX.js.map +1 -0
  11. package/dist/admin/chunks/{EditViewPage-eTCSh2HB.mjs → EditViewPage-CkO2YLdg.mjs} +102 -95
  12. package/dist/admin/chunks/EditViewPage-CkO2YLdg.mjs.map +1 -0
  13. package/dist/admin/chunks/{Form-PB1sNax8.js → Form-DUs6lQ0C.js} +5 -5
  14. package/dist/admin/chunks/{Form-PB1sNax8.js.map → Form-DUs6lQ0C.js.map} +1 -1
  15. package/dist/admin/chunks/{Form-K_hq8zU4.mjs → Form-Db9A3cMO.mjs} +3 -3
  16. package/dist/admin/chunks/{Form-K_hq8zU4.mjs.map → Form-Db9A3cMO.mjs.map} +1 -1
  17. package/dist/admin/chunks/{History-CD5uVchr.mjs → History-BQ7IAJjV.mjs} +16 -12
  18. package/dist/admin/chunks/History-BQ7IAJjV.mjs.map +1 -0
  19. package/dist/admin/chunks/{History-CfsF-U-3.js → History-D99wxPry.js} +17 -13
  20. package/dist/admin/chunks/History-D99wxPry.js.map +1 -0
  21. package/dist/admin/chunks/{Input-grmHplxs.mjs → Input-CHDnpU3S.mjs} +1340 -55
  22. package/dist/admin/chunks/Input-CHDnpU3S.mjs.map +1 -0
  23. package/dist/admin/chunks/{Input-CU93J6dl.js → Input-Gop65dq6.js} +1352 -64
  24. package/dist/admin/chunks/Input-Gop65dq6.js.map +1 -0
  25. package/dist/admin/chunks/{ListConfigurationPage-Eo8txFp0.mjs → ListConfigurationPage-Bte99c0c.mjs} +4 -5
  26. package/dist/admin/chunks/{ListConfigurationPage-Eo8txFp0.mjs.map → ListConfigurationPage-Bte99c0c.mjs.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-nZti--Mw.js → ListConfigurationPage-pAdM7Lbn.js} +6 -7
  28. package/dist/admin/chunks/{ListConfigurationPage-nZti--Mw.js.map → ListConfigurationPage-pAdM7Lbn.js.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-BBX-zSka.mjs → ListViewPage-7RTPaDs2.mjs} +3 -5
  30. package/dist/admin/chunks/ListViewPage-7RTPaDs2.mjs.map +1 -0
  31. package/dist/admin/chunks/{ListViewPage-DQYvHCxn.js → ListViewPage-CaBwwCVc.js} +7 -9
  32. package/dist/admin/chunks/ListViewPage-CaBwwCVc.js.map +1 -0
  33. package/dist/admin/chunks/{NoContentTypePage-C-rbOQO1.mjs → NoContentTypePage-CuTk3q_I.mjs} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-C-rbOQO1.mjs.map → NoContentTypePage-CuTk3q_I.mjs.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-ChYgz3sN.js → NoContentTypePage-DLD28j4F.js} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-ChYgz3sN.js.map → NoContentTypePage-DLD28j4F.js.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-CuxrInhz.mjs → NoPermissionsPage-DSIlPmvv.mjs} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-CuxrInhz.mjs.map → NoPermissionsPage-DSIlPmvv.mjs.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-H4SAlJeF.js → NoPermissionsPage-iVMEcUp0.js} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-H4SAlJeF.js.map → NoPermissionsPage-iVMEcUp0.js.map} +1 -1
  41. package/dist/admin/chunks/{Preview-HqnNXn4S.mjs → Preview-35wsOM_p.mjs} +136 -211
  42. package/dist/admin/chunks/Preview-35wsOM_p.mjs.map +1 -0
  43. package/dist/admin/chunks/{Preview-Bz2dgOiw.js → Preview-CSU1sCSK.js} +134 -209
  44. package/dist/admin/chunks/Preview-CSU1sCSK.js.map +1 -0
  45. package/dist/admin/chunks/{en-CImiNxXE.mjs → en-C2zEwS3-.mjs} +4 -1
  46. package/dist/admin/chunks/{en-CImiNxXE.mjs.map → en-C2zEwS3-.mjs.map} +1 -1
  47. package/dist/admin/chunks/{en-CLf4SuMQ.js → en-G976DLsg.js} +4 -1
  48. package/dist/admin/chunks/{en-CLf4SuMQ.js.map → en-G976DLsg.js.map} +1 -1
  49. package/dist/admin/chunks/{index-DfX0uEQT.js → index-Cmh0Byay.js} +213 -129
  50. package/dist/admin/chunks/index-Cmh0Byay.js.map +1 -0
  51. package/dist/admin/chunks/{index-CS_nLuw2.mjs → index-DFvqTQvr.mjs} +212 -131
  52. package/dist/admin/chunks/index-DFvqTQvr.mjs.map +1 -0
  53. package/dist/admin/chunks/{layout-B4Uk0v1z.js → layout-DuH1v82S.js} +86 -13
  54. package/dist/admin/chunks/layout-DuH1v82S.js.map +1 -0
  55. package/dist/admin/chunks/{layout-BInXGFmo.mjs → layout-zQ9o6rg0.mjs} +78 -5
  56. package/dist/admin/chunks/layout-zQ9o6rg0.mjs.map +1 -0
  57. package/dist/admin/chunks/{useDragAndDrop-gcqEJMnO.js → objects-BJTP843m.js} +73 -1
  58. package/dist/admin/chunks/objects-BJTP843m.js.map +1 -0
  59. package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.mjs → objects-D2z-IJgu.mjs} +72 -2
  60. package/dist/admin/chunks/objects-D2z-IJgu.mjs.map +1 -0
  61. package/dist/admin/chunks/{relations-9C5dQI9e.js → usePrev-B_pceXQ5.js} +18 -2
  62. package/dist/admin/chunks/usePrev-B_pceXQ5.js.map +1 -0
  63. package/dist/admin/chunks/{relations-CwL0ThH9.mjs → usePrev-CJFOGBK2.mjs} +18 -4
  64. package/dist/admin/chunks/usePrev-CJFOGBK2.mjs.map +1 -0
  65. package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs → zh-Hans-DEAhqI3x.mjs} +3 -2
  66. package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs.map → zh-Hans-DEAhqI3x.mjs.map} +1 -1
  67. package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js → zh-Hans-Djj7eGpO.js} +3 -2
  68. package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js.map → zh-Hans-Djj7eGpO.js.map} +1 -1
  69. package/dist/admin/index.js +1 -1
  70. package/dist/admin/index.mjs +1 -1
  71. package/dist/admin/src/content-manager.d.ts +3 -0
  72. package/dist/admin/src/features/DocumentContext.d.ts +53 -0
  73. package/dist/admin/src/features/DocumentRBAC.d.ts +3 -2
  74. package/dist/admin/src/hooks/useDocument.d.ts +2 -0
  75. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -1
  76. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  77. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +8 -0
  78. package/dist/admin/src/pages/EditView/components/FormInputs/{Relations.d.ts → Relations/Relations.d.ts} +9 -4
  79. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +8 -3
  80. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +7 -4
  81. package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
  82. package/package.json +6 -6
  83. package/dist/admin/chunks/EditViewPage-Dk8CeS40.js.map +0 -1
  84. package/dist/admin/chunks/EditViewPage-eTCSh2HB.mjs.map +0 -1
  85. package/dist/admin/chunks/History-CD5uVchr.mjs.map +0 -1
  86. package/dist/admin/chunks/History-CfsF-U-3.js.map +0 -1
  87. package/dist/admin/chunks/Input-CU93J6dl.js.map +0 -1
  88. package/dist/admin/chunks/Input-grmHplxs.mjs.map +0 -1
  89. package/dist/admin/chunks/ListViewPage-BBX-zSka.mjs.map +0 -1
  90. package/dist/admin/chunks/ListViewPage-DQYvHCxn.js.map +0 -1
  91. package/dist/admin/chunks/Preview-Bz2dgOiw.js.map +0 -1
  92. package/dist/admin/chunks/Preview-HqnNXn4S.mjs.map +0 -1
  93. package/dist/admin/chunks/Relations-BMvL4yMN.mjs +0 -1291
  94. package/dist/admin/chunks/Relations-BMvL4yMN.mjs.map +0 -1
  95. package/dist/admin/chunks/Relations-CbCAt692.js +0 -1318
  96. package/dist/admin/chunks/Relations-CbCAt692.js.map +0 -1
  97. package/dist/admin/chunks/index-CS_nLuw2.mjs.map +0 -1
  98. package/dist/admin/chunks/index-DfX0uEQT.js.map +0 -1
  99. package/dist/admin/chunks/layout-B4Uk0v1z.js.map +0 -1
  100. package/dist/admin/chunks/layout-BInXGFmo.mjs.map +0 -1
  101. package/dist/admin/chunks/objects-C3EebVVe.js +0 -76
  102. package/dist/admin/chunks/objects-C3EebVVe.js.map +0 -1
  103. package/dist/admin/chunks/objects-wl73iEma.mjs +0 -73
  104. package/dist/admin/chunks/objects-wl73iEma.mjs.map +0 -1
  105. package/dist/admin/chunks/relations-9C5dQI9e.js.map +0 -1
  106. package/dist/admin/chunks/relations-CwL0ThH9.mjs.map +0 -1
  107. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +0 -1
  108. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +0 -1
  109. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs +0 -18
  110. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +0 -1
  111. package/dist/admin/chunks/usePrev-DIYl-IAL.js +0 -21
  112. package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +0 -1
  113. package/dist/admin/src/preview/components/PreviewContent.d.ts +0 -3
@@ -1,6 +1,6 @@
1
1
  import { Cross, WarningCircle, More, ListPlus, Pencil, Trash, Check, CheckCircle, ArrowsCounterClockwise, CrossCircle, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from '@strapi/icons';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import { useStrapiApp, createContext, useQueryParams, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useForm, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from '@strapi/admin/strapi-admin';
3
+ import { useStrapiApp, adminApi, translatedErrors, useNotification, useAPIErrorHandler, useQueryParams, getYupValidationErrors, useForm, createContext, useAuth, useRBAC, Page, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from '@strapi/admin/strapi-admin';
4
4
  import * as React from 'react';
5
5
  import { lazy } from 'react';
6
6
  import { Menu, Flex, Typography, Radio, Button, VisuallyHidden, Dialog, Modal, Status, Box, SingleSelect, SingleSelectOption, IconButton, RawTable, Loader, Tbody, Tr, Td, Tooltip, LinkButton } from '@strapi/design-system';
@@ -99,102 +99,6 @@ const DOCUMENT_META_FIELDS = [
99
99
  const SINGLE_TYPES = 'single-types';
100
100
  const COLLECTION_TYPES = 'collection-types';
101
101
 
102
- const [DocumentRBACProvider, useDocumentRBAC] = createContext('DocumentRBAC', {
103
- canCreate: false,
104
- canCreateFields: [],
105
- canDelete: false,
106
- canPublish: false,
107
- canRead: false,
108
- canReadFields: [],
109
- canUpdate: false,
110
- canUpdateFields: [],
111
- canUserAction: ()=>false,
112
- isLoading: false
113
- });
114
- /**
115
- * @internal This component is not meant to be used outside of the Content Manager plugin.
116
- * It depends on knowing the slug/model of the content-type using the params of the URL.
117
- * If you do use the hook outside of the context, we default to `false` for all actions.
118
- *
119
- * It then creates an list of `can{Action}` that are passed to the context for consumption
120
- * within the app to enforce RBAC.
121
- */ const DocumentRBAC = ({ children, permissions })=>{
122
- const { slug } = useParams();
123
- if (!slug) {
124
- throw new Error('Cannot find the slug param in the URL');
125
- }
126
- const [{ rawQuery }] = useQueryParams();
127
- const userPermissions = useAuth('DocumentRBAC', (state)=>state.permissions);
128
- const contentTypePermissions = React.useMemo(()=>{
129
- const contentTypePermissions = userPermissions.filter((permission)=>permission.subject === slug);
130
- return contentTypePermissions.reduce((acc, permission)=>{
131
- const [action] = permission.action.split('.').slice(-1);
132
- return {
133
- ...acc,
134
- [action]: [
135
- permission
136
- ]
137
- };
138
- }, {});
139
- }, [
140
- slug,
141
- userPermissions
142
- ]);
143
- const { isLoading, allowedActions } = useRBAC(contentTypePermissions, permissions ?? undefined, // TODO: useRBAC context should be typed and built differently
144
- // We are passing raw query as context to the hook so that it can
145
- // rely on the locale provided from DocumentRBAC for its permission calculations.
146
- rawQuery);
147
- const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
148
- const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
149
- const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
150
- /**
151
- * @description Checks if the user can perform an action on a field based on the field names
152
- * provided as the second argument.
153
- */ const canUserAction = React.useCallback((fieldName, fieldsUserCanAction, fieldType)=>{
154
- const name = removeNumericalStrings(fieldName.split('.'));
155
- const componentFieldNames = fieldsUserCanAction// filter out fields that aren't components (components are dot separated)
156
- .filter((field)=>field.split('.').length > 1);
157
- if (fieldType === 'component') {
158
- // check if the field name is within any of those arrays
159
- return componentFieldNames.some((field)=>{
160
- return field.includes(name.join('.'));
161
- });
162
- }
163
- /**
164
- * The field is within a component.
165
- */ if (name.length > 1) {
166
- return componentFieldNames.includes(name.join('.'));
167
- }
168
- /**
169
- * just a regular field
170
- */ return fieldsUserCanAction.includes(fieldName);
171
- }, []);
172
- if (isLoading) {
173
- return /*#__PURE__*/ jsx(Page.Loading, {});
174
- }
175
- return /*#__PURE__*/ jsx(DocumentRBACProvider, {
176
- isLoading: isLoading,
177
- canCreateFields: canCreateFields,
178
- canReadFields: canReadFields,
179
- canUpdateFields: canUpdateFields,
180
- canUserAction: canUserAction,
181
- ...allowedActions,
182
- children: children
183
- });
184
- };
185
- /**
186
- * @internal it's really small, but it's used three times in a row and DRY for something this straight forward.
187
- */ const extractAndDedupeFields = (permissions = [])=>permissions.flatMap((permission)=>permission.properties?.fields).filter((field, index, arr)=>arr.indexOf(field) === index && typeof field === 'string');
188
- /**
189
- * @internal removes numerical strings from arrays.
190
- * @example
191
- * ```ts
192
- * const name = 'a.0.b';
193
- * const res = removeNumericalStrings(name.split('.'));
194
- * console.log(res); // ['a', 'b']
195
- * ```
196
- */ const removeNumericalStrings = (arr)=>arr.filter((item)=>isNaN(Number(item)));
197
-
198
102
  const BLOCK_LIST_ATTRIBUTE_KEYS = [
199
103
  '__component',
200
104
  '__temp_key__'
@@ -1505,7 +1409,7 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
1505
1409
  const { toggleNotification } = useNotification();
1506
1410
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1507
1411
  const { formatMessage } = useIntl();
1508
- const { currentData: data, isLoading: isLoadingDocument, isFetching: isFetchingDocument, error } = useGetDocumentQuery(args, {
1412
+ const { currentData: data, isLoading: isLoadingDocument, isFetching: isFetchingDocument, error, refetch } = useGetDocumentQuery(args, {
1509
1413
  ...opts,
1510
1414
  skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
1511
1415
  });
@@ -1604,7 +1508,8 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
1604
1508
  schemas,
1605
1509
  validate,
1606
1510
  getTitle,
1607
- getInitialFormValues
1511
+ getInitialFormValues,
1512
+ refetch
1608
1513
  };
1609
1514
  };
1610
1515
  /* -------------------------------------------------------------------------------------------------
@@ -1677,6 +1582,144 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
1677
1582
  };
1678
1583
  };
1679
1584
 
1585
+ const [DocumentProvider, useDocumentContext] = createContext('DocumentContext');
1586
+ /**
1587
+ * TODO: Document in contributor docs, Add unit test
1588
+ *
1589
+ * This context provider and its associated hook are used to access a document at its root level
1590
+ * and expose a function to change the current document being viewed to one of the root level docuemnt's relations.
1591
+ *
1592
+ * The useDocumentContext hook exposes:
1593
+ * - meta: information about the currentDocument,
1594
+ * - document: the actual document,
1595
+ * - changeDocument: a function to change the current document to one of its relations.
1596
+ * - rootDocumentMeta: information about the root level document (current page)
1597
+ */ const DocumentContextProvider = ({ children, initialDocument, onPreview })=>{
1598
+ /**
1599
+ * Initialize with the "root" document and expose a setter method to change to
1600
+ * one of the root level document's relations.
1601
+ */ const [currentDocumentMeta, changeDocument] = React.useState(initialDocument);
1602
+ const params = React.useMemo(()=>buildValidParams(currentDocumentMeta.params ?? {}), [
1603
+ currentDocumentMeta.params
1604
+ ]);
1605
+ const document = useDocument({
1606
+ ...currentDocumentMeta,
1607
+ params
1608
+ });
1609
+ const [documentHistory, setDocumentHistory] = React.useState([]);
1610
+ return /*#__PURE__*/ jsx(DocumentProvider, {
1611
+ changeDocument: changeDocument,
1612
+ document: document,
1613
+ rootDocumentMeta: {
1614
+ documentId: initialDocument.documentId,
1615
+ model: initialDocument.model,
1616
+ collectionType: initialDocument.collectionType
1617
+ },
1618
+ meta: currentDocumentMeta,
1619
+ documentHistory: documentHistory,
1620
+ setDocumentHistory: setDocumentHistory,
1621
+ onPreview: onPreview,
1622
+ children: children
1623
+ });
1624
+ };
1625
+
1626
+ const [DocumentRBACProvider, useDocumentRBAC] = createContext('DocumentRBAC', {
1627
+ canCreate: false,
1628
+ canCreateFields: [],
1629
+ canDelete: false,
1630
+ canPublish: false,
1631
+ canRead: false,
1632
+ canReadFields: [],
1633
+ canUpdate: false,
1634
+ canUpdateFields: [],
1635
+ canUserAction: ()=>false,
1636
+ isLoading: false
1637
+ });
1638
+ /**
1639
+ * @internal This component is not meant to be used outside of the Content Manager plugin.
1640
+ * It depends on knowing the slug/model of the content-type using the params of the URL or the model if it is passed as arg.
1641
+ * If you do use the hook outside of the context, we default to `false` for all actions.
1642
+ *
1643
+ * It then creates an list of `can{Action}` that are passed to the context for consumption
1644
+ * within the app to enforce RBAC.
1645
+ */ const DocumentRBAC = ({ children, permissions, model })=>{
1646
+ const { slug } = useParams();
1647
+ if (!slug && !model) {
1648
+ throw new Error('Cannot find the slug param in the URL or the model prop is not provided.');
1649
+ }
1650
+ const contentTypeUid = model ?? slug;
1651
+ const [{ rawQuery }] = useQueryParams();
1652
+ const userPermissions = useAuth('DocumentRBAC', (state)=>state.permissions);
1653
+ const contentTypePermissions = React.useMemo(()=>{
1654
+ const contentTypePermissions = userPermissions.filter((permission)=>permission.subject === contentTypeUid);
1655
+ return contentTypePermissions.reduce((acc, permission)=>{
1656
+ const [action] = permission.action.split('.').slice(-1);
1657
+ return {
1658
+ ...acc,
1659
+ [action]: [
1660
+ permission
1661
+ ]
1662
+ };
1663
+ }, {});
1664
+ }, [
1665
+ contentTypeUid,
1666
+ userPermissions
1667
+ ]);
1668
+ const { isLoading, allowedActions } = useRBAC(contentTypePermissions, permissions ?? undefined, // TODO: useRBAC context should be typed and built differently
1669
+ // We are passing raw query as context to the hook so that it can
1670
+ // rely on the locale provided from DocumentRBAC for its permission calculations.
1671
+ rawQuery);
1672
+ const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
1673
+ const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
1674
+ const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
1675
+ /**
1676
+ * @description Checks if the user can perform an action on a field based on the field names
1677
+ * provided as the second argument.
1678
+ */ const canUserAction = React.useCallback((fieldName, fieldsUserCanAction, fieldType)=>{
1679
+ const name = removeNumericalStrings(fieldName.split('.'));
1680
+ const componentFieldNames = fieldsUserCanAction// filter out fields that aren't components (components are dot separated)
1681
+ .filter((field)=>field.split('.').length > 1);
1682
+ if (fieldType === 'component') {
1683
+ // check if the field name is within any of those arrays
1684
+ return componentFieldNames.some((field)=>{
1685
+ return field.includes(name.join('.'));
1686
+ });
1687
+ }
1688
+ /**
1689
+ * The field is within a component.
1690
+ */ if (name.length > 1) {
1691
+ return componentFieldNames.includes(name.join('.'));
1692
+ }
1693
+ /**
1694
+ * just a regular field
1695
+ */ return fieldsUserCanAction.includes(fieldName);
1696
+ }, []);
1697
+ if (isLoading) {
1698
+ return /*#__PURE__*/ jsx(Page.Loading, {});
1699
+ }
1700
+ return /*#__PURE__*/ jsx(DocumentRBACProvider, {
1701
+ isLoading: isLoading,
1702
+ canCreateFields: canCreateFields,
1703
+ canReadFields: canReadFields,
1704
+ canUpdateFields: canUpdateFields,
1705
+ canUserAction: canUserAction,
1706
+ ...allowedActions,
1707
+ children: children
1708
+ });
1709
+ };
1710
+ /**
1711
+ * @internal it's really small, but it's used three times in a row and DRY for something this straight forward.
1712
+ */ const extractAndDedupeFields = (permissions = [])=>permissions.flatMap((permission)=>permission.properties?.fields).filter((field, index, arr)=>arr.indexOf(field) === index && typeof field === 'string');
1713
+ /**
1714
+ * @internal removes numerical strings from arrays.
1715
+ * @example
1716
+ * ```ts
1717
+ * const name = 'a.0.b';
1718
+ * const res = removeNumericalStrings(name.split('.'));
1719
+ * console.log(res); // ['a', 'b']
1720
+ * ```
1721
+ */ const removeNumericalStrings = (arr)=>arr.filter((item)=>isNaN(Number(item)));
1722
+
1680
1723
  const prefixPluginTranslations = (trad, pluginId)=>{
1681
1724
  return Object.keys(trad).reduce((acc, current)=>{
1682
1725
  acc[`${pluginId}.${current}`] = trad[current];
@@ -1711,7 +1754,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1711
1754
  * ```
1712
1755
  *
1713
1756
  * @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information
1714
- */ const useDocumentActions = ()=>{
1757
+ */ const useDocumentActions = (fromPreview = false, fromRelationModal = false)=>{
1715
1758
  const { toggleNotification } = useNotification();
1716
1759
  const { formatMessage } = useIntl();
1717
1760
  const { trackUsage } = useTracking();
@@ -1849,7 +1892,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1849
1892
  const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();
1850
1893
  const publish = React.useCallback(async ({ collectionType, model, documentId, params }, data)=>{
1851
1894
  try {
1852
- trackUsage('willPublishEntry');
1895
+ trackUsage('willPublishEntry', {
1896
+ documentId
1897
+ });
1853
1898
  const res = await publishDocument({
1854
1899
  collectionType,
1855
1900
  model,
@@ -1866,7 +1911,11 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1866
1911
  error: res.error
1867
1912
  };
1868
1913
  }
1869
- trackUsage('didPublishEntry');
1914
+ trackUsage('didPublishEntry', {
1915
+ documentId,
1916
+ fromPreview,
1917
+ fromRelationModal
1918
+ });
1870
1919
  toggleNotification({
1871
1920
  type: 'success',
1872
1921
  message: formatMessage({
@@ -1885,6 +1934,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1885
1934
  }, [
1886
1935
  trackUsage,
1887
1936
  publishDocument,
1937
+ fromPreview,
1938
+ fromRelationModal,
1888
1939
  toggleNotification,
1889
1940
  formatMessage,
1890
1941
  formatAPIError
@@ -1953,7 +2004,12 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1953
2004
  error: res.error
1954
2005
  };
1955
2006
  }
1956
- trackUsage('didEditEntry', trackerProperty);
2007
+ trackUsage('didEditEntry', {
2008
+ ...trackerProperty,
2009
+ documentId: res.data.data.documentId,
2010
+ fromPreview,
2011
+ fromRelationModal
2012
+ });
1957
2013
  toggleNotification({
1958
2014
  type: 'success',
1959
2015
  message: formatMessage({
@@ -1976,6 +2032,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
1976
2032
  }, [
1977
2033
  trackUsage,
1978
2034
  updateDocument,
2035
+ fromPreview,
2036
+ fromRelationModal,
1979
2037
  toggleNotification,
1980
2038
  formatMessage,
1981
2039
  formatAPIError
@@ -2089,7 +2147,10 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
2089
2147
  error: res.error
2090
2148
  };
2091
2149
  }
2092
- trackUsage('didCreateEntry', trackerProperty);
2150
+ trackUsage('didCreateEntry', {
2151
+ ...trackerProperty,
2152
+ documentId: res.data.data.documentId
2153
+ });
2093
2154
  toggleNotification({
2094
2155
  type: 'success',
2095
2156
  message: formatMessage({
@@ -2114,6 +2175,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
2114
2175
  createDocument,
2115
2176
  formatAPIError,
2116
2177
  formatMessage,
2178
+ setCurrentStep,
2117
2179
  toggleNotification,
2118
2180
  trackUsage
2119
2181
  ]);
@@ -2232,7 +2294,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
2232
2294
  };
2233
2295
  };
2234
2296
 
2235
- const ProtectedHistoryPage = /*#__PURE__*/ React.lazy(()=>import('./History-CD5uVchr.mjs').then((mod)=>({
2297
+ const ProtectedHistoryPage = /*#__PURE__*/ React.lazy(()=>import('./History-BQ7IAJjV.mjs').then((mod)=>({
2236
2298
  default: mod.ProtectedHistoryPage
2237
2299
  })));
2238
2300
  /**
@@ -2248,7 +2310,7 @@ const ProtectedHistoryPage = /*#__PURE__*/ React.lazy(()=>import('./History-CD5u
2248
2310
  }
2249
2311
  ];
2250
2312
 
2251
- const ProtectedPreviewPage = /*#__PURE__*/ React.lazy(()=>import('./Preview-HqnNXn4S.mjs').then((mod)=>({
2313
+ const ProtectedPreviewPage = /*#__PURE__*/ React.lazy(()=>import('./Preview-35wsOM_p.mjs').then((mod)=>({
2252
2314
  default: mod.ProtectedPreviewPage
2253
2315
  })));
2254
2316
  const routes$1 = [
@@ -2262,25 +2324,25 @@ const routes$1 = [
2262
2324
  }
2263
2325
  ];
2264
2326
 
2265
- const ProtectedEditViewPage = /*#__PURE__*/ lazy(()=>import('./EditViewPage-eTCSh2HB.mjs').then((mod)=>({
2327
+ const ProtectedEditViewPage = /*#__PURE__*/ lazy(()=>import('./EditViewPage-CkO2YLdg.mjs').then((mod)=>({
2266
2328
  default: mod.ProtectedEditViewPage
2267
2329
  })));
2268
- const ProtectedListViewPage = /*#__PURE__*/ lazy(()=>import('./ListViewPage-BBX-zSka.mjs').then((mod)=>({
2330
+ const ProtectedListViewPage = /*#__PURE__*/ lazy(()=>import('./ListViewPage-7RTPaDs2.mjs').then((mod)=>({
2269
2331
  default: mod.ProtectedListViewPage
2270
2332
  })));
2271
- const ProtectedListConfiguration = /*#__PURE__*/ lazy(()=>import('./ListConfigurationPage-Eo8txFp0.mjs').then((mod)=>({
2333
+ const ProtectedListConfiguration = /*#__PURE__*/ lazy(()=>import('./ListConfigurationPage-Bte99c0c.mjs').then((mod)=>({
2272
2334
  default: mod.ProtectedListConfiguration
2273
2335
  })));
2274
- const ProtectedEditConfigurationPage = /*#__PURE__*/ lazy(()=>import('./EditConfigurationPage-Dm16gciL.mjs').then((mod)=>({
2336
+ const ProtectedEditConfigurationPage = /*#__PURE__*/ lazy(()=>import('./EditConfigurationPage-0y9O2nBU.mjs').then((mod)=>({
2275
2337
  default: mod.ProtectedEditConfigurationPage
2276
2338
  })));
2277
- const ProtectedComponentConfigurationPage = /*#__PURE__*/ lazy(()=>import('./ComponentConfigurationPage-Cqi5KqZa.mjs').then((mod)=>({
2339
+ const ProtectedComponentConfigurationPage = /*#__PURE__*/ lazy(()=>import('./ComponentConfigurationPage-R5N6EwIp.mjs').then((mod)=>({
2278
2340
  default: mod.ProtectedComponentConfigurationPage
2279
2341
  })));
2280
- const NoPermissions = /*#__PURE__*/ lazy(()=>import('./NoPermissionsPage-CuxrInhz.mjs').then((mod)=>({
2342
+ const NoPermissions = /*#__PURE__*/ lazy(()=>import('./NoPermissionsPage-DSIlPmvv.mjs').then((mod)=>({
2281
2343
  default: mod.NoPermissions
2282
2344
  })));
2283
- const NoContentType = /*#__PURE__*/ lazy(()=>import('./NoContentTypePage-C-rbOQO1.mjs').then((mod)=>({
2345
+ const NoContentType = /*#__PURE__*/ lazy(()=>import('./NoContentTypePage-CuTk3q_I.mjs').then((mod)=>({
2284
2346
  default: mod.NoContentType
2285
2347
  })));
2286
2348
  const CollectionTypePages = ()=>{
@@ -2667,8 +2729,8 @@ const transformData = (data)=>{
2667
2729
  };
2668
2730
  /* -------------------------------------------------------------------------------------------------
2669
2731
  * DocumentActionComponents
2670
- * -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document })=>{
2671
- const { schema } = useDoc();
2732
+ * -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document, onPreview, fromPreview = false, fromRelationModal = false })=>{
2733
+ const schema = useDocumentContext('PublishAction', (state)=>state.document.schema);
2672
2734
  const navigate = useNavigate();
2673
2735
  const { toggleNotification } = useNotification();
2674
2736
  const { _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
@@ -2677,7 +2739,7 @@ const transformData = (data)=>{
2677
2739
  const { id } = useParams();
2678
2740
  const { formatMessage } = useIntl();
2679
2741
  const canPublish = useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
2680
- const { publish, isLoading } = useDocumentActions();
2742
+ const { publish, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
2681
2743
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = useLazyGetDraftRelationCountQuery();
2682
2744
  const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React.useState(0);
2683
2745
  const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React.useState(0);
@@ -2691,6 +2753,8 @@ const transformData = (data)=>{
2691
2753
  const validate = useForm('PublishAction', (state)=>state.validate);
2692
2754
  const setErrors = useForm('PublishAction', (state)=>state.setErrors);
2693
2755
  const formValues = useForm('PublishAction', ({ values })=>values);
2756
+ const rootDocumentMeta = useDocumentContext('PublishAction', (state)=>state.rootDocumentMeta);
2757
+ const currentDocumentMeta = useDocumentContext('PublishAction', (state)=>state.meta);
2694
2758
  React.useEffect(()=>{
2695
2759
  if (isErrorDraftRelations) {
2696
2760
  toggleNotification({
@@ -2793,11 +2857,12 @@ const transformData = (data)=>{
2793
2857
  });
2794
2858
  return;
2795
2859
  }
2860
+ const isPublishingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
2796
2861
  const res = await publish({
2797
2862
  collectionType,
2798
2863
  model,
2799
2864
  documentId,
2800
- params
2865
+ params: isPublishingRelation ? currentDocumentMeta.params : params
2801
2866
  }, transformData(formValues));
2802
2867
  if ('data' in res && collectionType !== SINGLE_TYPES) {
2803
2868
  /**
@@ -2813,6 +2878,9 @@ const transformData = (data)=>{
2813
2878
  }
2814
2879
  } finally{
2815
2880
  setSubmitting(false);
2881
+ if (onPreview) {
2882
+ onPreview();
2883
+ }
2816
2884
  }
2817
2885
  };
2818
2886
  const totalDraftRelations = localCountOfDraftRelations + serverCountOfDraftRelations;
@@ -2824,7 +2892,8 @@ const transformData = (data)=>{
2824
2892
  loading: isLoading,
2825
2893
  position: [
2826
2894
  'panel',
2827
- 'preview'
2895
+ 'preview',
2896
+ 'relation-modal'
2828
2897
  ],
2829
2898
  /**
2830
2899
  * Disabled when:
@@ -2865,16 +2934,17 @@ const transformData = (data)=>{
2865
2934
  PublishAction$1.type = 'publish';
2866
2935
  PublishAction$1.position = [
2867
2936
  'panel',
2868
- 'preview'
2937
+ 'preview',
2938
+ 'relation-modal'
2869
2939
  ];
2870
- const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
2940
+ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview, fromPreview = false, fromRelationModal = false })=>{
2871
2941
  const navigate = useNavigate();
2872
2942
  const { toggleNotification } = useNotification();
2873
2943
  const { _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
2874
2944
  const cloneMatch = useMatch(CLONE_PATH);
2875
2945
  const isCloning = cloneMatch !== null;
2876
2946
  const { formatMessage } = useIntl();
2877
- const { create, update, clone, isLoading } = useDocumentActions();
2947
+ const { create, update, clone, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
2878
2948
  const [{ query, rawQuery }] = useQueryParams();
2879
2949
  const params = React.useMemo(()=>buildValidParams(query), [
2880
2950
  query
@@ -2886,6 +2956,8 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
2886
2956
  const validate = useForm('UpdateAction', (state)=>state.validate);
2887
2957
  const setErrors = useForm('UpdateAction', (state)=>state.setErrors);
2888
2958
  const resetForm = useForm('PublishAction', ({ resetForm })=>resetForm);
2959
+ const rootDocumentMeta = useDocumentContext('UpdateAction', (state)=>state.rootDocumentMeta);
2960
+ const currentDocumentMeta = useDocumentContext('UpdateAction', (state)=>state.meta);
2889
2961
  const handleUpdate = React.useCallback(async ()=>{
2890
2962
  setSubmitting(true);
2891
2963
  try {
@@ -2922,11 +2994,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
2922
2994
  setErrors(formatValidationErrors(res.error));
2923
2995
  }
2924
2996
  } else if (documentId || collectionType === SINGLE_TYPES) {
2997
+ const isEditingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
2925
2998
  const res = await update({
2926
2999
  collectionType,
2927
3000
  model,
2928
3001
  documentId,
2929
- params
3002
+ params: isEditingRelation ? currentDocumentMeta.params : params
2930
3003
  }, transformData(document));
2931
3004
  if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
2932
3005
  setErrors(formatValidationErrors(res.error));
@@ -2952,12 +3025,17 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
2952
3025
  }
2953
3026
  } finally{
2954
3027
  setSubmitting(false);
3028
+ if (onPreview) {
3029
+ onPreview();
3030
+ }
2955
3031
  }
2956
3032
  }, [
2957
3033
  clone,
2958
3034
  cloneMatch?.params.origin,
2959
3035
  collectionType,
2960
3036
  create,
3037
+ currentDocumentMeta.documentId,
3038
+ currentDocumentMeta.params,
2961
3039
  document,
2962
3040
  documentId,
2963
3041
  formatMessage,
@@ -2966,9 +3044,11 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
2966
3044
  model,
2967
3045
  modified,
2968
3046
  navigate,
3047
+ onPreview,
2969
3048
  params,
2970
3049
  rawQuery,
2971
3050
  resetForm,
3051
+ rootDocumentMeta.documentId,
2972
3052
  setErrors,
2973
3053
  setSubmitting,
2974
3054
  toggleNotification,
@@ -3005,14 +3085,16 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
3005
3085
  onClick: handleUpdate,
3006
3086
  position: [
3007
3087
  'panel',
3008
- 'preview'
3088
+ 'preview',
3089
+ 'relation-modal'
3009
3090
  ]
3010
3091
  };
3011
3092
  };
3012
3093
  UpdateAction.type = 'update';
3013
3094
  UpdateAction.position = [
3014
3095
  'panel',
3015
- 'preview'
3096
+ 'preview',
3097
+ 'relation-modal'
3016
3098
  ];
3017
3099
  const UNPUBLISH_DRAFT_OPTIONS = {
3018
3100
  KEEP: 'keep',
@@ -3305,12 +3387,11 @@ const capitalise = (str)=>str.charAt(0).toUpperCase() + str.slice(1);
3305
3387
  size: size,
3306
3388
  variant: statusVariant,
3307
3389
  role: "status",
3308
- "aria-labelledby": "document-status",
3390
+ "aria-label": status,
3309
3391
  children: /*#__PURE__*/ jsx(Typography, {
3310
3392
  tag: "span",
3311
3393
  variant: "omega",
3312
3394
  fontWeight: "bold",
3313
- id: "document-status",
3314
3395
  children: formatMessage({
3315
3396
  id: `content-manager.containers.List.${status}`,
3316
3397
  defaultMessage: capitalise(status)
@@ -5289,7 +5370,7 @@ function __variableDynamicImportRuntime1__(path) {
5289
5370
  case './translations/ca.json': return import('./ca-DviY7mRj.mjs');
5290
5371
  case './translations/cs.json': return import('./cs-C7OSYFQ7.mjs');
5291
5372
  case './translations/de.json': return import('./de-5QRlDHyR.mjs');
5292
- case './translations/en.json': return import('./en-CImiNxXE.mjs');
5373
+ case './translations/en.json': return import('./en-C2zEwS3-.mjs');
5293
5374
  case './translations/es.json': return import('./es-DkoWSExG.mjs');
5294
5375
  case './translations/eu.json': return import('./eu-BG1xX7HK.mjs');
5295
5376
  case './translations/fr.json': return import('./fr-CFdRaRVj.mjs');
@@ -5314,7 +5395,7 @@ function __variableDynamicImportRuntime1__(path) {
5314
5395
  case './translations/tr.json': return import('./tr-Yt38daxh.mjs');
5315
5396
  case './translations/uk.json': return import('./uk-BtM6WnaE.mjs');
5316
5397
  case './translations/vi.json': return import('./vi-CvBGlTjr.mjs');
5317
- case './translations/zh-Hans.json': return import('./zh-Hans-CI0HKio3.mjs');
5398
+ case './translations/zh-Hans.json': return import('./zh-Hans-DEAhqI3x.mjs');
5318
5399
  case './translations/zh.json': return import('./zh-BmF-sHaT.mjs');
5319
5400
  default: return new Promise(function(resolve, reject) {
5320
5401
  (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
@@ -5343,7 +5424,7 @@ var index = {
5343
5424
  app.router.addRoute({
5344
5425
  path: 'content-manager/*',
5345
5426
  lazy: async ()=>{
5346
- const { Layout } = await import('./layout-BInXGFmo.mjs');
5427
+ const { Layout } = await import('./layout-zQ9o6rg0.mjs');
5347
5428
  return {
5348
5429
  Component: Layout
5349
5430
  };
@@ -5378,5 +5459,5 @@ var index = {
5378
5459
  }
5379
5460
  };
5380
5461
 
5381
- export { useUpdateContentTypeConfigurationMutation as A, BulkActionsRenderer as B, COLLECTION_TYPES as C, DocumentStatus as D, ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD as E, extractContentTypeComponents as F, DEFAULT_SETTINGS as G, HOOKS as H, InjectionZone as I, convertEditLayoutToFieldLayouts as J, removeFieldsThatDontExistOnSchema as K, prepareTempKeys as L, useDocument as M, DocumentActionButton as N, useGetPreviewUrlQuery as O, Panels as P, index as Q, RelativeTime as R, SINGLE_TYPES as S, TableActions as T, useContentManagerContext as U, useDocumentActions as V, useGetInitialDataQuery as a, useGetAllContentTypeSettingsQuery as b, useDoc as c, buildValidParams as d, contentManagerApi as e, useDocumentRBAC as f, getTranslation as g, useDocumentLayout as h, createYupSchema as i, Header as j, PERMISSIONS as k, DocumentRBAC as l, useDocLayout as m, createDefaultForm as n, CLONE_PATH as o, useGetContentTypeConfigurationQuery as p, CREATOR_FIELDS as q, getMainField as r, setInitialData as s, transformDocument as t, useContentTypeSchema as u, getDisplayName as v, checkIfAttributeIsDisplayable as w, useGetAllDocumentsQuery as x, convertListLayoutToFieldLayouts as y, capitalise as z };
5382
- //# sourceMappingURL=index-CS_nLuw2.mjs.map
5462
+ export { useGetAllDocumentsQuery as A, BulkActionsRenderer as B, COLLECTION_TYPES as C, DocumentStatus as D, convertListLayoutToFieldLayouts as E, capitalise as F, useDocLayout as G, HOOKS as H, InjectionZone as I, useUpdateContentTypeConfigurationMutation as J, ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD as K, extractContentTypeComponents as L, DEFAULT_SETTINGS as M, convertEditLayoutToFieldLayouts as N, removeFieldsThatDontExistOnSchema as O, PERMISSIONS as P, prepareTempKeys as Q, RelativeTime as R, SINGLE_TYPES as S, TableActions as T, useDocument as U, useGetPreviewUrlQuery as V, index as W, useContentManagerContext as X, useDocumentActions as Y, useGetInitialDataQuery as a, useGetAllContentTypeSettingsQuery as b, useDocumentContext as c, useDocumentLayout as d, createDefaultForm as e, useLazyGetDocumentQuery as f, getTranslation as g, createYupSchema as h, DocumentRBAC as i, DocumentActionButton as j, buildValidParams as k, contentManagerApi as l, useDoc as m, CLONE_PATH as n, useDocumentRBAC as o, DocumentContextProvider as p, Header as q, Panels as r, setInitialData as s, transformDocument as t, useContentTypeSchema as u, useGetContentTypeConfigurationQuery as v, CREATOR_FIELDS as w, getMainField as x, getDisplayName as y, checkIfAttributeIsDisplayable as z };
5463
+ //# sourceMappingURL=index-DFvqTQvr.mjs.map