@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
@@ -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,
|
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',
|
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',
|
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-
|
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-
|
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-
|
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-
|
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-
|
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-
|
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-
|
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-
|
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-
|
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
|
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-
|
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-
|
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-
|
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-
|
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 {
|
5382
|
-
//# sourceMappingURL=index-
|
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
|