@strapi/content-manager 0.0.0-experimental.fccfa141baa6df7776ec7cb83f7fe923626ba6f5 → 0.0.0-experimental.fd51913e4ee4e81a845e6f5bcfd4916cac70ca2e
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/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -1
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CQroR9Qk.mjs → ComponentConfigurationPage-9_4yUE9L.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-CQroR9Qk.mjs.map → ComponentConfigurationPage-9_4yUE9L.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CO977CPh.js → ComponentConfigurationPage-DBSh-kET.js} +4 -5
- package/dist/_chunks/{ComponentConfigurationPage-CO977CPh.js.map → ComponentConfigurationPage-DBSh-kET.js.map} +1 -1
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
- package/dist/_chunks/{EditConfigurationPage-BPgoE-kf.js → EditConfigurationPage-Bl_U2JgH.js} +4 -5
- package/dist/_chunks/{EditConfigurationPage-BPgoE-kf.js.map → EditConfigurationPage-Bl_U2JgH.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-tVCJ5vWC.mjs → EditConfigurationPage-COe6hjPC.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-tVCJ5vWC.mjs.map → EditConfigurationPage-COe6hjPC.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-BMVgUNOX.js → EditViewPage-D4yFJET6.js} +23 -57
- package/dist/_chunks/EditViewPage-D4yFJET6.js.map +1 -0
- package/dist/_chunks/{EditViewPage-8mOu02ji.mjs → EditViewPage-DrmVmYN0.mjs} +21 -54
- package/dist/_chunks/EditViewPage-DrmVmYN0.mjs.map +1 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
- package/dist/_chunks/{Form-eP5bZwap.js → Form-C4rSaGsz.js} +5 -6
- package/dist/_chunks/{Form-eP5bZwap.js.map → Form-C4rSaGsz.js.map} +1 -1
- package/dist/_chunks/{Form-DJOJ-GF1.mjs → Form-DamaxNpG.mjs} +3 -3
- package/dist/_chunks/{Form-DJOJ-GF1.mjs.map → Form-DamaxNpG.mjs.map} +1 -1
- package/dist/_chunks/{History-MnQLtk1g.mjs → History-D1PreDSY.mjs} +51 -97
- package/dist/_chunks/History-D1PreDSY.mjs.map +1 -0
- package/dist/_chunks/{History-B-Mrquzu.js → History-DTm8UCCQ.js} +62 -109
- package/dist/_chunks/History-DTm8UCCQ.js.map +1 -0
- package/dist/_chunks/{Field-CdSLKFQk.js → Input-B7sapvBG.js} +1293 -1271
- package/dist/_chunks/Input-B7sapvBG.js.map +1 -0
- package/dist/_chunks/{Field-CJPYzwD7.mjs → Input-CZ1YvjHR.mjs} +1332 -1310
- package/dist/_chunks/Input-CZ1YvjHR.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-BcycI8Lw.mjs → ListConfigurationPage-Bbi32isk.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-Bbi32isk.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-C0n4rUzH.js → ListConfigurationPage-ysFMjKI3.js} +6 -6
- package/dist/_chunks/ListConfigurationPage-ysFMjKI3.js.map +1 -0
- package/dist/_chunks/{ListViewPage-CRXONXwZ.mjs → ListViewPage-Bud_jBDQ.mjs} +67 -41
- package/dist/_chunks/ListViewPage-Bud_jBDQ.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-q0SHVPUS.js → ListViewPage-DTuuxU3n.js} +73 -48
- package/dist/_chunks/ListViewPage-DTuuxU3n.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-Bh3komDV.js → NoContentTypePage-CL7VVeYs.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-Bh3komDV.js.map → NoContentTypePage-CL7VVeYs.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-ukzFRF3z.mjs → NoContentTypePage-DVhkugsf.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-ukzFRF3z.mjs.map → NoContentTypePage-DVhkugsf.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-B4sD7Ble.mjs → NoPermissionsPage-CMdM-dCo.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-B4sD7Ble.mjs.map → NoPermissionsPage-CMdM-dCo.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BGBpj_Y1.js → NoPermissionsPage-v7I599vC.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BGBpj_Y1.js.map → NoPermissionsPage-v7I599vC.js.map} +1 -1
- package/dist/_chunks/Preview-BNuU0SuQ.mjs +287 -0
- package/dist/_chunks/Preview-BNuU0SuQ.mjs.map +1 -0
- package/dist/_chunks/Preview-Cxq-uI6D.js +305 -0
- package/dist/_chunks/Preview-Cxq-uI6D.js.map +1 -0
- package/dist/_chunks/{Relations-CIexb8gr.mjs → Relations-C2Ahkrdg.mjs} +47 -22
- package/dist/_chunks/Relations-C2Ahkrdg.mjs.map +1 -0
- package/dist/_chunks/{Relations-B53wYe8g.js → Relations-CWS79QQn.js} +47 -23
- package/dist/_chunks/Relations-CWS79QQn.js.map +1 -0
- package/dist/_chunks/{en-Bm0D0IWz.js → en-BR48D_RH.js} +23 -4
- package/dist/_chunks/{en-Bm0D0IWz.js.map → en-BR48D_RH.js.map} +1 -1
- package/dist/_chunks/{en-DKV44jRb.mjs → en-D65uIF6Y.mjs} +23 -4
- package/dist/_chunks/{en-DKV44jRb.mjs.map → en-D65uIF6Y.mjs.map} +1 -1
- package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
- package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
- package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-C43IbhA_.js} +16 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-C43IbhA_.js.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr-DBseuRuB.mjs} +16 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr-DBseuRuB.mjs.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-DbT2sx-Q.js → index-DQsvBb_N.js} +629 -235
- package/dist/_chunks/index-DQsvBb_N.js.map +1 -0
- package/dist/_chunks/{index-CJ2vYwuT.mjs → index-ZKrsjv-2.mjs} +645 -251
- package/dist/_chunks/index-ZKrsjv-2.mjs.map +1 -0
- package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
- package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
- package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
- package/dist/_chunks/{layout-CeBSIkmP.js → layout-Cl0NhlQB.js} +5 -6
- package/dist/_chunks/{layout-CeBSIkmP.js.map → layout-Cl0NhlQB.js.map} +1 -1
- package/dist/_chunks/{layout-vzKSrr7p.mjs → layout-fQk1rMk9.mjs} +4 -4
- package/dist/_chunks/{layout-vzKSrr7p.mjs.map → layout-fQk1rMk9.mjs.map} +1 -1
- package/dist/_chunks/objects-BcXOv6_9.js.map +1 -1
- package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -1
- package/dist/_chunks/{relations-Cl-6t9iz.js → relations-BRfBxVbX.js} +6 -7
- package/dist/_chunks/relations-BRfBxVbX.js.map +1 -0
- package/dist/_chunks/{relations-DI0lguF0.mjs → relations-BakOFl_1.mjs} +6 -7
- package/dist/_chunks/relations-BakOFl_1.mjs.map +1 -0
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
- package/dist/_chunks/{useDebounce-DmuSJIF3.mjs → usePrev-CZGy2Vjf.mjs} +11 -11
- package/dist/_chunks/usePrev-CZGy2Vjf.mjs.map +1 -0
- package/dist/_chunks/{useDebounce-CtcjDB3L.js → usePrev-D5J_2fEu.js} +8 -8
- package/dist/_chunks/usePrev-D5J_2fEu.js.map +1 -0
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +6 -5
- package/dist/admin/src/content-manager.d.ts +3 -2
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +19 -2
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +3 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +27 -0
- package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -0
- package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/router.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +16 -19
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/server/index.js +560 -317
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +561 -317
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +16 -1
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/controllers/history-version.d.ts +1 -1
- package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts +3 -3
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +6 -11
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -6
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/controllers/index.d.ts +2 -0
- package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/preview.d.ts +13 -0
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/index.d.ts +8 -0
- package/dist/server/src/preview/routes/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/preview.d.ts +4 -0
- package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
- package/dist/server/src/preview/services/index.d.ts +16 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +32 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview.d.ts +12 -0
- package/dist/server/src/preview/services/preview.d.ts.map +1 -0
- package/dist/server/src/preview/utils.d.ts +19 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +12 -10
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +7 -6
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts +2 -2
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/preview.d.ts +27 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +4 -0
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +13 -12
- package/dist/_chunks/EditViewPage-8mOu02ji.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-BMVgUNOX.js.map +0 -1
- package/dist/_chunks/Field-CJPYzwD7.mjs.map +0 -1
- package/dist/_chunks/Field-CdSLKFQk.js.map +0 -1
- package/dist/_chunks/History-B-Mrquzu.js.map +0 -1
- package/dist/_chunks/History-MnQLtk1g.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-BcycI8Lw.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-C0n4rUzH.js.map +0 -1
- package/dist/_chunks/ListViewPage-CRXONXwZ.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-q0SHVPUS.js.map +0 -1
- package/dist/_chunks/Relations-B53wYe8g.js.map +0 -1
- package/dist/_chunks/Relations-CIexb8gr.mjs.map +0 -1
- package/dist/_chunks/index-CJ2vYwuT.mjs.map +0 -1
- package/dist/_chunks/index-DbT2sx-Q.js.map +0 -1
- package/dist/_chunks/relations-Cl-6t9iz.js.map +0 -1
- package/dist/_chunks/relations-DI0lguF0.mjs.map +0 -1
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +0 -1
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +0 -1
@@ -4,18 +4,19 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
5
5
|
const React = require("react");
|
6
6
|
const designSystem = require("@strapi/design-system");
|
7
|
+
const mapValues = require("lodash/fp/mapValues");
|
7
8
|
const reactIntl = require("react-intl");
|
8
9
|
const reactRouterDom = require("react-router-dom");
|
10
|
+
const styledComponents = require("styled-components");
|
9
11
|
const yup = require("yup");
|
12
|
+
const fractionalIndexing = require("fractional-indexing");
|
10
13
|
const pipe = require("lodash/fp/pipe");
|
11
|
-
const dateFns = require("date-fns");
|
12
|
-
const styledComponents = require("styled-components");
|
13
14
|
const qs = require("qs");
|
15
|
+
const dateFns = require("date-fns");
|
14
16
|
const toolkit = require("@reduxjs/toolkit");
|
15
17
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
16
18
|
function _interopNamespace(e) {
|
17
|
-
if (e && e.__esModule)
|
18
|
-
return e;
|
19
|
+
if (e && e.__esModule) return e;
|
19
20
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
20
21
|
if (e) {
|
21
22
|
for (const k in e) {
|
@@ -32,15 +33,23 @@ function _interopNamespace(e) {
|
|
32
33
|
return Object.freeze(n);
|
33
34
|
}
|
34
35
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
36
|
+
const mapValues__default = /* @__PURE__ */ _interopDefault(mapValues);
|
35
37
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
36
38
|
const pipe__default = /* @__PURE__ */ _interopDefault(pipe);
|
37
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
39
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
38
40
|
const v = glob[path];
|
39
41
|
if (v) {
|
40
42
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
41
43
|
}
|
42
44
|
return new Promise((_, reject) => {
|
43
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
45
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
46
|
+
reject.bind(
|
47
|
+
null,
|
48
|
+
new Error(
|
49
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
50
|
+
)
|
51
|
+
)
|
52
|
+
);
|
44
53
|
});
|
45
54
|
};
|
46
55
|
const PLUGIN_ID = "content-manager";
|
@@ -179,6 +188,113 @@ const extractAndDedupeFields = (permissions = []) => permissions.flatMap((permis
|
|
179
188
|
(field, index2, arr) => arr.indexOf(field) === index2 && typeof field === "string"
|
180
189
|
);
|
181
190
|
const removeNumericalStrings = (arr) => arr.filter((item) => isNaN(Number(item)));
|
191
|
+
const BLOCK_LIST_ATTRIBUTE_KEYS = ["__component", "__temp_key__"];
|
192
|
+
const traverseData = (predicate, transform) => (schema, components = {}) => (data = {}) => {
|
193
|
+
const traverse = (datum, attributes) => {
|
194
|
+
return Object.entries(datum).reduce((acc, [key, value]) => {
|
195
|
+
const attribute = attributes[key];
|
196
|
+
if (BLOCK_LIST_ATTRIBUTE_KEYS.includes(key) || value === null || value === void 0) {
|
197
|
+
acc[key] = value;
|
198
|
+
return acc;
|
199
|
+
}
|
200
|
+
if (attribute.type === "component") {
|
201
|
+
if (attribute.repeatable) {
|
202
|
+
const componentValue = predicate(attribute, value) ? transform(value, attribute) : value;
|
203
|
+
acc[key] = componentValue.map(
|
204
|
+
(componentData) => traverse(componentData, components[attribute.component]?.attributes ?? {})
|
205
|
+
);
|
206
|
+
} else {
|
207
|
+
const componentValue = predicate(attribute, value) ? transform(value, attribute) : value;
|
208
|
+
acc[key] = traverse(componentValue, components[attribute.component]?.attributes ?? {});
|
209
|
+
}
|
210
|
+
} else if (attribute.type === "dynamiczone") {
|
211
|
+
const dynamicZoneValue = predicate(attribute, value) ? transform(value, attribute) : value;
|
212
|
+
acc[key] = dynamicZoneValue.map(
|
213
|
+
(componentData) => traverse(componentData, components[componentData.__component]?.attributes ?? {})
|
214
|
+
);
|
215
|
+
} else if (predicate(attribute, value)) {
|
216
|
+
acc[key] = transform(value, attribute);
|
217
|
+
} else {
|
218
|
+
acc[key] = value;
|
219
|
+
}
|
220
|
+
return acc;
|
221
|
+
}, {});
|
222
|
+
};
|
223
|
+
return traverse(data, schema.attributes);
|
224
|
+
};
|
225
|
+
const removeProhibitedFields = (prohibitedFields) => traverseData(
|
226
|
+
(attribute) => prohibitedFields.includes(attribute.type),
|
227
|
+
() => ""
|
228
|
+
);
|
229
|
+
const prepareRelations = traverseData(
|
230
|
+
(attribute) => attribute.type === "relation",
|
231
|
+
() => ({
|
232
|
+
connect: [],
|
233
|
+
disconnect: []
|
234
|
+
})
|
235
|
+
);
|
236
|
+
const prepareTempKeys = traverseData(
|
237
|
+
(attribute) => attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone",
|
238
|
+
(data) => {
|
239
|
+
if (Array.isArray(data) && data.length > 0) {
|
240
|
+
const keys = fractionalIndexing.generateNKeysBetween(void 0, void 0, data.length);
|
241
|
+
return data.map((datum, index2) => ({
|
242
|
+
...datum,
|
243
|
+
__temp_key__: keys[index2]
|
244
|
+
}));
|
245
|
+
}
|
246
|
+
return data;
|
247
|
+
}
|
248
|
+
);
|
249
|
+
const removeFieldsThatDontExistOnSchema = (schema) => (data) => {
|
250
|
+
const schemaKeys = Object.keys(schema.attributes);
|
251
|
+
const dataKeys = Object.keys(data);
|
252
|
+
const keysToRemove = dataKeys.filter((key) => !schemaKeys.includes(key));
|
253
|
+
const revisedData = [...keysToRemove, ...DOCUMENT_META_FIELDS].reduce((acc, key) => {
|
254
|
+
delete acc[key];
|
255
|
+
return acc;
|
256
|
+
}, structuredClone(data));
|
257
|
+
return revisedData;
|
258
|
+
};
|
259
|
+
const removeNullValues = (data) => {
|
260
|
+
return Object.entries(data).reduce((acc, [key, value]) => {
|
261
|
+
if (value === null) {
|
262
|
+
return acc;
|
263
|
+
}
|
264
|
+
acc[key] = value;
|
265
|
+
return acc;
|
266
|
+
}, {});
|
267
|
+
};
|
268
|
+
const transformDocument = (schema, components = {}) => (document) => {
|
269
|
+
const transformations = pipe__default.default(
|
270
|
+
removeFieldsThatDontExistOnSchema(schema),
|
271
|
+
removeProhibitedFields(["password"])(schema, components),
|
272
|
+
removeNullValues,
|
273
|
+
prepareRelations(schema, components),
|
274
|
+
prepareTempKeys(schema, components)
|
275
|
+
);
|
276
|
+
return transformations(document);
|
277
|
+
};
|
278
|
+
const createDefaultForm = (contentType, components = {}) => {
|
279
|
+
const traverseSchema = (attributes) => {
|
280
|
+
return Object.entries(attributes).reduce((acc, [key, attribute]) => {
|
281
|
+
if ("default" in attribute) {
|
282
|
+
acc[key] = attribute.default;
|
283
|
+
} else if (attribute.type === "component" && attribute.required) {
|
284
|
+
const defaultComponentForm = traverseSchema(components[attribute.component].attributes);
|
285
|
+
if (attribute.repeatable) {
|
286
|
+
acc[key] = attribute.min ? [...Array(attribute.min).fill(defaultComponentForm)] : [];
|
287
|
+
} else {
|
288
|
+
acc[key] = defaultComponentForm;
|
289
|
+
}
|
290
|
+
} else if (attribute.type === "dynamiczone" && attribute.required) {
|
291
|
+
acc[key] = [];
|
292
|
+
}
|
293
|
+
return acc;
|
294
|
+
}, {});
|
295
|
+
};
|
296
|
+
return traverseSchema(contentType.attributes);
|
297
|
+
};
|
182
298
|
const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
|
183
299
|
addTagTypes: [
|
184
300
|
"ComponentConfiguration",
|
@@ -188,7 +304,8 @@ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
188
304
|
"InitialData",
|
189
305
|
"HistoryVersion",
|
190
306
|
"Relations",
|
191
|
-
"UidAvailability"
|
307
|
+
"UidAvailability",
|
308
|
+
"RecentDocumentList"
|
192
309
|
]
|
193
310
|
});
|
194
311
|
const documentApi = contentManagerApi.injectEndpoints({
|
@@ -206,7 +323,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
206
323
|
if (error) {
|
207
324
|
return [];
|
208
325
|
}
|
209
|
-
return [{ type: "Document", id: `${model}_LIST` }];
|
326
|
+
return [{ type: "Document", id: `${model}_LIST` }, "RecentDocumentList"];
|
210
327
|
}
|
211
328
|
}),
|
212
329
|
cloneDocument: builder.mutation({
|
@@ -220,7 +337,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
220
337
|
}),
|
221
338
|
invalidatesTags: (_result, _error, { model }) => [
|
222
339
|
{ type: "Document", id: `${model}_LIST` },
|
223
|
-
{ type: "UidAvailability", id: model }
|
340
|
+
{ type: "UidAvailability", id: model },
|
341
|
+
"RecentDocumentList"
|
224
342
|
]
|
225
343
|
}),
|
226
344
|
/**
|
@@ -239,8 +357,21 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
239
357
|
invalidatesTags: (result, _error, { model }) => [
|
240
358
|
{ type: "Document", id: `${model}_LIST` },
|
241
359
|
"Relations",
|
242
|
-
{ type: "UidAvailability", id: model }
|
243
|
-
|
360
|
+
{ type: "UidAvailability", id: model },
|
361
|
+
"RecentDocumentList"
|
362
|
+
],
|
363
|
+
transformResponse: (response, meta, arg) => {
|
364
|
+
if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
|
365
|
+
return {
|
366
|
+
data: response,
|
367
|
+
meta: {
|
368
|
+
availableStatus: [],
|
369
|
+
availableLocales: []
|
370
|
+
}
|
371
|
+
};
|
372
|
+
}
|
373
|
+
return response;
|
374
|
+
}
|
244
375
|
}),
|
245
376
|
deleteDocument: builder.mutation({
|
246
377
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -251,7 +382,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
251
382
|
}
|
252
383
|
}),
|
253
384
|
invalidatesTags: (_result, _error, { collectionType, model }) => [
|
254
|
-
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model }
|
385
|
+
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },
|
386
|
+
"RecentDocumentList"
|
255
387
|
]
|
256
388
|
}),
|
257
389
|
deleteManyDocuments: builder.mutation({
|
@@ -263,7 +395,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
263
395
|
params
|
264
396
|
}
|
265
397
|
}),
|
266
|
-
invalidatesTags: (_res, _error, { model }) => [
|
398
|
+
invalidatesTags: (_res, _error, { model }) => [
|
399
|
+
{ type: "Document", id: `${model}_LIST` },
|
400
|
+
"RecentDocumentList"
|
401
|
+
]
|
267
402
|
}),
|
268
403
|
discardDocument: builder.mutation({
|
269
404
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -281,7 +416,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
281
416
|
},
|
282
417
|
{ type: "Document", id: `${model}_LIST` },
|
283
418
|
"Relations",
|
284
|
-
{ type: "UidAvailability", id: model }
|
419
|
+
{ type: "UidAvailability", id: model },
|
420
|
+
"RecentDocumentList"
|
285
421
|
];
|
286
422
|
}
|
287
423
|
}),
|
@@ -294,7 +430,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
294
430
|
url: `/content-manager/collection-types/${model}`,
|
295
431
|
method: "GET",
|
296
432
|
config: {
|
297
|
-
params
|
433
|
+
params: qs.stringify(params, { encode: true })
|
298
434
|
}
|
299
435
|
}),
|
300
436
|
providesTags: (result, _error, arg) => {
|
@@ -376,7 +512,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
376
512
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
377
513
|
},
|
378
514
|
{ type: "Document", id: `${model}_LIST` },
|
379
|
-
"Relations"
|
515
|
+
"Relations",
|
516
|
+
"RecentDocumentList"
|
380
517
|
];
|
381
518
|
}
|
382
519
|
}),
|
@@ -407,7 +544,9 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
407
544
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
408
545
|
},
|
409
546
|
"Relations",
|
410
|
-
{ type: "UidAvailability", id: model }
|
547
|
+
{ type: "UidAvailability", id: model },
|
548
|
+
"RecentDocumentList",
|
549
|
+
"RecentDocumentList"
|
411
550
|
];
|
412
551
|
},
|
413
552
|
async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
|
@@ -437,7 +576,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
437
576
|
{
|
438
577
|
type: "Document",
|
439
578
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
440
|
-
}
|
579
|
+
},
|
580
|
+
"RecentDocumentList"
|
441
581
|
];
|
442
582
|
}
|
443
583
|
}),
|
@@ -450,7 +590,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
450
590
|
params
|
451
591
|
}
|
452
592
|
}),
|
453
|
-
invalidatesTags: (_res, _error, { model, documentIds }) =>
|
593
|
+
invalidatesTags: (_res, _error, { model, documentIds }) => [
|
594
|
+
...documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` })),
|
595
|
+
"RecentDocumentList"
|
596
|
+
]
|
454
597
|
})
|
455
598
|
})
|
456
599
|
});
|
@@ -473,8 +616,7 @@ const {
|
|
473
616
|
useUnpublishManyDocumentsMutation
|
474
617
|
} = documentApi;
|
475
618
|
const buildValidParams = (query) => {
|
476
|
-
if (!query)
|
477
|
-
return query;
|
619
|
+
if (!query) return query;
|
478
620
|
const { plugins: _, ...validQueryParams } = {
|
479
621
|
...query,
|
480
622
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -482,9 +624,6 @@ const buildValidParams = (query) => {
|
|
482
624
|
{}
|
483
625
|
)
|
484
626
|
};
|
485
|
-
if ("_q" in validQueryParams) {
|
486
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
487
|
-
}
|
488
627
|
return validQueryParams;
|
489
628
|
};
|
490
629
|
const isBaseQueryError = (error) => {
|
@@ -989,9 +1128,10 @@ const formatEditLayout = (data, {
|
|
989
1128
|
currentPanelIndex += 2;
|
990
1129
|
} else {
|
991
1130
|
if (!panels[currentPanelIndex]) {
|
992
|
-
panels.push([]);
|
1131
|
+
panels.push([row]);
|
1132
|
+
} else {
|
1133
|
+
panels[currentPanelIndex].push(row);
|
993
1134
|
}
|
994
|
-
panels[currentPanelIndex].push(row);
|
995
1135
|
}
|
996
1136
|
return panels;
|
997
1137
|
}, []);
|
@@ -1124,6 +1264,7 @@ const convertListLayoutToFieldLayouts = (columns, attributes = {}, metadatas, co
|
|
1124
1264
|
const useDocument = (args, opts) => {
|
1125
1265
|
const { toggleNotification } = strapiAdmin.useNotification();
|
1126
1266
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
1267
|
+
const { formatMessage } = reactIntl.useIntl();
|
1127
1268
|
const {
|
1128
1269
|
currentData: data,
|
1129
1270
|
isLoading: isLoadingDocument,
|
@@ -1133,12 +1274,27 @@ const useDocument = (args, opts) => {
|
|
1133
1274
|
...opts,
|
1134
1275
|
skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
|
1135
1276
|
});
|
1277
|
+
const document = data?.data;
|
1278
|
+
const meta = data?.meta;
|
1136
1279
|
const {
|
1137
1280
|
components,
|
1138
1281
|
schema,
|
1139
1282
|
schemas,
|
1140
1283
|
isLoading: isLoadingSchema
|
1141
1284
|
} = useContentTypeSchema(args.model);
|
1285
|
+
const isSingleType = schema?.kind === "singleType";
|
1286
|
+
const getTitle = (mainField) => {
|
1287
|
+
if (mainField !== "id" && document?.[mainField]) {
|
1288
|
+
return document[mainField];
|
1289
|
+
}
|
1290
|
+
if (isSingleType && schema?.info.displayName) {
|
1291
|
+
return schema.info.displayName;
|
1292
|
+
}
|
1293
|
+
return formatMessage({
|
1294
|
+
id: "content-manager.containers.untitled",
|
1295
|
+
defaultMessage: "Untitled"
|
1296
|
+
});
|
1297
|
+
};
|
1142
1298
|
React__namespace.useEffect(() => {
|
1143
1299
|
if (error) {
|
1144
1300
|
toggleNotification({
|
@@ -1154,14 +1310,14 @@ const useDocument = (args, opts) => {
|
|
1154
1310
|
return createYupSchema(schema.attributes, components);
|
1155
1311
|
}, [schema, components]);
|
1156
1312
|
const validate = React__namespace.useCallback(
|
1157
|
-
(
|
1313
|
+
(document2) => {
|
1158
1314
|
if (!validationSchema) {
|
1159
1315
|
throw new Error(
|
1160
1316
|
"There is no validation schema generated, this is likely due to the schema not being loaded yet."
|
1161
1317
|
);
|
1162
1318
|
}
|
1163
1319
|
try {
|
1164
|
-
validationSchema.validateSync(
|
1320
|
+
validationSchema.validateSync(document2, { abortEarly: false, strict: true });
|
1165
1321
|
return null;
|
1166
1322
|
} catch (error2) {
|
1167
1323
|
if (error2 instanceof yup.ValidationError) {
|
@@ -1172,17 +1328,29 @@ const useDocument = (args, opts) => {
|
|
1172
1328
|
},
|
1173
1329
|
[validationSchema]
|
1174
1330
|
);
|
1331
|
+
const getInitialFormValues = React__namespace.useCallback(
|
1332
|
+
(isCreatingDocument = false) => {
|
1333
|
+
if (!document && !isCreatingDocument && !isSingleType || !schema) {
|
1334
|
+
return void 0;
|
1335
|
+
}
|
1336
|
+
const form = document?.id ? document : createDefaultForm(schema, components);
|
1337
|
+
return transformDocument(schema, components)(form);
|
1338
|
+
},
|
1339
|
+
[document, isSingleType, schema, components]
|
1340
|
+
);
|
1175
1341
|
const isLoading = isLoadingDocument || isFetchingDocument || isLoadingSchema;
|
1176
1342
|
const hasError = !!error;
|
1177
1343
|
return {
|
1178
1344
|
components,
|
1179
|
-
document
|
1180
|
-
meta
|
1345
|
+
document,
|
1346
|
+
meta,
|
1181
1347
|
isLoading,
|
1182
1348
|
hasError,
|
1183
1349
|
schema,
|
1184
1350
|
schemas,
|
1185
|
-
validate
|
1351
|
+
validate,
|
1352
|
+
getTitle,
|
1353
|
+
getInitialFormValues
|
1186
1354
|
};
|
1187
1355
|
};
|
1188
1356
|
const useDoc = () => {
|
@@ -1682,10 +1850,10 @@ const useDocumentActions = () => {
|
|
1682
1850
|
update
|
1683
1851
|
};
|
1684
1852
|
};
|
1685
|
-
const ProtectedHistoryPage =
|
1686
|
-
() => Promise.resolve().then(() => require("./History-
|
1853
|
+
const ProtectedHistoryPage = React__namespace.lazy(
|
1854
|
+
() => Promise.resolve().then(() => require("./History-DTm8UCCQ.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1687
1855
|
);
|
1688
|
-
const routes$
|
1856
|
+
const routes$2 = [
|
1689
1857
|
{
|
1690
1858
|
path: ":collectionType/:slug/:id/history",
|
1691
1859
|
Component: ProtectedHistoryPage
|
@@ -1695,32 +1863,45 @@ const routes$1 = [
|
|
1695
1863
|
Component: ProtectedHistoryPage
|
1696
1864
|
}
|
1697
1865
|
];
|
1866
|
+
const ProtectedPreviewPage = React__namespace.lazy(
|
1867
|
+
() => Promise.resolve().then(() => require("./Preview-Cxq-uI6D.js")).then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1868
|
+
);
|
1869
|
+
const routes$1 = [
|
1870
|
+
{
|
1871
|
+
path: ":collectionType/:slug/:id/preview",
|
1872
|
+
Component: ProtectedPreviewPage
|
1873
|
+
},
|
1874
|
+
{
|
1875
|
+
path: ":collectionType/:slug/preview",
|
1876
|
+
Component: ProtectedPreviewPage
|
1877
|
+
}
|
1878
|
+
];
|
1698
1879
|
const ProtectedEditViewPage = React.lazy(
|
1699
|
-
() => Promise.resolve().then(() => require("./EditViewPage-
|
1880
|
+
() => Promise.resolve().then(() => require("./EditViewPage-D4yFJET6.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1700
1881
|
);
|
1701
1882
|
const ProtectedListViewPage = React.lazy(
|
1702
|
-
() => Promise.resolve().then(() => require("./ListViewPage-
|
1883
|
+
() => Promise.resolve().then(() => require("./ListViewPage-DTuuxU3n.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1703
1884
|
);
|
1704
1885
|
const ProtectedListConfiguration = React.lazy(
|
1705
|
-
() => Promise.resolve().then(() => require("./ListConfigurationPage-
|
1886
|
+
() => Promise.resolve().then(() => require("./ListConfigurationPage-ysFMjKI3.js")).then((mod) => ({
|
1706
1887
|
default: mod.ProtectedListConfiguration
|
1707
1888
|
}))
|
1708
1889
|
);
|
1709
1890
|
const ProtectedEditConfigurationPage = React.lazy(
|
1710
|
-
() => Promise.resolve().then(() => require("./EditConfigurationPage-
|
1891
|
+
() => Promise.resolve().then(() => require("./EditConfigurationPage-Bl_U2JgH.js")).then((mod) => ({
|
1711
1892
|
default: mod.ProtectedEditConfigurationPage
|
1712
1893
|
}))
|
1713
1894
|
);
|
1714
1895
|
const ProtectedComponentConfigurationPage = React.lazy(
|
1715
|
-
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-
|
1896
|
+
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-DBSh-kET.js")).then((mod) => ({
|
1716
1897
|
default: mod.ProtectedComponentConfigurationPage
|
1717
1898
|
}))
|
1718
1899
|
);
|
1719
1900
|
const NoPermissions = React.lazy(
|
1720
|
-
() => Promise.resolve().then(() => require("./NoPermissionsPage-
|
1901
|
+
() => Promise.resolve().then(() => require("./NoPermissionsPage-v7I599vC.js")).then((mod) => ({ default: mod.NoPermissions }))
|
1721
1902
|
);
|
1722
1903
|
const NoContentType = React.lazy(
|
1723
|
-
() => Promise.resolve().then(() => require("./NoContentTypePage-
|
1904
|
+
() => Promise.resolve().then(() => require("./NoContentTypePage-CL7VVeYs.js")).then((mod) => ({ default: mod.NoContentType }))
|
1724
1905
|
);
|
1725
1906
|
const CollectionTypePages = () => {
|
1726
1907
|
const { collectionType } = reactRouterDom.useParams();
|
@@ -1732,7 +1913,7 @@ const CollectionTypePages = () => {
|
|
1732
1913
|
const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
|
1733
1914
|
const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
|
1734
1915
|
const LIST_RELATIVE_PATH = ":collectionType/:slug";
|
1735
|
-
const LIST_PATH = `/content-manager
|
1916
|
+
const LIST_PATH = `/content-manager/collection-types/:slug`;
|
1736
1917
|
const routes = [
|
1737
1918
|
{
|
1738
1919
|
path: LIST_RELATIVE_PATH,
|
@@ -1766,6 +1947,7 @@ const routes = [
|
|
1766
1947
|
path: "no-content-types",
|
1767
1948
|
Component: NoContentType
|
1768
1949
|
},
|
1950
|
+
...routes$2,
|
1769
1951
|
...routes$1
|
1770
1952
|
];
|
1771
1953
|
const DocumentActions = ({ actions: actions2 }) => {
|
@@ -1864,6 +2046,11 @@ const DocumentActionButton = (action) => {
|
|
1864
2046
|
) : null
|
1865
2047
|
] });
|
1866
2048
|
};
|
2049
|
+
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
2050
|
+
&:hover {
|
2051
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
2052
|
+
}
|
2053
|
+
`;
|
1867
2054
|
const DocumentActionsMenu = ({
|
1868
2055
|
actions: actions2,
|
1869
2056
|
children,
|
@@ -1922,48 +2109,32 @@ const DocumentActionsMenu = ({
|
|
1922
2109
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1923
2110
|
actions2.map((action) => {
|
1924
2111
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
1925
|
-
|
2112
|
+
MenuItem,
|
1926
2113
|
{
|
1927
2114
|
disabled: action.disabled,
|
1928
2115
|
onSelect: handleClick(action),
|
1929
2116
|
display: "block",
|
1930
|
-
|
1931
|
-
|
1932
|
-
|
1933
|
-
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
designSystem.Flex,
|
1952
|
-
{
|
1953
|
-
alignItems: "center",
|
1954
|
-
background: "alternative100",
|
1955
|
-
borderStyle: "solid",
|
1956
|
-
borderColor: "alternative200",
|
1957
|
-
borderWidth: "1px",
|
1958
|
-
height: 5,
|
1959
|
-
paddingLeft: 2,
|
1960
|
-
paddingRight: 2,
|
1961
|
-
hasRadius: true,
|
1962
|
-
color: "alternative600",
|
1963
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", fontWeight: "bold", lineHeight: 1, children: formatMessage({ id: "global.new", defaultMessage: "New" }) })
|
1964
|
-
}
|
1965
|
-
)
|
1966
|
-
] })
|
2117
|
+
isVariantDanger: action.variant === "danger",
|
2118
|
+
isDisabled: action.disabled,
|
2119
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
2120
|
+
designSystem.Flex,
|
2121
|
+
{
|
2122
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
2123
|
+
gap: 2,
|
2124
|
+
tag: "span",
|
2125
|
+
children: [
|
2126
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
2127
|
+
designSystem.Flex,
|
2128
|
+
{
|
2129
|
+
tag: "span",
|
2130
|
+
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
|
2131
|
+
children: action.icon
|
2132
|
+
}
|
2133
|
+
),
|
2134
|
+
action.label
|
2135
|
+
]
|
2136
|
+
}
|
2137
|
+
) })
|
1967
2138
|
},
|
1968
2139
|
action.id
|
1969
2140
|
);
|
@@ -2074,6 +2245,18 @@ const DocumentActionModal = ({
|
|
2074
2245
|
typeof Footer === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Footer, { onClose: handleClose }) : Footer
|
2075
2246
|
] }) });
|
2076
2247
|
};
|
2248
|
+
const transformData = (data) => {
|
2249
|
+
if (Array.isArray(data)) {
|
2250
|
+
return data.map(transformData);
|
2251
|
+
}
|
2252
|
+
if (typeof data === "object" && data !== null) {
|
2253
|
+
if ("apiData" in data) {
|
2254
|
+
return data.apiData;
|
2255
|
+
}
|
2256
|
+
return mapValues__default.default(transformData)(data);
|
2257
|
+
}
|
2258
|
+
return data;
|
2259
|
+
};
|
2077
2260
|
const PublishAction$1 = ({
|
2078
2261
|
activeTab,
|
2079
2262
|
documentId,
|
@@ -2088,6 +2271,7 @@ const PublishAction$1 = ({
|
|
2088
2271
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2089
2272
|
const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
|
2090
2273
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2274
|
+
const { id } = reactRouterDom.useParams();
|
2091
2275
|
const { formatMessage } = reactIntl.useIntl();
|
2092
2276
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2093
2277
|
const { publish } = useDocumentActions();
|
@@ -2187,13 +2371,15 @@ const PublishAction$1 = ({
|
|
2187
2371
|
documentId,
|
2188
2372
|
params
|
2189
2373
|
},
|
2190
|
-
formValues
|
2374
|
+
transformData(formValues)
|
2191
2375
|
);
|
2192
2376
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2193
|
-
|
2194
|
-
|
2195
|
-
|
2196
|
-
|
2377
|
+
if (id === "create") {
|
2378
|
+
navigate({
|
2379
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2380
|
+
search: rawQuery
|
2381
|
+
});
|
2382
|
+
}
|
2197
2383
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2198
2384
|
setErrors(formatValidationErrors(res.error));
|
2199
2385
|
}
|
@@ -2246,6 +2432,7 @@ const PublishAction$1 = ({
|
|
2246
2432
|
};
|
2247
2433
|
};
|
2248
2434
|
PublishAction$1.type = "publish";
|
2435
|
+
PublishAction$1.position = "panel";
|
2249
2436
|
const UpdateAction = ({
|
2250
2437
|
activeTab,
|
2251
2438
|
documentId,
|
@@ -2268,96 +2455,134 @@ const UpdateAction = ({
|
|
2268
2455
|
const validate = strapiAdmin.useForm("UpdateAction", (state) => state.validate);
|
2269
2456
|
const setErrors = strapiAdmin.useForm("UpdateAction", (state) => state.setErrors);
|
2270
2457
|
const resetForm = strapiAdmin.useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2271
|
-
|
2272
|
-
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
|
2279
|
-
|
2280
|
-
|
2281
|
-
|
2282
|
-
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
status: "draft"
|
2458
|
+
const handleUpdate = React__namespace.useCallback(async () => {
|
2459
|
+
setSubmitting(true);
|
2460
|
+
try {
|
2461
|
+
if (!modified) {
|
2462
|
+
return;
|
2463
|
+
}
|
2464
|
+
const { errors } = await validate(true, {
|
2465
|
+
status: "draft"
|
2466
|
+
});
|
2467
|
+
if (errors) {
|
2468
|
+
toggleNotification({
|
2469
|
+
type: "danger",
|
2470
|
+
message: formatMessage({
|
2471
|
+
id: "content-manager.validation.error",
|
2472
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2473
|
+
})
|
2288
2474
|
});
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2295
|
-
|
2296
|
-
|
2297
|
-
|
2298
|
-
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
model,
|
2303
|
-
documentId: cloneMatch.params.origin,
|
2304
|
-
params
|
2305
|
-
},
|
2306
|
-
document
|
2307
|
-
);
|
2308
|
-
if ("data" in res) {
|
2309
|
-
navigate(
|
2310
|
-
{
|
2311
|
-
pathname: `../${res.data.documentId}`,
|
2312
|
-
search: rawQuery
|
2313
|
-
},
|
2314
|
-
{ relative: "path" }
|
2315
|
-
);
|
2316
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2317
|
-
setErrors(formatValidationErrors(res.error));
|
2318
|
-
}
|
2319
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2320
|
-
const res = await update(
|
2475
|
+
return;
|
2476
|
+
}
|
2477
|
+
if (isCloning) {
|
2478
|
+
const res = await clone(
|
2479
|
+
{
|
2480
|
+
model,
|
2481
|
+
documentId: cloneMatch.params.origin,
|
2482
|
+
params
|
2483
|
+
},
|
2484
|
+
transformData(document)
|
2485
|
+
);
|
2486
|
+
if ("data" in res) {
|
2487
|
+
navigate(
|
2321
2488
|
{
|
2322
|
-
|
2323
|
-
|
2324
|
-
documentId,
|
2325
|
-
params
|
2489
|
+
pathname: `../${res.data.documentId}`,
|
2490
|
+
search: rawQuery
|
2326
2491
|
},
|
2327
|
-
|
2492
|
+
{ relative: "path" }
|
2328
2493
|
);
|
2329
|
-
|
2330
|
-
|
2331
|
-
|
2332
|
-
|
2333
|
-
|
2494
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2495
|
+
setErrors(formatValidationErrors(res.error));
|
2496
|
+
}
|
2497
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2498
|
+
const res = await update(
|
2499
|
+
{
|
2500
|
+
collectionType,
|
2501
|
+
model,
|
2502
|
+
documentId,
|
2503
|
+
params
|
2504
|
+
},
|
2505
|
+
transformData(document)
|
2506
|
+
);
|
2507
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2508
|
+
setErrors(formatValidationErrors(res.error));
|
2334
2509
|
} else {
|
2335
|
-
|
2510
|
+
resetForm();
|
2511
|
+
}
|
2512
|
+
} else {
|
2513
|
+
const res = await create(
|
2514
|
+
{
|
2515
|
+
model,
|
2516
|
+
params
|
2517
|
+
},
|
2518
|
+
transformData(document)
|
2519
|
+
);
|
2520
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2521
|
+
navigate(
|
2336
2522
|
{
|
2337
|
-
|
2338
|
-
|
2523
|
+
pathname: `../${res.data.documentId}`,
|
2524
|
+
search: rawQuery
|
2339
2525
|
},
|
2340
|
-
|
2526
|
+
{ replace: true, relative: "path" }
|
2341
2527
|
);
|
2342
|
-
|
2343
|
-
|
2344
|
-
{
|
2345
|
-
pathname: `../${res.data.documentId}`,
|
2346
|
-
search: rawQuery
|
2347
|
-
},
|
2348
|
-
{ replace: true, relative: "path" }
|
2349
|
-
);
|
2350
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2351
|
-
setErrors(formatValidationErrors(res.error));
|
2352
|
-
}
|
2528
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2529
|
+
setErrors(formatValidationErrors(res.error));
|
2353
2530
|
}
|
2354
|
-
} finally {
|
2355
|
-
setSubmitting(false);
|
2356
2531
|
}
|
2532
|
+
} finally {
|
2533
|
+
setSubmitting(false);
|
2357
2534
|
}
|
2535
|
+
}, [
|
2536
|
+
clone,
|
2537
|
+
cloneMatch?.params.origin,
|
2538
|
+
collectionType,
|
2539
|
+
create,
|
2540
|
+
document,
|
2541
|
+
documentId,
|
2542
|
+
formatMessage,
|
2543
|
+
formatValidationErrors,
|
2544
|
+
isCloning,
|
2545
|
+
model,
|
2546
|
+
modified,
|
2547
|
+
navigate,
|
2548
|
+
params,
|
2549
|
+
rawQuery,
|
2550
|
+
resetForm,
|
2551
|
+
setErrors,
|
2552
|
+
setSubmitting,
|
2553
|
+
toggleNotification,
|
2554
|
+
update,
|
2555
|
+
validate
|
2556
|
+
]);
|
2557
|
+
React__namespace.useEffect(() => {
|
2558
|
+
const handleKeyDown = (e) => {
|
2559
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2560
|
+
e.preventDefault();
|
2561
|
+
handleUpdate();
|
2562
|
+
}
|
2563
|
+
};
|
2564
|
+
window.addEventListener("keydown", handleKeyDown);
|
2565
|
+
return () => {
|
2566
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2567
|
+
};
|
2568
|
+
}, [handleUpdate]);
|
2569
|
+
return {
|
2570
|
+
/**
|
2571
|
+
* Disabled when:
|
2572
|
+
* - the form is submitting
|
2573
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2574
|
+
* - the active tab is the published tab
|
2575
|
+
*/
|
2576
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2577
|
+
label: formatMessage({
|
2578
|
+
id: "global.save",
|
2579
|
+
defaultMessage: "Save"
|
2580
|
+
}),
|
2581
|
+
onClick: handleUpdate
|
2358
2582
|
};
|
2359
2583
|
};
|
2360
2584
|
UpdateAction.type = "update";
|
2585
|
+
UpdateAction.position = "panel";
|
2361
2586
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2362
2587
|
KEEP: "keep",
|
2363
2588
|
DISCARD: "discard"
|
@@ -2480,6 +2705,7 @@ const UnpublishAction$1 = ({
|
|
2480
2705
|
};
|
2481
2706
|
};
|
2482
2707
|
UnpublishAction$1.type = "unpublish";
|
2708
|
+
UnpublishAction$1.position = "panel";
|
2483
2709
|
const DiscardAction = ({
|
2484
2710
|
activeTab,
|
2485
2711
|
documentId,
|
@@ -2530,6 +2756,7 @@ const DiscardAction = ({
|
|
2530
2756
|
};
|
2531
2757
|
};
|
2532
2758
|
DiscardAction.type = "discard";
|
2759
|
+
DiscardAction.position = "panel";
|
2533
2760
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2534
2761
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2535
2762
|
const RelativeTime = React__namespace.forwardRef(
|
@@ -2542,7 +2769,7 @@ const RelativeTime = React__namespace.forwardRef(
|
|
2542
2769
|
});
|
2543
2770
|
const unit = intervals.find((intervalUnit) => {
|
2544
2771
|
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
2545
|
-
});
|
2772
|
+
}) ?? "seconds";
|
2546
2773
|
const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
|
2547
2774
|
const customInterval = customIntervals.find(
|
2548
2775
|
(custom) => interval[custom.unit] < custom.threshold
|
@@ -2576,19 +2803,29 @@ const getDisplayName = ({
|
|
2576
2803
|
return email ?? "";
|
2577
2804
|
};
|
2578
2805
|
const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
2579
|
-
const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
2806
|
+
const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
|
2580
2807
|
const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
|
2581
|
-
|
2808
|
+
const { formatMessage } = reactIntl.useIntl();
|
2809
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
|
2810
|
+
id: `content-manager.containers.List.${status}`,
|
2811
|
+
defaultMessage: capitalise(status)
|
2812
|
+
}) }) });
|
2582
2813
|
};
|
2583
2814
|
const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
2584
2815
|
const { formatMessage } = reactIntl.useIntl();
|
2585
2816
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2817
|
+
const params = reactRouterDom.useParams();
|
2586
2818
|
const title = isCreating ? formatMessage({
|
2587
2819
|
id: "content-manager.containers.edit.title.new",
|
2588
2820
|
defaultMessage: "Create an entry"
|
2589
2821
|
}) : documentTitle;
|
2590
2822
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2591
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
2823
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
2824
|
+
strapiAdmin.BackButton,
|
2825
|
+
{
|
2826
|
+
fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
|
2827
|
+
}
|
2828
|
+
),
|
2592
2829
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2593
2830
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2594
2831
|
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
@@ -2639,7 +2876,7 @@ const HeaderToolbar = () => {
|
|
2639
2876
|
meta: isCloning ? void 0 : meta,
|
2640
2877
|
collectionType
|
2641
2878
|
},
|
2642
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2879
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2643
2880
|
children: (actions2) => {
|
2644
2881
|
const headerActions = actions2.filter((action) => {
|
2645
2882
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2847,6 +3084,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2847
3084
|
};
|
2848
3085
|
};
|
2849
3086
|
ConfigureTheViewAction.type = "configure-the-view";
|
3087
|
+
ConfigureTheViewAction.position = "header";
|
2850
3088
|
const EditTheModelAction = ({ model }) => {
|
2851
3089
|
const navigate = reactRouterDom.useNavigate();
|
2852
3090
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2863,6 +3101,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2863
3101
|
};
|
2864
3102
|
};
|
2865
3103
|
EditTheModelAction.type = "edit-the-model";
|
3104
|
+
EditTheModelAction.position = "header";
|
2866
3105
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2867
3106
|
const navigate = reactRouterDom.useNavigate();
|
2868
3107
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2936,6 +3175,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2936
3175
|
};
|
2937
3176
|
};
|
2938
3177
|
DeleteAction$1.type = "delete";
|
3178
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2939
3179
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2940
3180
|
const Panels = () => {
|
2941
3181
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
@@ -2998,7 +3238,7 @@ const ActionsPanelContent = () => {
|
|
2998
3238
|
strapiAdmin.DescriptionComponentRenderer,
|
2999
3239
|
{
|
3000
3240
|
props,
|
3001
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3241
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3002
3242
|
children: (actions2) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActions, { actions: actions2 })
|
3003
3243
|
}
|
3004
3244
|
),
|
@@ -3025,7 +3265,7 @@ const Panel = React__namespace.forwardRef(({ children, title }, ref) => {
|
|
3025
3265
|
justifyContent: "stretch",
|
3026
3266
|
alignItems: "flex-start",
|
3027
3267
|
children: [
|
3028
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
|
3268
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", textColor: "neutral600", children: title }),
|
3029
3269
|
children
|
3030
3270
|
]
|
3031
3271
|
}
|
@@ -3056,7 +3296,7 @@ const ConfirmBulkActionDialog = ({
|
|
3056
3296
|
] })
|
3057
3297
|
] }) });
|
3058
3298
|
};
|
3059
|
-
const BoldChunk
|
3299
|
+
const BoldChunk = (chunks) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", children: chunks });
|
3060
3300
|
const ConfirmDialogPublishAll = ({
|
3061
3301
|
isOpen,
|
3062
3302
|
onToggleDialog,
|
@@ -3105,7 +3345,7 @@ const ConfirmDialogPublishAll = ({
|
|
3105
3345
|
defaultMessage: "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. "
|
3106
3346
|
},
|
3107
3347
|
{
|
3108
|
-
b: BoldChunk
|
3348
|
+
b: BoldChunk,
|
3109
3349
|
count: countDraftRelations,
|
3110
3350
|
entities: selectedEntries.length
|
3111
3351
|
}
|
@@ -3144,6 +3384,16 @@ const ConfirmDialogPublishAll = ({
|
|
3144
3384
|
const TypographyMaxWidth = styledComponents.styled(designSystem.Typography)`
|
3145
3385
|
max-width: 300px;
|
3146
3386
|
`;
|
3387
|
+
const TableComponent = styledComponents.styled(designSystem.RawTable)`
|
3388
|
+
width: 100%;
|
3389
|
+
table-layout: fixed;
|
3390
|
+
td:first-child {
|
3391
|
+
border-right: 1px solid ${({ theme }) => theme.colors.neutral150};
|
3392
|
+
}
|
3393
|
+
td:first-of-type {
|
3394
|
+
padding: ${({ theme }) => theme.spaces[4]};
|
3395
|
+
}
|
3396
|
+
`;
|
3147
3397
|
const formatErrorMessages = (errors, parentKey, formatMessage) => {
|
3148
3398
|
const messages = [];
|
3149
3399
|
Object.entries(errors).forEach(([key, value]) => {
|
@@ -3248,7 +3498,7 @@ const SelectedEntriesTableContent = ({
|
|
3248
3498
|
)
|
3249
3499
|
] }),
|
3250
3500
|
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Loading, {}),
|
3251
|
-
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Body, { children: rowsToDisplay.map((row
|
3501
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Body, { children: rowsToDisplay.map((row) => /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Row, { children: [
|
3252
3502
|
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.CheckboxCell, { id: row.id }),
|
3253
3503
|
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: row.id }) }),
|
3254
3504
|
shouldDisplayMainField && /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: row[mainField] }) }),
|
@@ -3275,18 +3525,10 @@ const SelectedEntriesTableContent = ({
|
|
3275
3525
|
search: row.locale && `?plugins[i18n][locale]=${row.locale}`
|
3276
3526
|
},
|
3277
3527
|
state: { from: pathname },
|
3278
|
-
label: formatMessage(
|
3279
|
-
|
3280
|
-
|
3281
|
-
|
3282
|
-
{
|
3283
|
-
id: "content-manager.components.ListViewHelperPluginTable.row-line",
|
3284
|
-
defaultMessage: "item line {number}"
|
3285
|
-
},
|
3286
|
-
{ number: index2 + 1 }
|
3287
|
-
)
|
3288
|
-
}
|
3289
|
-
),
|
3528
|
+
label: formatMessage({
|
3529
|
+
id: "content-manager.bulk-publish.edit",
|
3530
|
+
defaultMessage: "Edit"
|
3531
|
+
}),
|
3290
3532
|
target: "_blank",
|
3291
3533
|
marginLeft: "auto",
|
3292
3534
|
variant: "ghost",
|
@@ -3296,7 +3538,73 @@ const SelectedEntriesTableContent = ({
|
|
3296
3538
|
] }, row.id)) })
|
3297
3539
|
] });
|
3298
3540
|
};
|
3299
|
-
const
|
3541
|
+
const PublicationStatusSummary = ({ count, icon, message }) => {
|
3542
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", flex: 1, gap: 3, children: [
|
3543
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
3544
|
+
icon,
|
3545
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: message })
|
3546
|
+
] }),
|
3547
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", children: count })
|
3548
|
+
] });
|
3549
|
+
};
|
3550
|
+
const PublicationStatusGrid = ({
|
3551
|
+
entriesReadyToPublishCount,
|
3552
|
+
entriesPublishedCount,
|
3553
|
+
entriesModifiedCount,
|
3554
|
+
entriesWithErrorsCount
|
3555
|
+
}) => {
|
3556
|
+
const { formatMessage } = reactIntl.useIntl();
|
3557
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { hasRadius: true, borderColor: "neutral150", children: /* @__PURE__ */ jsxRuntime.jsx(TableComponent, { colCount: 2, rowCount: 2, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tbody, { children: [
|
3558
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
|
3559
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
3560
|
+
PublicationStatusSummary,
|
3561
|
+
{
|
3562
|
+
count: entriesReadyToPublishCount,
|
3563
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.CheckCircle, { fill: "success600" }),
|
3564
|
+
message: formatMessage({
|
3565
|
+
id: "app.utils.ready-to-publish",
|
3566
|
+
defaultMessage: "Ready to publish"
|
3567
|
+
})
|
3568
|
+
}
|
3569
|
+
) }),
|
3570
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
3571
|
+
PublicationStatusSummary,
|
3572
|
+
{
|
3573
|
+
count: entriesPublishedCount,
|
3574
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.CheckCircle, { fill: "success600" }),
|
3575
|
+
message: formatMessage({
|
3576
|
+
id: "app.utils.already-published",
|
3577
|
+
defaultMessage: "Already published"
|
3578
|
+
})
|
3579
|
+
}
|
3580
|
+
) })
|
3581
|
+
] }),
|
3582
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
|
3583
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
3584
|
+
PublicationStatusSummary,
|
3585
|
+
{
|
3586
|
+
count: entriesModifiedCount,
|
3587
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ArrowsCounterClockwise, { fill: "alternative600" }),
|
3588
|
+
message: formatMessage({
|
3589
|
+
id: "content-manager.bulk-publish.modified",
|
3590
|
+
defaultMessage: "Ready to publish changes"
|
3591
|
+
})
|
3592
|
+
}
|
3593
|
+
) }),
|
3594
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
3595
|
+
PublicationStatusSummary,
|
3596
|
+
{
|
3597
|
+
count: entriesWithErrorsCount,
|
3598
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.CrossCircle, { fill: "danger600" }),
|
3599
|
+
message: formatMessage({
|
3600
|
+
id: "content-manager.bulk-publish.waiting-for-action",
|
3601
|
+
defaultMessage: "Waiting for action"
|
3602
|
+
})
|
3603
|
+
}
|
3604
|
+
) })
|
3605
|
+
] })
|
3606
|
+
] }) }) });
|
3607
|
+
};
|
3300
3608
|
const SelectedEntriesModalContent = ({
|
3301
3609
|
listViewSelectedEntries,
|
3302
3610
|
toggleModal,
|
@@ -3355,7 +3663,6 @@ const SelectedEntriesModalContent = ({
|
|
3355
3663
|
validationErrors: {}
|
3356
3664
|
};
|
3357
3665
|
}, [components, data, schema]);
|
3358
|
-
const [publishedCount, setPublishedCount] = React__namespace.useState(0);
|
3359
3666
|
const [isDialogOpen, setIsDialogOpen] = React__namespace.useState(false);
|
3360
3667
|
const { publishMany: bulkPublishAction } = useDocumentActions();
|
3361
3668
|
const [, { isLoading: isSubmittingForm }] = usePublishManyDocumentsMutation();
|
@@ -3367,53 +3674,36 @@ const SelectedEntriesModalContent = ({
|
|
3367
3674
|
const selectedEntriesWithErrorsCount = selectedEntries.filter(
|
3368
3675
|
({ documentId }) => validationErrors[documentId]
|
3369
3676
|
).length;
|
3370
|
-
const
|
3677
|
+
const selectedEntriesPublishedCount = selectedEntries.filter(
|
3371
3678
|
({ status }) => status === "published"
|
3372
3679
|
).length;
|
3373
|
-
const
|
3680
|
+
const selectedEntriesModifiedCount = selectedEntries.filter(
|
3681
|
+
({ status, documentId }) => status === "modified" && !validationErrors[documentId]
|
3682
|
+
).length;
|
3683
|
+
const selectedEntriesWithNoErrorsCount = selectedEntries.length - selectedEntriesWithErrorsCount - selectedEntriesPublishedCount;
|
3374
3684
|
const toggleDialog = () => setIsDialogOpen((prev) => !prev);
|
3375
3685
|
const handleConfirmBulkPublish = async () => {
|
3376
3686
|
toggleDialog();
|
3377
3687
|
const res = await bulkPublishAction({ model, documentIds: entriesToPublish, params });
|
3378
3688
|
if (!("error" in res)) {
|
3379
|
-
setPublishedCount(res.count);
|
3380
3689
|
const unpublishedEntries = rows.filter((row) => {
|
3381
3690
|
return !entriesToPublish.includes(row.documentId);
|
3382
3691
|
});
|
3383
3692
|
setListViewSelectedDocuments(unpublishedEntries);
|
3384
3693
|
}
|
3385
3694
|
};
|
3386
|
-
const getFormattedCountMessage = () => {
|
3387
|
-
if (publishedCount) {
|
3388
|
-
return formatMessage(
|
3389
|
-
{
|
3390
|
-
id: getTranslation("containers.list.selectedEntriesModal.publishedCount"),
|
3391
|
-
defaultMessage: "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} published. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action."
|
3392
|
-
},
|
3393
|
-
{
|
3394
|
-
publishedCount,
|
3395
|
-
withErrorsCount: selectedEntriesWithErrorsCount,
|
3396
|
-
b: BoldChunk
|
3397
|
-
}
|
3398
|
-
);
|
3399
|
-
}
|
3400
|
-
return formatMessage(
|
3401
|
-
{
|
3402
|
-
id: getTranslation("containers.list.selectedEntriesModal.selectedCount"),
|
3403
|
-
defaultMessage: "<b>{alreadyPublishedCount}</b> {alreadyPublishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{readyToPublishCount}</b> {readyToPublishCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action."
|
3404
|
-
},
|
3405
|
-
{
|
3406
|
-
readyToPublishCount: selectedEntriesWithNoErrorsCount,
|
3407
|
-
withErrorsCount: selectedEntriesWithErrorsCount,
|
3408
|
-
alreadyPublishedCount: selectedEntriesPublished,
|
3409
|
-
b: BoldChunk
|
3410
|
-
}
|
3411
|
-
);
|
3412
|
-
};
|
3413
3695
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
3414
3696
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Body, { children: [
|
3415
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
3416
|
-
|
3697
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
3698
|
+
PublicationStatusGrid,
|
3699
|
+
{
|
3700
|
+
entriesReadyToPublishCount: selectedEntriesWithNoErrorsCount - selectedEntriesModifiedCount,
|
3701
|
+
entriesPublishedCount: selectedEntriesPublishedCount,
|
3702
|
+
entriesModifiedCount: selectedEntriesModifiedCount,
|
3703
|
+
entriesWithErrorsCount: selectedEntriesWithErrorsCount
|
3704
|
+
}
|
3705
|
+
),
|
3706
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginTop: 7, children: /* @__PURE__ */ jsxRuntime.jsx(
|
3417
3707
|
SelectedEntriesTableContent,
|
3418
3708
|
{
|
3419
3709
|
isPublishing: isSubmittingForm,
|
@@ -3434,7 +3724,7 @@ const SelectedEntriesModalContent = ({
|
|
3434
3724
|
designSystem.Button,
|
3435
3725
|
{
|
3436
3726
|
onClick: toggleDialog,
|
3437
|
-
disabled: selectedEntries.length === 0 || selectedEntries.length === selectedEntriesWithErrorsCount ||
|
3727
|
+
disabled: selectedEntries.length === 0 || selectedEntries.length === selectedEntriesWithErrorsCount || selectedEntriesPublishedCount === selectedEntries.length || isLoading,
|
3438
3728
|
loading: isSubmittingForm,
|
3439
3729
|
children: formatMessage({ id: "app.utils.publish", defaultMessage: "Publish" })
|
3440
3730
|
}
|
@@ -3460,8 +3750,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3460
3750
|
const refetchList = () => {
|
3461
3751
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3462
3752
|
};
|
3463
|
-
if (!showPublishButton)
|
3464
|
-
return null;
|
3753
|
+
if (!showPublishButton) return null;
|
3465
3754
|
return {
|
3466
3755
|
actionType: "publish",
|
3467
3756
|
variant: "tertiary",
|
@@ -3529,8 +3818,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3529
3818
|
selectRow([]);
|
3530
3819
|
}
|
3531
3820
|
};
|
3532
|
-
if (!hasDeletePermission)
|
3533
|
-
return null;
|
3821
|
+
if (!hasDeletePermission) return null;
|
3534
3822
|
return {
|
3535
3823
|
variant: "danger-light",
|
3536
3824
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3579,8 +3867,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3579
3867
|
}
|
3580
3868
|
};
|
3581
3869
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3582
|
-
if (!showUnpublishButton)
|
3583
|
-
return null;
|
3870
|
+
if (!showUnpublishButton) return null;
|
3584
3871
|
return {
|
3585
3872
|
variant: "tertiary",
|
3586
3873
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3685,7 +3972,7 @@ const TableActions = ({ document }) => {
|
|
3685
3972
|
strapiAdmin.DescriptionComponentRenderer,
|
3686
3973
|
{
|
3687
3974
|
props,
|
3688
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3975
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3689
3976
|
children: (actions2) => {
|
3690
3977
|
const tableRowActions = actions2.filter((action) => {
|
3691
3978
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3744,6 +4031,7 @@ const EditAction = ({ documentId }) => {
|
|
3744
4031
|
};
|
3745
4032
|
};
|
3746
4033
|
EditAction.type = "edit";
|
4034
|
+
EditAction.position = "table-row";
|
3747
4035
|
const StyledPencil = styledComponents.styled(Icons.Pencil)`
|
3748
4036
|
path {
|
3749
4037
|
fill: currentColor;
|
@@ -3820,6 +4108,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3820
4108
|
};
|
3821
4109
|
};
|
3822
4110
|
CloneAction.type = "clone";
|
4111
|
+
CloneAction.position = "table-row";
|
3823
4112
|
const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
|
3824
4113
|
path {
|
3825
4114
|
fill: currentColor;
|
@@ -3906,7 +4195,14 @@ class ContentManagerPlugin {
|
|
3906
4195
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3907
4196
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3908
4197
|
getBulkActions: () => this.bulkActions,
|
3909
|
-
getDocumentActions: () =>
|
4198
|
+
getDocumentActions: (position) => {
|
4199
|
+
if (position) {
|
4200
|
+
return this.documentActions.filter(
|
4201
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
4202
|
+
);
|
4203
|
+
}
|
4204
|
+
return this.documentActions;
|
4205
|
+
},
|
3910
4206
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3911
4207
|
getHeaderActions: () => this.headerActions
|
3912
4208
|
}
|
@@ -3916,10 +4212,8 @@ class ContentManagerPlugin {
|
|
3916
4212
|
const getPrintableType = (value) => {
|
3917
4213
|
const nativeType = typeof value;
|
3918
4214
|
if (nativeType === "object") {
|
3919
|
-
if (value === null)
|
3920
|
-
|
3921
|
-
if (Array.isArray(value))
|
3922
|
-
return "array";
|
4215
|
+
if (value === null) return "null";
|
4216
|
+
if (Array.isArray(value)) return "array";
|
3923
4217
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3924
4218
|
return value.constructor.name;
|
3925
4219
|
}
|
@@ -3930,17 +4224,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3930
4224
|
const { formatMessage } = reactIntl.useIntl();
|
3931
4225
|
const [{ query }] = strapiAdmin.useQueryParams();
|
3932
4226
|
const navigate = reactRouterDom.useNavigate();
|
4227
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4228
|
+
const { pathname } = reactRouterDom.useLocation();
|
3933
4229
|
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3934
4230
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3935
4231
|
return null;
|
3936
4232
|
}
|
4233
|
+
const handleOnClick = () => {
|
4234
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
4235
|
+
trackUsage("willNavigate", {
|
4236
|
+
from: pathname,
|
4237
|
+
to: `${pathname}/${destination.pathname}`
|
4238
|
+
});
|
4239
|
+
navigate(destination);
|
4240
|
+
};
|
3937
4241
|
return {
|
3938
4242
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3939
4243
|
label: formatMessage({
|
3940
4244
|
id: "content-manager.history.document-action",
|
3941
4245
|
defaultMessage: "Content History"
|
3942
4246
|
}),
|
3943
|
-
onClick:
|
4247
|
+
onClick: handleOnClick,
|
3944
4248
|
disabled: (
|
3945
4249
|
/**
|
3946
4250
|
* The user is creating a new document.
|
@@ -3962,6 +4266,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3962
4266
|
};
|
3963
4267
|
};
|
3964
4268
|
HistoryAction.type = "history";
|
4269
|
+
HistoryAction.position = "header";
|
3965
4270
|
const historyAdmin = {
|
3966
4271
|
bootstrap(app) {
|
3967
4272
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4008,6 +4313,88 @@ const { setInitialData } = actions;
|
|
4008
4313
|
const reducer = toolkit.combineReducers({
|
4009
4314
|
app: reducer$1
|
4010
4315
|
});
|
4316
|
+
const previewApi = contentManagerApi.injectEndpoints({
|
4317
|
+
endpoints: (builder) => ({
|
4318
|
+
getPreviewUrl: builder.query({
|
4319
|
+
query({ query, params }) {
|
4320
|
+
return {
|
4321
|
+
url: `/content-manager/preview/url/${params.contentType}`,
|
4322
|
+
method: "GET",
|
4323
|
+
config: {
|
4324
|
+
params: query
|
4325
|
+
}
|
4326
|
+
};
|
4327
|
+
}
|
4328
|
+
})
|
4329
|
+
})
|
4330
|
+
});
|
4331
|
+
const { useGetPreviewUrlQuery } = previewApi;
|
4332
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4333
|
+
if (isShown) {
|
4334
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label, children });
|
4335
|
+
}
|
4336
|
+
return children;
|
4337
|
+
};
|
4338
|
+
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4339
|
+
const { formatMessage } = reactIntl.useIntl();
|
4340
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4341
|
+
const { pathname } = reactRouterDom.useLocation();
|
4342
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
4343
|
+
const isModified = strapiAdmin.useForm("PreviewSidePanel", (state) => state.modified);
|
4344
|
+
const { data, error } = useGetPreviewUrlQuery({
|
4345
|
+
params: {
|
4346
|
+
contentType: model
|
4347
|
+
},
|
4348
|
+
query: {
|
4349
|
+
documentId,
|
4350
|
+
locale: document?.locale,
|
4351
|
+
status: document?.status
|
4352
|
+
}
|
4353
|
+
});
|
4354
|
+
if (!data?.data?.url || error) {
|
4355
|
+
return null;
|
4356
|
+
}
|
4357
|
+
const trackNavigation = () => {
|
4358
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4359
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4360
|
+
};
|
4361
|
+
return {
|
4362
|
+
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4363
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4364
|
+
ConditionalTooltip,
|
4365
|
+
{
|
4366
|
+
label: formatMessage({
|
4367
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4368
|
+
defaultMessage: "Please save to open the preview"
|
4369
|
+
}),
|
4370
|
+
isShown: isModified,
|
4371
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
4372
|
+
designSystem.Button,
|
4373
|
+
{
|
4374
|
+
variant: "tertiary",
|
4375
|
+
tag: reactRouterDom.Link,
|
4376
|
+
to: { pathname: "preview", search: qs.stringify(query, { encode: false }) },
|
4377
|
+
onClick: trackNavigation,
|
4378
|
+
width: "100%",
|
4379
|
+
disabled: isModified,
|
4380
|
+
pointerEvents: isModified ? "none" : void 0,
|
4381
|
+
tabIndex: isModified ? -1 : void 0,
|
4382
|
+
children: formatMessage({
|
4383
|
+
id: "content-manager.preview.panel.button",
|
4384
|
+
defaultMessage: "Open preview"
|
4385
|
+
})
|
4386
|
+
}
|
4387
|
+
) })
|
4388
|
+
}
|
4389
|
+
)
|
4390
|
+
};
|
4391
|
+
};
|
4392
|
+
const previewAdmin = {
|
4393
|
+
bootstrap(app) {
|
4394
|
+
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4395
|
+
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4396
|
+
}
|
4397
|
+
};
|
4011
4398
|
const index = {
|
4012
4399
|
register(app) {
|
4013
4400
|
const cm = new ContentManagerPlugin();
|
@@ -4027,7 +4414,7 @@ const index = {
|
|
4027
4414
|
app.router.addRoute({
|
4028
4415
|
path: "content-manager/*",
|
4029
4416
|
lazy: async () => {
|
4030
|
-
const { Layout } = await Promise.resolve().then(() => require("./layout-
|
4417
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-Cl0NhlQB.js"));
|
4031
4418
|
return {
|
4032
4419
|
Component: Layout
|
4033
4420
|
};
|
@@ -4040,11 +4427,14 @@ const index = {
|
|
4040
4427
|
if (typeof historyAdmin.bootstrap === "function") {
|
4041
4428
|
historyAdmin.bootstrap(app);
|
4042
4429
|
}
|
4430
|
+
if (typeof previewAdmin.bootstrap === "function") {
|
4431
|
+
previewAdmin.bootstrap(app);
|
4432
|
+
}
|
4043
4433
|
},
|
4044
4434
|
async registerTrads({ locales }) {
|
4045
4435
|
const importedTrads = await Promise.all(
|
4046
4436
|
locales.map((locale) => {
|
4047
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
4437
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-BR48D_RH.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-9K52xZIr.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-C43IbhA_.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-7sfIbjxE.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
|
4048
4438
|
return {
|
4049
4439
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4050
4440
|
locale
|
@@ -4066,7 +4456,6 @@ exports.CLONE_PATH = CLONE_PATH;
|
|
4066
4456
|
exports.COLLECTION_TYPES = COLLECTION_TYPES;
|
4067
4457
|
exports.CREATOR_FIELDS = CREATOR_FIELDS;
|
4068
4458
|
exports.DEFAULT_SETTINGS = DEFAULT_SETTINGS;
|
4069
|
-
exports.DOCUMENT_META_FIELDS = DOCUMENT_META_FIELDS;
|
4070
4459
|
exports.DocumentRBAC = DocumentRBAC;
|
4071
4460
|
exports.DocumentStatus = DocumentStatus;
|
4072
4461
|
exports.HOOKS = HOOKS;
|
@@ -4083,13 +4472,17 @@ exports.checkIfAttributeIsDisplayable = checkIfAttributeIsDisplayable;
|
|
4083
4472
|
exports.contentManagerApi = contentManagerApi;
|
4084
4473
|
exports.convertEditLayoutToFieldLayouts = convertEditLayoutToFieldLayouts;
|
4085
4474
|
exports.convertListLayoutToFieldLayouts = convertListLayoutToFieldLayouts;
|
4475
|
+
exports.createDefaultForm = createDefaultForm;
|
4086
4476
|
exports.createYupSchema = createYupSchema;
|
4087
4477
|
exports.extractContentTypeComponents = extractContentTypeComponents;
|
4088
4478
|
exports.getDisplayName = getDisplayName;
|
4089
4479
|
exports.getMainField = getMainField;
|
4090
4480
|
exports.getTranslation = getTranslation;
|
4091
4481
|
exports.index = index;
|
4482
|
+
exports.prepareTempKeys = prepareTempKeys;
|
4483
|
+
exports.removeFieldsThatDontExistOnSchema = removeFieldsThatDontExistOnSchema;
|
4092
4484
|
exports.setInitialData = setInitialData;
|
4485
|
+
exports.transformDocument = transformDocument;
|
4093
4486
|
exports.useContentManagerContext = useContentManagerContext;
|
4094
4487
|
exports.useContentTypeSchema = useContentTypeSchema;
|
4095
4488
|
exports.useDoc = useDoc;
|
@@ -4102,5 +4495,6 @@ exports.useGetAllContentTypeSettingsQuery = useGetAllContentTypeSettingsQuery;
|
|
4102
4495
|
exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
4103
4496
|
exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
|
4104
4497
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
4498
|
+
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
4105
4499
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
4106
|
-
//# sourceMappingURL=index-
|
4500
|
+
//# sourceMappingURL=index-DQsvBb_N.js.map
|