@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.
- package/dist/admin/chunks/{ComponentConfigurationPage-Bn-SMKJG.js → ComponentConfigurationPage-B-gE3kXG.js} +5 -6
- package/dist/admin/chunks/{ComponentConfigurationPage-Bn-SMKJG.js.map → ComponentConfigurationPage-B-gE3kXG.js.map} +1 -1
- package/dist/admin/chunks/{ComponentConfigurationPage-Cqi5KqZa.mjs → ComponentConfigurationPage-R5N6EwIp.mjs} +5 -6
- package/dist/admin/chunks/{ComponentConfigurationPage-Cqi5KqZa.mjs.map → ComponentConfigurationPage-R5N6EwIp.mjs.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-Dm16gciL.mjs → EditConfigurationPage-0y9O2nBU.mjs} +5 -6
- package/dist/admin/chunks/{EditConfigurationPage-Dm16gciL.mjs.map → EditConfigurationPage-0y9O2nBU.mjs.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-CRxsqOhS.js → EditConfigurationPage-C62WuGTf.js} +5 -6
- package/dist/admin/chunks/{EditConfigurationPage-CRxsqOhS.js.map → EditConfigurationPage-C62WuGTf.js.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-Dk8CeS40.js → EditViewPage-CiYAHBOX.js} +102 -95
- package/dist/admin/chunks/EditViewPage-CiYAHBOX.js.map +1 -0
- package/dist/admin/chunks/{EditViewPage-eTCSh2HB.mjs → EditViewPage-CkO2YLdg.mjs} +102 -95
- package/dist/admin/chunks/EditViewPage-CkO2YLdg.mjs.map +1 -0
- package/dist/admin/chunks/{Form-PB1sNax8.js → Form-DUs6lQ0C.js} +5 -5
- package/dist/admin/chunks/{Form-PB1sNax8.js.map → Form-DUs6lQ0C.js.map} +1 -1
- package/dist/admin/chunks/{Form-K_hq8zU4.mjs → Form-Db9A3cMO.mjs} +3 -3
- package/dist/admin/chunks/{Form-K_hq8zU4.mjs.map → Form-Db9A3cMO.mjs.map} +1 -1
- package/dist/admin/chunks/{History-CD5uVchr.mjs → History-BQ7IAJjV.mjs} +16 -12
- package/dist/admin/chunks/History-BQ7IAJjV.mjs.map +1 -0
- package/dist/admin/chunks/{History-CfsF-U-3.js → History-D99wxPry.js} +17 -13
- package/dist/admin/chunks/History-D99wxPry.js.map +1 -0
- package/dist/admin/chunks/{Input-grmHplxs.mjs → Input-CHDnpU3S.mjs} +1340 -55
- package/dist/admin/chunks/Input-CHDnpU3S.mjs.map +1 -0
- package/dist/admin/chunks/{Input-CU93J6dl.js → Input-Gop65dq6.js} +1352 -64
- package/dist/admin/chunks/Input-Gop65dq6.js.map +1 -0
- package/dist/admin/chunks/{ListConfigurationPage-Eo8txFp0.mjs → ListConfigurationPage-Bte99c0c.mjs} +4 -5
- package/dist/admin/chunks/{ListConfigurationPage-Eo8txFp0.mjs.map → ListConfigurationPage-Bte99c0c.mjs.map} +1 -1
- package/dist/admin/chunks/{ListConfigurationPage-nZti--Mw.js → ListConfigurationPage-pAdM7Lbn.js} +6 -7
- package/dist/admin/chunks/{ListConfigurationPage-nZti--Mw.js.map → ListConfigurationPage-pAdM7Lbn.js.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-BBX-zSka.mjs → ListViewPage-7RTPaDs2.mjs} +3 -5
- package/dist/admin/chunks/ListViewPage-7RTPaDs2.mjs.map +1 -0
- package/dist/admin/chunks/{ListViewPage-DQYvHCxn.js → ListViewPage-CaBwwCVc.js} +7 -9
- package/dist/admin/chunks/ListViewPage-CaBwwCVc.js.map +1 -0
- package/dist/admin/chunks/{NoContentTypePage-C-rbOQO1.mjs → NoContentTypePage-CuTk3q_I.mjs} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-C-rbOQO1.mjs.map → NoContentTypePage-CuTk3q_I.mjs.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-ChYgz3sN.js → NoContentTypePage-DLD28j4F.js} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-ChYgz3sN.js.map → NoContentTypePage-DLD28j4F.js.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-CuxrInhz.mjs → NoPermissionsPage-DSIlPmvv.mjs} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-CuxrInhz.mjs.map → NoPermissionsPage-DSIlPmvv.mjs.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-H4SAlJeF.js → NoPermissionsPage-iVMEcUp0.js} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-H4SAlJeF.js.map → NoPermissionsPage-iVMEcUp0.js.map} +1 -1
- package/dist/admin/chunks/{Preview-HqnNXn4S.mjs → Preview-35wsOM_p.mjs} +136 -211
- package/dist/admin/chunks/Preview-35wsOM_p.mjs.map +1 -0
- package/dist/admin/chunks/{Preview-Bz2dgOiw.js → Preview-CSU1sCSK.js} +134 -209
- package/dist/admin/chunks/Preview-CSU1sCSK.js.map +1 -0
- package/dist/admin/chunks/{en-CImiNxXE.mjs → en-C2zEwS3-.mjs} +4 -1
- package/dist/admin/chunks/{en-CImiNxXE.mjs.map → en-C2zEwS3-.mjs.map} +1 -1
- package/dist/admin/chunks/{en-CLf4SuMQ.js → en-G976DLsg.js} +4 -1
- package/dist/admin/chunks/{en-CLf4SuMQ.js.map → en-G976DLsg.js.map} +1 -1
- package/dist/admin/chunks/{index-DfX0uEQT.js → index-Cmh0Byay.js} +213 -129
- package/dist/admin/chunks/index-Cmh0Byay.js.map +1 -0
- package/dist/admin/chunks/{index-CS_nLuw2.mjs → index-DFvqTQvr.mjs} +212 -131
- package/dist/admin/chunks/index-DFvqTQvr.mjs.map +1 -0
- package/dist/admin/chunks/{layout-B4Uk0v1z.js → layout-DuH1v82S.js} +86 -13
- package/dist/admin/chunks/layout-DuH1v82S.js.map +1 -0
- package/dist/admin/chunks/{layout-BInXGFmo.mjs → layout-zQ9o6rg0.mjs} +78 -5
- package/dist/admin/chunks/layout-zQ9o6rg0.mjs.map +1 -0
- package/dist/admin/chunks/{useDragAndDrop-gcqEJMnO.js → objects-BJTP843m.js} +73 -1
- package/dist/admin/chunks/objects-BJTP843m.js.map +1 -0
- package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.mjs → objects-D2z-IJgu.mjs} +72 -2
- package/dist/admin/chunks/objects-D2z-IJgu.mjs.map +1 -0
- package/dist/admin/chunks/{relations-9C5dQI9e.js → usePrev-B_pceXQ5.js} +18 -2
- package/dist/admin/chunks/usePrev-B_pceXQ5.js.map +1 -0
- package/dist/admin/chunks/{relations-CwL0ThH9.mjs → usePrev-CJFOGBK2.mjs} +18 -4
- package/dist/admin/chunks/usePrev-CJFOGBK2.mjs.map +1 -0
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs → zh-Hans-DEAhqI3x.mjs} +3 -2
- package/dist/admin/chunks/{zh-Hans-CI0HKio3.mjs.map → zh-Hans-DEAhqI3x.mjs.map} +1 -1
- package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js → zh-Hans-Djj7eGpO.js} +3 -2
- package/dist/admin/chunks/{zh-Hans-JVK9x7xr.js.map → zh-Hans-Djj7eGpO.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/content-manager.d.ts +3 -0
- package/dist/admin/src/features/DocumentContext.d.ts +53 -0
- package/dist/admin/src/features/DocumentRBAC.d.ts +3 -2
- package/dist/admin/src/hooks/useDocument.d.ts +2 -0
- package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +8 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/{Relations.d.ts → Relations/Relations.d.ts} +9 -4
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +8 -3
- package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +7 -4
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
- package/package.json +6 -6
- package/dist/admin/chunks/EditViewPage-Dk8CeS40.js.map +0 -1
- package/dist/admin/chunks/EditViewPage-eTCSh2HB.mjs.map +0 -1
- package/dist/admin/chunks/History-CD5uVchr.mjs.map +0 -1
- package/dist/admin/chunks/History-CfsF-U-3.js.map +0 -1
- package/dist/admin/chunks/Input-CU93J6dl.js.map +0 -1
- package/dist/admin/chunks/Input-grmHplxs.mjs.map +0 -1
- package/dist/admin/chunks/ListViewPage-BBX-zSka.mjs.map +0 -1
- package/dist/admin/chunks/ListViewPage-DQYvHCxn.js.map +0 -1
- package/dist/admin/chunks/Preview-Bz2dgOiw.js.map +0 -1
- package/dist/admin/chunks/Preview-HqnNXn4S.mjs.map +0 -1
- package/dist/admin/chunks/Relations-BMvL4yMN.mjs +0 -1291
- package/dist/admin/chunks/Relations-BMvL4yMN.mjs.map +0 -1
- package/dist/admin/chunks/Relations-CbCAt692.js +0 -1318
- package/dist/admin/chunks/Relations-CbCAt692.js.map +0 -1
- package/dist/admin/chunks/index-CS_nLuw2.mjs.map +0 -1
- package/dist/admin/chunks/index-DfX0uEQT.js.map +0 -1
- package/dist/admin/chunks/layout-B4Uk0v1z.js.map +0 -1
- package/dist/admin/chunks/layout-BInXGFmo.mjs.map +0 -1
- package/dist/admin/chunks/objects-C3EebVVe.js +0 -76
- package/dist/admin/chunks/objects-C3EebVVe.js.map +0 -1
- package/dist/admin/chunks/objects-wl73iEma.mjs +0 -73
- package/dist/admin/chunks/objects-wl73iEma.mjs.map +0 -1
- package/dist/admin/chunks/relations-9C5dQI9e.js.map +0 -1
- package/dist/admin/chunks/relations-CwL0ThH9.mjs.map +0 -1
- package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +0 -1
- package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +0 -1
- package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs +0 -18
- package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +0 -1
- package/dist/admin/chunks/usePrev-DIYl-IAL.js +0 -21
- package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +0 -1
- package/dist/admin/src/preview/components/PreviewContent.d.ts +0 -3
@@ -119,102 +119,6 @@ const DOCUMENT_META_FIELDS = [
|
|
119
119
|
const SINGLE_TYPES = 'single-types';
|
120
120
|
const COLLECTION_TYPES = 'collection-types';
|
121
121
|
|
122
|
-
const [DocumentRBACProvider, useDocumentRBAC] = strapiAdmin.createContext('DocumentRBAC', {
|
123
|
-
canCreate: false,
|
124
|
-
canCreateFields: [],
|
125
|
-
canDelete: false,
|
126
|
-
canPublish: false,
|
127
|
-
canRead: false,
|
128
|
-
canReadFields: [],
|
129
|
-
canUpdate: false,
|
130
|
-
canUpdateFields: [],
|
131
|
-
canUserAction: ()=>false,
|
132
|
-
isLoading: false
|
133
|
-
});
|
134
|
-
/**
|
135
|
-
* @internal This component is not meant to be used outside of the Content Manager plugin.
|
136
|
-
* It depends on knowing the slug/model of the content-type using the params of the URL.
|
137
|
-
* If you do use the hook outside of the context, we default to `false` for all actions.
|
138
|
-
*
|
139
|
-
* It then creates an list of `can{Action}` that are passed to the context for consumption
|
140
|
-
* within the app to enforce RBAC.
|
141
|
-
*/ const DocumentRBAC = ({ children, permissions })=>{
|
142
|
-
const { slug } = reactRouterDom.useParams();
|
143
|
-
if (!slug) {
|
144
|
-
throw new Error('Cannot find the slug param in the URL');
|
145
|
-
}
|
146
|
-
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
147
|
-
const userPermissions = strapiAdmin.useAuth('DocumentRBAC', (state)=>state.permissions);
|
148
|
-
const contentTypePermissions = React__namespace.useMemo(()=>{
|
149
|
-
const contentTypePermissions = userPermissions.filter((permission)=>permission.subject === slug);
|
150
|
-
return contentTypePermissions.reduce((acc, permission)=>{
|
151
|
-
const [action] = permission.action.split('.').slice(-1);
|
152
|
-
return {
|
153
|
-
...acc,
|
154
|
-
[action]: [
|
155
|
-
permission
|
156
|
-
]
|
157
|
-
};
|
158
|
-
}, {});
|
159
|
-
}, [
|
160
|
-
slug,
|
161
|
-
userPermissions
|
162
|
-
]);
|
163
|
-
const { isLoading, allowedActions } = strapiAdmin.useRBAC(contentTypePermissions, permissions ?? undefined, // TODO: useRBAC context should be typed and built differently
|
164
|
-
// We are passing raw query as context to the hook so that it can
|
165
|
-
// rely on the locale provided from DocumentRBAC for its permission calculations.
|
166
|
-
rawQuery);
|
167
|
-
const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
|
168
|
-
const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
|
169
|
-
const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
|
170
|
-
/**
|
171
|
-
* @description Checks if the user can perform an action on a field based on the field names
|
172
|
-
* provided as the second argument.
|
173
|
-
*/ const canUserAction = React__namespace.useCallback((fieldName, fieldsUserCanAction, fieldType)=>{
|
174
|
-
const name = removeNumericalStrings(fieldName.split('.'));
|
175
|
-
const componentFieldNames = fieldsUserCanAction// filter out fields that aren't components (components are dot separated)
|
176
|
-
.filter((field)=>field.split('.').length > 1);
|
177
|
-
if (fieldType === 'component') {
|
178
|
-
// check if the field name is within any of those arrays
|
179
|
-
return componentFieldNames.some((field)=>{
|
180
|
-
return field.includes(name.join('.'));
|
181
|
-
});
|
182
|
-
}
|
183
|
-
/**
|
184
|
-
* The field is within a component.
|
185
|
-
*/ if (name.length > 1) {
|
186
|
-
return componentFieldNames.includes(name.join('.'));
|
187
|
-
}
|
188
|
-
/**
|
189
|
-
* just a regular field
|
190
|
-
*/ return fieldsUserCanAction.includes(fieldName);
|
191
|
-
}, []);
|
192
|
-
if (isLoading) {
|
193
|
-
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
194
|
-
}
|
195
|
-
return /*#__PURE__*/ jsxRuntime.jsx(DocumentRBACProvider, {
|
196
|
-
isLoading: isLoading,
|
197
|
-
canCreateFields: canCreateFields,
|
198
|
-
canReadFields: canReadFields,
|
199
|
-
canUpdateFields: canUpdateFields,
|
200
|
-
canUserAction: canUserAction,
|
201
|
-
...allowedActions,
|
202
|
-
children: children
|
203
|
-
});
|
204
|
-
};
|
205
|
-
/**
|
206
|
-
* @internal it's really small, but it's used three times in a row and DRY for something this straight forward.
|
207
|
-
*/ const extractAndDedupeFields = (permissions = [])=>permissions.flatMap((permission)=>permission.properties?.fields).filter((field, index, arr)=>arr.indexOf(field) === index && typeof field === 'string');
|
208
|
-
/**
|
209
|
-
* @internal removes numerical strings from arrays.
|
210
|
-
* @example
|
211
|
-
* ```ts
|
212
|
-
* const name = 'a.0.b';
|
213
|
-
* const res = removeNumericalStrings(name.split('.'));
|
214
|
-
* console.log(res); // ['a', 'b']
|
215
|
-
* ```
|
216
|
-
*/ const removeNumericalStrings = (arr)=>arr.filter((item)=>isNaN(Number(item)));
|
217
|
-
|
218
122
|
const BLOCK_LIST_ATTRIBUTE_KEYS = [
|
219
123
|
'__component',
|
220
124
|
'__temp_key__'
|
@@ -1525,7 +1429,7 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
|
|
1525
1429
|
const { toggleNotification } = strapiAdmin.useNotification();
|
1526
1430
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
1527
1431
|
const { formatMessage } = reactIntl.useIntl();
|
1528
|
-
const { currentData: data, isLoading: isLoadingDocument, isFetching: isFetchingDocument, error } = useGetDocumentQuery(args, {
|
1432
|
+
const { currentData: data, isLoading: isLoadingDocument, isFetching: isFetchingDocument, error, refetch } = useGetDocumentQuery(args, {
|
1529
1433
|
...opts,
|
1530
1434
|
skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
|
1531
1435
|
});
|
@@ -1624,7 +1528,8 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
|
|
1624
1528
|
schemas,
|
1625
1529
|
validate,
|
1626
1530
|
getTitle,
|
1627
|
-
getInitialFormValues
|
1531
|
+
getInitialFormValues,
|
1532
|
+
refetch
|
1628
1533
|
};
|
1629
1534
|
};
|
1630
1535
|
/* -------------------------------------------------------------------------------------------------
|
@@ -1697,6 +1602,144 @@ const checkIfAttributeIsDisplayable = (attribute)=>{
|
|
1697
1602
|
};
|
1698
1603
|
};
|
1699
1604
|
|
1605
|
+
const [DocumentProvider, useDocumentContext] = strapiAdmin.createContext('DocumentContext');
|
1606
|
+
/**
|
1607
|
+
* TODO: Document in contributor docs, Add unit test
|
1608
|
+
*
|
1609
|
+
* This context provider and its associated hook are used to access a document at its root level
|
1610
|
+
* and expose a function to change the current document being viewed to one of the root level docuemnt's relations.
|
1611
|
+
*
|
1612
|
+
* The useDocumentContext hook exposes:
|
1613
|
+
* - meta: information about the currentDocument,
|
1614
|
+
* - document: the actual document,
|
1615
|
+
* - changeDocument: a function to change the current document to one of its relations.
|
1616
|
+
* - rootDocumentMeta: information about the root level document (current page)
|
1617
|
+
*/ const DocumentContextProvider = ({ children, initialDocument, onPreview })=>{
|
1618
|
+
/**
|
1619
|
+
* Initialize with the "root" document and expose a setter method to change to
|
1620
|
+
* one of the root level document's relations.
|
1621
|
+
*/ const [currentDocumentMeta, changeDocument] = React__namespace.useState(initialDocument);
|
1622
|
+
const params = React__namespace.useMemo(()=>buildValidParams(currentDocumentMeta.params ?? {}), [
|
1623
|
+
currentDocumentMeta.params
|
1624
|
+
]);
|
1625
|
+
const document = useDocument({
|
1626
|
+
...currentDocumentMeta,
|
1627
|
+
params
|
1628
|
+
});
|
1629
|
+
const [documentHistory, setDocumentHistory] = React__namespace.useState([]);
|
1630
|
+
return /*#__PURE__*/ jsxRuntime.jsx(DocumentProvider, {
|
1631
|
+
changeDocument: changeDocument,
|
1632
|
+
document: document,
|
1633
|
+
rootDocumentMeta: {
|
1634
|
+
documentId: initialDocument.documentId,
|
1635
|
+
model: initialDocument.model,
|
1636
|
+
collectionType: initialDocument.collectionType
|
1637
|
+
},
|
1638
|
+
meta: currentDocumentMeta,
|
1639
|
+
documentHistory: documentHistory,
|
1640
|
+
setDocumentHistory: setDocumentHistory,
|
1641
|
+
onPreview: onPreview,
|
1642
|
+
children: children
|
1643
|
+
});
|
1644
|
+
};
|
1645
|
+
|
1646
|
+
const [DocumentRBACProvider, useDocumentRBAC] = strapiAdmin.createContext('DocumentRBAC', {
|
1647
|
+
canCreate: false,
|
1648
|
+
canCreateFields: [],
|
1649
|
+
canDelete: false,
|
1650
|
+
canPublish: false,
|
1651
|
+
canRead: false,
|
1652
|
+
canReadFields: [],
|
1653
|
+
canUpdate: false,
|
1654
|
+
canUpdateFields: [],
|
1655
|
+
canUserAction: ()=>false,
|
1656
|
+
isLoading: false
|
1657
|
+
});
|
1658
|
+
/**
|
1659
|
+
* @internal This component is not meant to be used outside of the Content Manager plugin.
|
1660
|
+
* 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.
|
1661
|
+
* If you do use the hook outside of the context, we default to `false` for all actions.
|
1662
|
+
*
|
1663
|
+
* It then creates an list of `can{Action}` that are passed to the context for consumption
|
1664
|
+
* within the app to enforce RBAC.
|
1665
|
+
*/ const DocumentRBAC = ({ children, permissions, model })=>{
|
1666
|
+
const { slug } = reactRouterDom.useParams();
|
1667
|
+
if (!slug && !model) {
|
1668
|
+
throw new Error('Cannot find the slug param in the URL or the model prop is not provided.');
|
1669
|
+
}
|
1670
|
+
const contentTypeUid = model ?? slug;
|
1671
|
+
const [{ rawQuery }] = strapiAdmin.useQueryParams();
|
1672
|
+
const userPermissions = strapiAdmin.useAuth('DocumentRBAC', (state)=>state.permissions);
|
1673
|
+
const contentTypePermissions = React__namespace.useMemo(()=>{
|
1674
|
+
const contentTypePermissions = userPermissions.filter((permission)=>permission.subject === contentTypeUid);
|
1675
|
+
return contentTypePermissions.reduce((acc, permission)=>{
|
1676
|
+
const [action] = permission.action.split('.').slice(-1);
|
1677
|
+
return {
|
1678
|
+
...acc,
|
1679
|
+
[action]: [
|
1680
|
+
permission
|
1681
|
+
]
|
1682
|
+
};
|
1683
|
+
}, {});
|
1684
|
+
}, [
|
1685
|
+
contentTypeUid,
|
1686
|
+
userPermissions
|
1687
|
+
]);
|
1688
|
+
const { isLoading, allowedActions } = strapiAdmin.useRBAC(contentTypePermissions, permissions ?? undefined, // TODO: useRBAC context should be typed and built differently
|
1689
|
+
// We are passing raw query as context to the hook so that it can
|
1690
|
+
// rely on the locale provided from DocumentRBAC for its permission calculations.
|
1691
|
+
rawQuery);
|
1692
|
+
const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
|
1693
|
+
const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
|
1694
|
+
const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
|
1695
|
+
/**
|
1696
|
+
* @description Checks if the user can perform an action on a field based on the field names
|
1697
|
+
* provided as the second argument.
|
1698
|
+
*/ const canUserAction = React__namespace.useCallback((fieldName, fieldsUserCanAction, fieldType)=>{
|
1699
|
+
const name = removeNumericalStrings(fieldName.split('.'));
|
1700
|
+
const componentFieldNames = fieldsUserCanAction// filter out fields that aren't components (components are dot separated)
|
1701
|
+
.filter((field)=>field.split('.').length > 1);
|
1702
|
+
if (fieldType === 'component') {
|
1703
|
+
// check if the field name is within any of those arrays
|
1704
|
+
return componentFieldNames.some((field)=>{
|
1705
|
+
return field.includes(name.join('.'));
|
1706
|
+
});
|
1707
|
+
}
|
1708
|
+
/**
|
1709
|
+
* The field is within a component.
|
1710
|
+
*/ if (name.length > 1) {
|
1711
|
+
return componentFieldNames.includes(name.join('.'));
|
1712
|
+
}
|
1713
|
+
/**
|
1714
|
+
* just a regular field
|
1715
|
+
*/ return fieldsUserCanAction.includes(fieldName);
|
1716
|
+
}, []);
|
1717
|
+
if (isLoading) {
|
1718
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
1719
|
+
}
|
1720
|
+
return /*#__PURE__*/ jsxRuntime.jsx(DocumentRBACProvider, {
|
1721
|
+
isLoading: isLoading,
|
1722
|
+
canCreateFields: canCreateFields,
|
1723
|
+
canReadFields: canReadFields,
|
1724
|
+
canUpdateFields: canUpdateFields,
|
1725
|
+
canUserAction: canUserAction,
|
1726
|
+
...allowedActions,
|
1727
|
+
children: children
|
1728
|
+
});
|
1729
|
+
};
|
1730
|
+
/**
|
1731
|
+
* @internal it's really small, but it's used three times in a row and DRY for something this straight forward.
|
1732
|
+
*/ const extractAndDedupeFields = (permissions = [])=>permissions.flatMap((permission)=>permission.properties?.fields).filter((field, index, arr)=>arr.indexOf(field) === index && typeof field === 'string');
|
1733
|
+
/**
|
1734
|
+
* @internal removes numerical strings from arrays.
|
1735
|
+
* @example
|
1736
|
+
* ```ts
|
1737
|
+
* const name = 'a.0.b';
|
1738
|
+
* const res = removeNumericalStrings(name.split('.'));
|
1739
|
+
* console.log(res); // ['a', 'b']
|
1740
|
+
* ```
|
1741
|
+
*/ const removeNumericalStrings = (arr)=>arr.filter((item)=>isNaN(Number(item)));
|
1742
|
+
|
1700
1743
|
const prefixPluginTranslations = (trad, pluginId)=>{
|
1701
1744
|
return Object.keys(trad).reduce((acc, current)=>{
|
1702
1745
|
acc[`${pluginId}.${current}`] = trad[current];
|
@@ -1731,7 +1774,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1731
1774
|
* ```
|
1732
1775
|
*
|
1733
1776
|
* @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information
|
1734
|
-
*/ const useDocumentActions = ()=>{
|
1777
|
+
*/ const useDocumentActions = (fromPreview = false, fromRelationModal = false)=>{
|
1735
1778
|
const { toggleNotification } = strapiAdmin.useNotification();
|
1736
1779
|
const { formatMessage } = reactIntl.useIntl();
|
1737
1780
|
const { trackUsage } = strapiAdmin.useTracking();
|
@@ -1869,7 +1912,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1869
1912
|
const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();
|
1870
1913
|
const publish = React__namespace.useCallback(async ({ collectionType, model, documentId, params }, data)=>{
|
1871
1914
|
try {
|
1872
|
-
trackUsage('willPublishEntry'
|
1915
|
+
trackUsage('willPublishEntry', {
|
1916
|
+
documentId
|
1917
|
+
});
|
1873
1918
|
const res = await publishDocument({
|
1874
1919
|
collectionType,
|
1875
1920
|
model,
|
@@ -1886,7 +1931,11 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1886
1931
|
error: res.error
|
1887
1932
|
};
|
1888
1933
|
}
|
1889
|
-
trackUsage('didPublishEntry'
|
1934
|
+
trackUsage('didPublishEntry', {
|
1935
|
+
documentId,
|
1936
|
+
fromPreview,
|
1937
|
+
fromRelationModal
|
1938
|
+
});
|
1890
1939
|
toggleNotification({
|
1891
1940
|
type: 'success',
|
1892
1941
|
message: formatMessage({
|
@@ -1905,6 +1954,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1905
1954
|
}, [
|
1906
1955
|
trackUsage,
|
1907
1956
|
publishDocument,
|
1957
|
+
fromPreview,
|
1958
|
+
fromRelationModal,
|
1908
1959
|
toggleNotification,
|
1909
1960
|
formatMessage,
|
1910
1961
|
formatAPIError
|
@@ -1973,7 +2024,12 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1973
2024
|
error: res.error
|
1974
2025
|
};
|
1975
2026
|
}
|
1976
|
-
trackUsage('didEditEntry',
|
2027
|
+
trackUsage('didEditEntry', {
|
2028
|
+
...trackerProperty,
|
2029
|
+
documentId: res.data.data.documentId,
|
2030
|
+
fromPreview,
|
2031
|
+
fromRelationModal
|
2032
|
+
});
|
1977
2033
|
toggleNotification({
|
1978
2034
|
type: 'success',
|
1979
2035
|
message: formatMessage({
|
@@ -1996,6 +2052,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
1996
2052
|
}, [
|
1997
2053
|
trackUsage,
|
1998
2054
|
updateDocument,
|
2055
|
+
fromPreview,
|
2056
|
+
fromRelationModal,
|
1999
2057
|
toggleNotification,
|
2000
2058
|
formatMessage,
|
2001
2059
|
formatAPIError
|
@@ -2109,7 +2167,10 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2109
2167
|
error: res.error
|
2110
2168
|
};
|
2111
2169
|
}
|
2112
|
-
trackUsage('didCreateEntry',
|
2170
|
+
trackUsage('didCreateEntry', {
|
2171
|
+
...trackerProperty,
|
2172
|
+
documentId: res.data.data.documentId
|
2173
|
+
});
|
2113
2174
|
toggleNotification({
|
2114
2175
|
type: 'success',
|
2115
2176
|
message: formatMessage({
|
@@ -2134,6 +2195,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2134
2195
|
createDocument,
|
2135
2196
|
formatAPIError,
|
2136
2197
|
formatMessage,
|
2198
|
+
setCurrentStep,
|
2137
2199
|
toggleNotification,
|
2138
2200
|
trackUsage
|
2139
2201
|
]);
|
@@ -2252,7 +2314,7 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
2252
2314
|
};
|
2253
2315
|
};
|
2254
2316
|
|
2255
|
-
const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./History-
|
2317
|
+
const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./History-D99wxPry.js'); }).then((mod)=>({
|
2256
2318
|
default: mod.ProtectedHistoryPage
|
2257
2319
|
})));
|
2258
2320
|
/**
|
@@ -2268,7 +2330,7 @@ const ProtectedHistoryPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.res
|
|
2268
2330
|
}
|
2269
2331
|
];
|
2270
2332
|
|
2271
|
-
const ProtectedPreviewPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./Preview-
|
2333
|
+
const ProtectedPreviewPage = /*#__PURE__*/ React__namespace.lazy(()=>Promise.resolve().then(function () { return require('./Preview-CSU1sCSK.js'); }).then((mod)=>({
|
2272
2334
|
default: mod.ProtectedPreviewPage
|
2273
2335
|
})));
|
2274
2336
|
const routes$1 = [
|
@@ -2282,25 +2344,25 @@ const routes$1 = [
|
|
2282
2344
|
}
|
2283
2345
|
];
|
2284
2346
|
|
2285
|
-
const ProtectedEditViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditViewPage-
|
2347
|
+
const ProtectedEditViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditViewPage-CiYAHBOX.js'); }).then((mod)=>({
|
2286
2348
|
default: mod.ProtectedEditViewPage
|
2287
2349
|
})));
|
2288
|
-
const ProtectedListViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListViewPage-
|
2350
|
+
const ProtectedListViewPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListViewPage-CaBwwCVc.js'); }).then((mod)=>({
|
2289
2351
|
default: mod.ProtectedListViewPage
|
2290
2352
|
})));
|
2291
|
-
const ProtectedListConfiguration = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListConfigurationPage-
|
2353
|
+
const ProtectedListConfiguration = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ListConfigurationPage-pAdM7Lbn.js'); }).then((mod)=>({
|
2292
2354
|
default: mod.ProtectedListConfiguration
|
2293
2355
|
})));
|
2294
|
-
const ProtectedEditConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditConfigurationPage-
|
2356
|
+
const ProtectedEditConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./EditConfigurationPage-C62WuGTf.js'); }).then((mod)=>({
|
2295
2357
|
default: mod.ProtectedEditConfigurationPage
|
2296
2358
|
})));
|
2297
|
-
const ProtectedComponentConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ComponentConfigurationPage-
|
2359
|
+
const ProtectedComponentConfigurationPage = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./ComponentConfigurationPage-B-gE3kXG.js'); }).then((mod)=>({
|
2298
2360
|
default: mod.ProtectedComponentConfigurationPage
|
2299
2361
|
})));
|
2300
|
-
const NoPermissions = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoPermissionsPage-
|
2362
|
+
const NoPermissions = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoPermissionsPage-iVMEcUp0.js'); }).then((mod)=>({
|
2301
2363
|
default: mod.NoPermissions
|
2302
2364
|
})));
|
2303
|
-
const NoContentType = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoContentTypePage-
|
2365
|
+
const NoContentType = /*#__PURE__*/ React.lazy(()=>Promise.resolve().then(function () { return require('./NoContentTypePage-DLD28j4F.js'); }).then((mod)=>({
|
2304
2366
|
default: mod.NoContentType
|
2305
2367
|
})));
|
2306
2368
|
const CollectionTypePages = ()=>{
|
@@ -2687,8 +2749,8 @@ const transformData = (data)=>{
|
|
2687
2749
|
};
|
2688
2750
|
/* -------------------------------------------------------------------------------------------------
|
2689
2751
|
* DocumentActionComponents
|
2690
|
-
* -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document })=>{
|
2691
|
-
const
|
2752
|
+
* -----------------------------------------------------------------------------------------------*/ const PublishAction$1 = ({ activeTab, documentId, model, collectionType, meta, document, onPreview, fromPreview = false, fromRelationModal = false })=>{
|
2753
|
+
const schema = useDocumentContext('PublishAction', (state)=>state.document.schema);
|
2692
2754
|
const navigate = reactRouterDom.useNavigate();
|
2693
2755
|
const { toggleNotification } = strapiAdmin.useNotification();
|
2694
2756
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
@@ -2697,7 +2759,7 @@ const transformData = (data)=>{
|
|
2697
2759
|
const { id } = reactRouterDom.useParams();
|
2698
2760
|
const { formatMessage } = reactIntl.useIntl();
|
2699
2761
|
const canPublish = useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
|
2700
|
-
const { publish, isLoading } = useDocumentActions();
|
2762
|
+
const { publish, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
|
2701
2763
|
const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = useLazyGetDraftRelationCountQuery();
|
2702
2764
|
const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
|
2703
2765
|
const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
|
@@ -2711,6 +2773,8 @@ const transformData = (data)=>{
|
|
2711
2773
|
const validate = strapiAdmin.useForm('PublishAction', (state)=>state.validate);
|
2712
2774
|
const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
|
2713
2775
|
const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
|
2776
|
+
const rootDocumentMeta = useDocumentContext('PublishAction', (state)=>state.rootDocumentMeta);
|
2777
|
+
const currentDocumentMeta = useDocumentContext('PublishAction', (state)=>state.meta);
|
2714
2778
|
React__namespace.useEffect(()=>{
|
2715
2779
|
if (isErrorDraftRelations) {
|
2716
2780
|
toggleNotification({
|
@@ -2813,11 +2877,12 @@ const transformData = (data)=>{
|
|
2813
2877
|
});
|
2814
2878
|
return;
|
2815
2879
|
}
|
2880
|
+
const isPublishingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
|
2816
2881
|
const res = await publish({
|
2817
2882
|
collectionType,
|
2818
2883
|
model,
|
2819
2884
|
documentId,
|
2820
|
-
params
|
2885
|
+
params: isPublishingRelation ? currentDocumentMeta.params : params
|
2821
2886
|
}, transformData(formValues));
|
2822
2887
|
if ('data' in res && collectionType !== SINGLE_TYPES) {
|
2823
2888
|
/**
|
@@ -2833,6 +2898,9 @@ const transformData = (data)=>{
|
|
2833
2898
|
}
|
2834
2899
|
} finally{
|
2835
2900
|
setSubmitting(false);
|
2901
|
+
if (onPreview) {
|
2902
|
+
onPreview();
|
2903
|
+
}
|
2836
2904
|
}
|
2837
2905
|
};
|
2838
2906
|
const totalDraftRelations = localCountOfDraftRelations + serverCountOfDraftRelations;
|
@@ -2844,7 +2912,8 @@ const transformData = (data)=>{
|
|
2844
2912
|
loading: isLoading,
|
2845
2913
|
position: [
|
2846
2914
|
'panel',
|
2847
|
-
'preview'
|
2915
|
+
'preview',
|
2916
|
+
'relation-modal'
|
2848
2917
|
],
|
2849
2918
|
/**
|
2850
2919
|
* Disabled when:
|
@@ -2885,16 +2954,17 @@ const transformData = (data)=>{
|
|
2885
2954
|
PublishAction$1.type = 'publish';
|
2886
2955
|
PublishAction$1.position = [
|
2887
2956
|
'panel',
|
2888
|
-
'preview'
|
2957
|
+
'preview',
|
2958
|
+
'relation-modal'
|
2889
2959
|
];
|
2890
|
-
const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
2960
|
+
const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview, fromPreview = false, fromRelationModal = false })=>{
|
2891
2961
|
const navigate = reactRouterDom.useNavigate();
|
2892
2962
|
const { toggleNotification } = strapiAdmin.useNotification();
|
2893
2963
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2894
2964
|
const cloneMatch = reactRouterDom.useMatch(CLONE_PATH);
|
2895
2965
|
const isCloning = cloneMatch !== null;
|
2896
2966
|
const { formatMessage } = reactIntl.useIntl();
|
2897
|
-
const { create, update, clone, isLoading } = useDocumentActions();
|
2967
|
+
const { create, update, clone, isLoading } = useDocumentActions(fromPreview, fromRelationModal);
|
2898
2968
|
const [{ query, rawQuery }] = strapiAdmin.useQueryParams();
|
2899
2969
|
const params = React__namespace.useMemo(()=>buildValidParams(query), [
|
2900
2970
|
query
|
@@ -2906,6 +2976,8 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
2906
2976
|
const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
|
2907
2977
|
const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
|
2908
2978
|
const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
|
2979
|
+
const rootDocumentMeta = useDocumentContext('UpdateAction', (state)=>state.rootDocumentMeta);
|
2980
|
+
const currentDocumentMeta = useDocumentContext('UpdateAction', (state)=>state.meta);
|
2909
2981
|
const handleUpdate = React__namespace.useCallback(async ()=>{
|
2910
2982
|
setSubmitting(true);
|
2911
2983
|
try {
|
@@ -2942,11 +3014,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
2942
3014
|
setErrors(formatValidationErrors(res.error));
|
2943
3015
|
}
|
2944
3016
|
} else if (documentId || collectionType === SINGLE_TYPES) {
|
3017
|
+
const isEditingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
|
2945
3018
|
const res = await update({
|
2946
3019
|
collectionType,
|
2947
3020
|
model,
|
2948
3021
|
documentId,
|
2949
|
-
params
|
3022
|
+
params: isEditingRelation ? currentDocumentMeta.params : params
|
2950
3023
|
}, transformData(document));
|
2951
3024
|
if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
|
2952
3025
|
setErrors(formatValidationErrors(res.error));
|
@@ -2972,12 +3045,17 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
2972
3045
|
}
|
2973
3046
|
} finally{
|
2974
3047
|
setSubmitting(false);
|
3048
|
+
if (onPreview) {
|
3049
|
+
onPreview();
|
3050
|
+
}
|
2975
3051
|
}
|
2976
3052
|
}, [
|
2977
3053
|
clone,
|
2978
3054
|
cloneMatch?.params.origin,
|
2979
3055
|
collectionType,
|
2980
3056
|
create,
|
3057
|
+
currentDocumentMeta.documentId,
|
3058
|
+
currentDocumentMeta.params,
|
2981
3059
|
document,
|
2982
3060
|
documentId,
|
2983
3061
|
formatMessage,
|
@@ -2986,9 +3064,11 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
2986
3064
|
model,
|
2987
3065
|
modified,
|
2988
3066
|
navigate,
|
3067
|
+
onPreview,
|
2989
3068
|
params,
|
2990
3069
|
rawQuery,
|
2991
3070
|
resetForm,
|
3071
|
+
rootDocumentMeta.documentId,
|
2992
3072
|
setErrors,
|
2993
3073
|
setSubmitting,
|
2994
3074
|
toggleNotification,
|
@@ -3025,14 +3105,16 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
|
|
3025
3105
|
onClick: handleUpdate,
|
3026
3106
|
position: [
|
3027
3107
|
'panel',
|
3028
|
-
'preview'
|
3108
|
+
'preview',
|
3109
|
+
'relation-modal'
|
3029
3110
|
]
|
3030
3111
|
};
|
3031
3112
|
};
|
3032
3113
|
UpdateAction.type = 'update';
|
3033
3114
|
UpdateAction.position = [
|
3034
3115
|
'panel',
|
3035
|
-
'preview'
|
3116
|
+
'preview',
|
3117
|
+
'relation-modal'
|
3036
3118
|
];
|
3037
3119
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
3038
3120
|
KEEP: 'keep',
|
@@ -3325,12 +3407,11 @@ const capitalise = (str)=>str.charAt(0).toUpperCase() + str.slice(1);
|
|
3325
3407
|
size: size,
|
3326
3408
|
variant: statusVariant,
|
3327
3409
|
role: "status",
|
3328
|
-
"aria-
|
3410
|
+
"aria-label": status,
|
3329
3411
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
3330
3412
|
tag: "span",
|
3331
3413
|
variant: "omega",
|
3332
3414
|
fontWeight: "bold",
|
3333
|
-
id: "document-status",
|
3334
3415
|
children: formatMessage({
|
3335
3416
|
id: `content-manager.containers.List.${status}`,
|
3336
3417
|
defaultMessage: capitalise(status)
|
@@ -5309,7 +5390,7 @@ function __variableDynamicImportRuntime1__(path) {
|
|
5309
5390
|
case './translations/ca.json': return Promise.resolve().then(function () { return require('./ca-ClDTvatJ.js'); });
|
5310
5391
|
case './translations/cs.json': return Promise.resolve().then(function () { return require('./cs-BJFxwIWj.js'); });
|
5311
5392
|
case './translations/de.json': return Promise.resolve().then(function () { return require('./de-CbImAUA5.js'); });
|
5312
|
-
case './translations/en.json': return Promise.resolve().then(function () { return require('./en-
|
5393
|
+
case './translations/en.json': return Promise.resolve().then(function () { return require('./en-G976DLsg.js'); });
|
5313
5394
|
case './translations/es.json': return Promise.resolve().then(function () { return require('./es-C8vLuvZL.js'); });
|
5314
5395
|
case './translations/eu.json': return Promise.resolve().then(function () { return require('./eu-BJW3AvXu.js'); });
|
5315
5396
|
case './translations/fr.json': return Promise.resolve().then(function () { return require('./fr-gQSilC7w.js'); });
|
@@ -5334,7 +5415,7 @@ function __variableDynamicImportRuntime1__(path) {
|
|
5334
5415
|
case './translations/tr.json': return Promise.resolve().then(function () { return require('./tr-CkS6sLIE.js'); });
|
5335
5416
|
case './translations/uk.json': return Promise.resolve().then(function () { return require('./uk-DB6OgySY.js'); });
|
5336
5417
|
case './translations/vi.json': return Promise.resolve().then(function () { return require('./vi-BGr1X_HZ.js'); });
|
5337
|
-
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-
|
5418
|
+
case './translations/zh-Hans.json': return Promise.resolve().then(function () { return require('./zh-Hans-Djj7eGpO.js'); });
|
5338
5419
|
case './translations/zh.json': return Promise.resolve().then(function () { return require('./zh-DwFu_Kfj.js'); });
|
5339
5420
|
default: return new Promise(function(resolve, reject) {
|
5340
5421
|
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
@@ -5363,7 +5444,7 @@ var index = {
|
|
5363
5444
|
app.router.addRoute({
|
5364
5445
|
path: 'content-manager/*',
|
5365
5446
|
lazy: async ()=>{
|
5366
|
-
const { Layout } = await Promise.resolve().then(function () { return require('./layout-
|
5447
|
+
const { Layout } = await Promise.resolve().then(function () { return require('./layout-DuH1v82S.js'); });
|
5367
5448
|
return {
|
5368
5449
|
Component: Layout
|
5369
5450
|
};
|
@@ -5405,6 +5486,7 @@ exports.COLLECTION_TYPES = COLLECTION_TYPES;
|
|
5405
5486
|
exports.CREATOR_FIELDS = CREATOR_FIELDS;
|
5406
5487
|
exports.DEFAULT_SETTINGS = DEFAULT_SETTINGS;
|
5407
5488
|
exports.DocumentActionButton = DocumentActionButton;
|
5489
|
+
exports.DocumentContextProvider = DocumentContextProvider;
|
5408
5490
|
exports.DocumentRBAC = DocumentRBAC;
|
5409
5491
|
exports.DocumentStatus = DocumentStatus;
|
5410
5492
|
exports.HOOKS = HOOKS;
|
@@ -5438,6 +5520,7 @@ exports.useDoc = useDoc;
|
|
5438
5520
|
exports.useDocLayout = useDocLayout;
|
5439
5521
|
exports.useDocument = useDocument;
|
5440
5522
|
exports.useDocumentActions = useDocumentActions;
|
5523
|
+
exports.useDocumentContext = useDocumentContext;
|
5441
5524
|
exports.useDocumentLayout = useDocumentLayout;
|
5442
5525
|
exports.useDocumentRBAC = useDocumentRBAC;
|
5443
5526
|
exports.useGetAllContentTypeSettingsQuery = useGetAllContentTypeSettingsQuery;
|
@@ -5445,5 +5528,6 @@ exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
|
5445
5528
|
exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
|
5446
5529
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
5447
5530
|
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
5531
|
+
exports.useLazyGetDocumentQuery = useLazyGetDocumentQuery;
|
5448
5532
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
5449
|
-
//# sourceMappingURL=index-
|
5533
|
+
//# sourceMappingURL=index-Cmh0Byay.js.map
|