@strapi/content-manager 0.0.0-experimental.abc → 0.0.0-experimental.af7e4e2471a04cc7f17b8ed3474530810efc02bc
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/{ComponentConfigurationPage-KXSuLnQD.js → ComponentConfigurationPage-_EzKh4uq.js} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-KXSuLnQD.js.map → ComponentConfigurationPage-_EzKh4uq.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-B3yDbeU1.mjs → ComponentConfigurationPage-aeNlfgi9.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-B3yDbeU1.mjs.map → ComponentConfigurationPage-aeNlfgi9.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-D7PrLO8j.mjs → EditConfigurationPage-DBVSBjCB.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-D7PrLO8j.mjs.map → EditConfigurationPage-DBVSBjCB.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-BQ17--5R.js → EditConfigurationPage-DaK5-ltL.js} +4 -4
- package/dist/_chunks/{EditConfigurationPage-BQ17--5R.js.map → EditConfigurationPage-DaK5-ltL.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-B7VgwJaG.mjs → EditViewPage-BeRi9xCR.mjs} +50 -10
- package/dist/_chunks/EditViewPage-BeRi9xCR.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-BgjdnGz2.js → EditViewPage-C3qKSunQ.js} +49 -9
- package/dist/_chunks/EditViewPage-C3qKSunQ.js.map +1 -0
- package/dist/_chunks/{Field-CdK7ZLmv.js → Field-BwLr5b0V.js} +124 -91
- package/dist/_chunks/Field-BwLr5b0V.js.map +1 -0
- package/dist/_chunks/{Field-tHCw4lGA.mjs → Field-CfbMEZLv.mjs} +121 -88
- package/dist/_chunks/Field-CfbMEZLv.mjs.map +1 -0
- package/dist/_chunks/{Form-C_0KTVvV.js → Form-BSInvgp4.js} +16 -8
- package/dist/_chunks/Form-BSInvgp4.js.map +1 -0
- package/dist/_chunks/{Form-BJxdTv3Q.mjs → Form-Br-9I4vG.mjs} +16 -8
- package/dist/_chunks/Form-Br-9I4vG.mjs.map +1 -0
- package/dist/_chunks/{History-nuEzM5qm.js → History-BHH0axCz.js} +38 -97
- package/dist/_chunks/History-BHH0axCz.js.map +1 -0
- package/dist/_chunks/{History-DR2txJLE.mjs → History-BQ721fHN.mjs} +39 -98
- package/dist/_chunks/History-BQ721fHN.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-CnB86Psm.js → ListConfigurationPage-B7VtZkjG.js} +5 -4
- package/dist/_chunks/ListConfigurationPage-B7VtZkjG.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-voFVtXu6.mjs → ListConfigurationPage-BVtVADtP.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-BVtVADtP.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-SXIXm-RM.js → ListViewPage-C4UCZKeD.js} +68 -42
- package/dist/_chunks/ListViewPage-C4UCZKeD.js.map +1 -0
- package/dist/_chunks/{ListViewPage-B_GaWgRH.mjs → ListViewPage-Dq7nBEKD.mjs} +65 -39
- package/dist/_chunks/ListViewPage-Dq7nBEKD.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-CYiGpsbj.mjs → NoContentTypePage-CQlgc_9h.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-CYiGpsbj.mjs.map → NoContentTypePage-CQlgc_9h.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BzsQ3hLZ.js → NoContentTypePage-YNlmMHbx.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-BzsQ3hLZ.js.map → NoContentTypePage-YNlmMHbx.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-IGkId4C5.js → NoPermissionsPage-CERDW9_P.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-IGkId4C5.js.map → NoPermissionsPage-CERDW9_P.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-B5baIHal.mjs → NoPermissionsPage-CT2YbxJK.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-B5baIHal.mjs.map → NoPermissionsPage-CT2YbxJK.mjs.map} +1 -1
- package/dist/_chunks/Preview-D9FlX2H8.js +275 -0
- package/dist/_chunks/Preview-D9FlX2H8.js.map +1 -0
- package/dist/_chunks/Preview-GZFXtAgo.mjs +256 -0
- package/dist/_chunks/Preview-GZFXtAgo.mjs.map +1 -0
- package/dist/_chunks/{Relations-CIYDdKU-.mjs → Relations-49C4HPsL.mjs} +72 -36
- package/dist/_chunks/Relations-49C4HPsL.mjs.map +1 -0
- package/dist/_chunks/{Relations-Dhuurpx2.js → Relations-CcJBqH7I.js} +71 -35
- package/dist/_chunks/Relations-CcJBqH7I.js.map +1 -0
- package/dist/_chunks/{en-BrCTWlZv.mjs → en-CfIXaZf9.mjs} +26 -14
- package/dist/_chunks/{en-BrCTWlZv.mjs.map → en-CfIXaZf9.mjs.map} +1 -1
- package/dist/_chunks/{en-uOUIxfcQ.js → en-DTWPCdTS.js} +26 -14
- package/dist/_chunks/{en-uOUIxfcQ.js.map → en-DTWPCdTS.js.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-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
- package/dist/_chunks/{index-C9TJPyni.mjs → index-CP5EOEiH.mjs} +985 -777
- package/dist/_chunks/index-CP5EOEiH.mjs.map +1 -0
- package/dist/_chunks/{index-CdT0kHZ8.js → index-DUjGm1xz.js} +966 -757
- package/dist/_chunks/index-DUjGm1xz.js.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-BNqvLR_b.mjs → layout-B3LdnMTA.mjs} +5 -4
- package/dist/_chunks/{layout-BNqvLR_b.mjs.map → layout-B3LdnMTA.mjs.map} +1 -1
- package/dist/_chunks/{layout-C6dxWYT7.js → layout-zHc8BsKI.js} +5 -4
- package/dist/_chunks/{layout-C6dxWYT7.js.map → layout-zHc8BsKI.js.map} +1 -1
- package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
- package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
- package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
- package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
- package/dist/_chunks/{relations-CkKqKw65.mjs → relations-DnT2jc-S.mjs} +6 -7
- package/dist/_chunks/relations-DnT2jc-S.mjs.map +1 -0
- package/dist/_chunks/{relations-DtFaDnP1.js → relations-DrsZXRl-.js} +6 -7
- package/dist/_chunks/relations-DrsZXRl-.js.map +1 -0
- package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -4
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +32 -1
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +0 -32
- package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
- 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/constants.d.ts +1 -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 +19 -17
- 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/admin/src/utils/validation.d.ts +4 -1
- package/dist/server/index.js +421 -183
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +421 -183
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/collection-types.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 +15 -1
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- 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 +3 -3
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -4
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/preview/constants.d.ts +2 -0
- package/dist/server/src/preview/constants.d.ts.map +1 -0
- 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 +15 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +30 -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 +18 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- 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 +8 -8
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- 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/collection-types.d.ts +3 -1
- package/dist/shared/contracts/collection-types.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 -13
- package/dist/_chunks/EditViewPage-B7VgwJaG.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-BgjdnGz2.js.map +0 -1
- package/dist/_chunks/Field-CdK7ZLmv.js.map +0 -1
- package/dist/_chunks/Field-tHCw4lGA.mjs.map +0 -1
- package/dist/_chunks/Form-BJxdTv3Q.mjs.map +0 -1
- package/dist/_chunks/Form-C_0KTVvV.js.map +0 -1
- package/dist/_chunks/History-DR2txJLE.mjs.map +0 -1
- package/dist/_chunks/History-nuEzM5qm.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-CnB86Psm.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-voFVtXu6.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-B_GaWgRH.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-SXIXm-RM.js.map +0 -1
- package/dist/_chunks/Relations-CIYDdKU-.mjs.map +0 -1
- package/dist/_chunks/Relations-Dhuurpx2.js.map +0 -1
- package/dist/_chunks/index-C9TJPyni.mjs.map +0 -1
- package/dist/_chunks/index-CdT0kHZ8.js.map +0 -1
- package/dist/_chunks/relations-CkKqKw65.mjs.map +0 -1
- package/dist/_chunks/relations-DtFaDnP1.js.map +0 -1
- package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
- package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
- package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
- package/strapi-server.js +0 -3
@@ -5,21 +5,21 @@ import { useStrapiApp, createContext, useField, useNotification, useForm, useAPI
|
|
5
5
|
import { Box, SingleSelect, SingleSelectOption, Typography, Flex, BaseLink, Button, Popover, Field, Tooltip, IconButton, useComposedRefs, Portal, FocusTrap, Divider, VisuallyHidden, Grid as Grid$1, Accordion, TextButton, TextInput, IconButtonGroup, Menu, MenuItem } from "@strapi/design-system";
|
6
6
|
import pipe$1 from "lodash/fp/pipe";
|
7
7
|
import { useIntl } from "react-intl";
|
8
|
-
import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, d as buildValidParams, f as useDocumentRBAC,
|
8
|
+
import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, n as CLONE_PATH, d as buildValidParams, f as useDocumentRBAC, S as SINGLE_TYPES, o as useDocLayout } from "./index-CP5EOEiH.mjs";
|
9
9
|
import { generateNKeysBetween } from "fractional-indexing";
|
10
|
-
import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-
|
10
|
+
import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-49C4HPsL.mjs";
|
11
11
|
import { Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Image as Image$1, NumberList, BulletList, Paragraph, Quotes, Link as Link$1, Drag, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, PlusCircle, Plus, Trash, EyeStriked, CheckCircle, WarningCircle, Loader, ArrowClockwise, More } from "@strapi/icons";
|
12
12
|
import { styled, css, keyframes } from "styled-components";
|
13
13
|
import { C as ComponentIcon, a as COMPONENT_ICONS } from "./ComponentIcon-u4bIXTFY.mjs";
|
14
14
|
import { getEmptyImage } from "react-dnd-html5-backend";
|
15
15
|
import { a as DIRECTIONS, u as useDragAndDrop, I as ItemTypes } from "./useDragAndDrop-DdHgKsqq.mjs";
|
16
|
-
import { g as getIn } from "./objects-
|
16
|
+
import { g as getIn } from "./objects-D6yBsdmx.mjs";
|
17
17
|
import { Editor as Editor$1, Transforms, Node, Element, Range, Path, Point, createEditor } from "slate";
|
18
18
|
import { withHistory } from "slate-history";
|
19
19
|
import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
|
20
|
-
import { p as prefixFileUrlWithBackendUrl, u as usePrev } from "./
|
20
|
+
import { p as prefixFileUrlWithBackendUrl, u as usePrev, a as useDebounce } from "./useDebounce-DmuSJIF3.mjs";
|
21
21
|
import * as Toolbar from "@radix-ui/react-toolbar";
|
22
|
-
import { useLocation } from "react-router-dom";
|
22
|
+
import { useLocation, useMatch } from "react-router-dom";
|
23
23
|
import CodeMirror from "codemirror5";
|
24
24
|
import sanitizeHtml from "sanitize-html";
|
25
25
|
import { getLanguage, highlight, highlightAuto } from "highlight.js";
|
@@ -1407,7 +1407,7 @@ const ToolbarButton = ({
|
|
1407
1407
|
width: 7,
|
1408
1408
|
height: 7,
|
1409
1409
|
hasRadius: true,
|
1410
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
1410
|
+
children: /* @__PURE__ */ jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1411
1411
|
}
|
1412
1412
|
)
|
1413
1413
|
}
|
@@ -1749,6 +1749,7 @@ const DragItem = styled(Flex)`
|
|
1749
1749
|
}
|
1750
1750
|
`;
|
1751
1751
|
const DragIconButton = styled(IconButton)`
|
1752
|
+
user-select: none;
|
1752
1753
|
display: flex;
|
1753
1754
|
align-items: center;
|
1754
1755
|
justify-content: center;
|
@@ -1877,6 +1878,7 @@ const DragAndDropElement = ({
|
|
1877
1878
|
DragIconButton,
|
1878
1879
|
{
|
1879
1880
|
tag: "div",
|
1881
|
+
contentEditable: false,
|
1880
1882
|
role: "button",
|
1881
1883
|
tabIndex: 0,
|
1882
1884
|
withTooltip: false,
|
@@ -2634,7 +2636,7 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
|
|
2634
2636
|
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
|
2635
2637
|
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
|
2636
2638
|
id: getTranslation("components.empty-repeatable"),
|
2637
|
-
defaultMessage: "No entry yet. Click
|
2639
|
+
defaultMessage: "No entry yet. Click to add one."
|
2638
2640
|
}) }) })
|
2639
2641
|
] })
|
2640
2642
|
}
|
@@ -2656,6 +2658,7 @@ const NonRepeatableComponent = ({
|
|
2656
2658
|
children,
|
2657
2659
|
layout
|
2658
2660
|
}) => {
|
2661
|
+
const { formatMessage } = useIntl();
|
2659
2662
|
const { value } = useField(name2);
|
2660
2663
|
const level = useComponent("NonRepeatableComponent", (state) => state.level);
|
2661
2664
|
const isNested = level > 0;
|
@@ -2672,6 +2675,10 @@ const NonRepeatableComponent = ({
|
|
2672
2675
|
children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
|
2673
2676
|
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2674
2677
|
const completeFieldName = `${name2}.${field.name}`;
|
2678
|
+
const translatedLabel = formatMessage({
|
2679
|
+
id: `content-manager.components.${attribute.component}.${field.name}`,
|
2680
|
+
defaultMessage: field.label
|
2681
|
+
});
|
2675
2682
|
return /* @__PURE__ */ jsx(
|
2676
2683
|
Grid$1.Item,
|
2677
2684
|
{
|
@@ -2680,7 +2687,7 @@ const NonRepeatableComponent = ({
|
|
2680
2687
|
xs: 12,
|
2681
2688
|
direction: "column",
|
2682
2689
|
alignItems: "stretch",
|
2683
|
-
children: children({ ...field, name: completeFieldName })
|
2690
|
+
children: children({ ...field, label: translatedLabel, name: completeFieldName })
|
2684
2691
|
},
|
2685
2692
|
completeFieldName
|
2686
2693
|
);
|
@@ -2702,13 +2709,34 @@ const RepeatableComponent = ({
|
|
2702
2709
|
const { search: searchString } = useLocation();
|
2703
2710
|
const search = React.useMemo(() => new URLSearchParams(searchString), [searchString]);
|
2704
2711
|
const { components } = useDoc();
|
2705
|
-
const {
|
2712
|
+
const {
|
2713
|
+
value = [],
|
2714
|
+
error,
|
2715
|
+
rawError
|
2716
|
+
} = useField(name2);
|
2706
2717
|
const addFieldRow = useForm("RepeatableComponent", (state) => state.addFieldRow);
|
2707
2718
|
const moveFieldRow = useForm("RepeatableComponent", (state) => state.moveFieldRow);
|
2708
2719
|
const removeFieldRow = useForm("RepeatableComponent", (state) => state.removeFieldRow);
|
2709
2720
|
const { max = Infinity } = attribute;
|
2710
2721
|
const [collapseToOpen, setCollapseToOpen] = React.useState("");
|
2711
2722
|
const [liveText, setLiveText] = React.useState("");
|
2723
|
+
React.useEffect(() => {
|
2724
|
+
const hasNestedErrors = rawError && Array.isArray(rawError) && rawError.length > 0;
|
2725
|
+
const hasNestedValue = value && Array.isArray(value) && value.length > 0;
|
2726
|
+
if (hasNestedErrors && hasNestedValue) {
|
2727
|
+
const errorOpenItems = rawError.map((_, idx) => {
|
2728
|
+
return value[idx] ? value[idx].__temp_key__ : null;
|
2729
|
+
}).filter((value2) => !!value2);
|
2730
|
+
if (errorOpenItems && errorOpenItems.length > 0) {
|
2731
|
+
setCollapseToOpen((collapseToOpen2) => {
|
2732
|
+
if (!errorOpenItems.includes(collapseToOpen2)) {
|
2733
|
+
return errorOpenItems[0];
|
2734
|
+
}
|
2735
|
+
return collapseToOpen2;
|
2736
|
+
});
|
2737
|
+
}
|
2738
|
+
}
|
2739
|
+
}, [rawError, value]);
|
2712
2740
|
const componentTmpKeyWithFocussedField = React.useMemo(() => {
|
2713
2741
|
if (search.has("field")) {
|
2714
2742
|
const fieldParam = search.get("field");
|
@@ -2861,6 +2889,10 @@ const RepeatableComponent = ({
|
|
2861
2889
|
children: layout.map((row, index2) => {
|
2862
2890
|
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2863
2891
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2892
|
+
const translatedLabel = formatMessage({
|
2893
|
+
id: `content-manager.components.${attribute.component}.${field.name}`,
|
2894
|
+
defaultMessage: field.label
|
2895
|
+
});
|
2864
2896
|
return /* @__PURE__ */ jsx(
|
2865
2897
|
Grid$1.Item,
|
2866
2898
|
{
|
@@ -2869,7 +2901,11 @@ const RepeatableComponent = ({
|
|
2869
2901
|
xs: 12,
|
2870
2902
|
direction: "column",
|
2871
2903
|
alignItems: "stretch",
|
2872
|
-
children: children({
|
2904
|
+
children: children({
|
2905
|
+
...field,
|
2906
|
+
label: translatedLabel,
|
2907
|
+
name: completeFieldName
|
2908
|
+
})
|
2873
2909
|
},
|
2874
2910
|
completeFieldName
|
2875
2911
|
);
|
@@ -3256,18 +3292,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
|
|
3256
3292
|
/* @__PURE__ */ jsx(Field.Hint, {})
|
3257
3293
|
] });
|
3258
3294
|
};
|
3259
|
-
function useDebounce(value, delay) {
|
3260
|
-
const [debouncedValue, setDebouncedValue] = useState(value);
|
3261
|
-
useEffect(() => {
|
3262
|
-
const handler = setTimeout(() => {
|
3263
|
-
setDebouncedValue(value);
|
3264
|
-
}, delay);
|
3265
|
-
return () => {
|
3266
|
-
clearTimeout(handler);
|
3267
|
-
};
|
3268
|
-
}, [value, delay]);
|
3269
|
-
return debouncedValue;
|
3270
|
-
}
|
3271
3295
|
const uidApi = contentManagerApi.injectEndpoints({
|
3272
3296
|
endpoints: (builder) => ({
|
3273
3297
|
getDefaultUID: builder.query({
|
@@ -3302,7 +3326,10 @@ const uidApi = contentManagerApi.injectEndpoints({
|
|
3302
3326
|
config: {
|
3303
3327
|
params
|
3304
3328
|
}
|
3305
|
-
})
|
3329
|
+
}),
|
3330
|
+
providesTags: (_res, _error, params) => [
|
3331
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3332
|
+
]
|
3306
3333
|
})
|
3307
3334
|
})
|
3308
3335
|
});
|
@@ -3314,8 +3341,10 @@ const UIDInput = React.forwardRef(
|
|
3314
3341
|
const allFormValues = useForm("InputUID", (form) => form.values);
|
3315
3342
|
const [availability, setAvailability] = React.useState();
|
3316
3343
|
const [showRegenerate, setShowRegenerate] = React.useState(false);
|
3344
|
+
const isCloning = useMatch(CLONE_PATH) !== null;
|
3317
3345
|
const field = useField(name2);
|
3318
3346
|
const debouncedValue = useDebounce(field.value, 300);
|
3347
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3319
3348
|
const { toggleNotification } = useNotification();
|
3320
3349
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
3321
3350
|
const { formatMessage } = useIntl();
|
@@ -3391,8 +3420,9 @@ const UIDInput = React.forwardRef(
|
|
3391
3420
|
params
|
3392
3421
|
},
|
3393
3422
|
{
|
3423
|
+
// Don't check availability if the value is empty or wasn't changed
|
3394
3424
|
skip: !Boolean(
|
3395
|
-
|
3425
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3396
3426
|
)
|
3397
3427
|
}
|
3398
3428
|
);
|
@@ -3421,6 +3451,7 @@ const UIDInput = React.forwardRef(
|
|
3421
3451
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3422
3452
|
const fieldRef = useFocusInputField(name2);
|
3423
3453
|
const composedRefs = useComposedRefs(ref, fieldRef);
|
3454
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3424
3455
|
return /* @__PURE__ */ jsxs(Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3425
3456
|
/* @__PURE__ */ jsx(Field.Label, { action: labelAction, children: label }),
|
3426
3457
|
/* @__PURE__ */ jsx(
|
@@ -3429,7 +3460,7 @@ const UIDInput = React.forwardRef(
|
|
3429
3460
|
ref: composedRefs,
|
3430
3461
|
disabled: props.disabled,
|
3431
3462
|
endAction: /* @__PURE__ */ jsxs(Flex, { position: "relative", gap: 1, children: [
|
3432
|
-
|
3463
|
+
shouldShowAvailability && /* @__PURE__ */ jsxs(
|
3433
3464
|
TextValidation,
|
3434
3465
|
{
|
3435
3466
|
alignItems: "center",
|
@@ -4578,31 +4609,11 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4578
4609
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4579
4610
|
}
|
4580
4611
|
};
|
4581
|
-
const CustomIconButton = styled(IconButton)`
|
4582
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4583
|
-
|
4584
|
-
svg {
|
4585
|
-
width: 1.8rem;
|
4586
|
-
height: 1.8rem;
|
4587
|
-
}
|
4588
|
-
`;
|
4589
|
-
const CustomLinkIconButton = styled(CustomIconButton)`
|
4590
|
-
svg {
|
4591
|
-
width: 0.8rem;
|
4592
|
-
height: 0.8rem;
|
4593
|
-
}
|
4594
|
-
`;
|
4595
4612
|
const MainButtons = styled(IconButtonGroup)`
|
4596
4613
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4597
4614
|
`;
|
4598
4615
|
const MoreButton = styled(IconButton)`
|
4599
4616
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4600
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4601
|
-
|
4602
|
-
svg {
|
4603
|
-
width: 1.8rem;
|
4604
|
-
height: 1.8rem;
|
4605
|
-
}
|
4606
4617
|
`;
|
4607
4618
|
const IconButtonGroupMargin = styled(IconButtonGroup)`
|
4608
4619
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
@@ -4686,9 +4697,9 @@ const WysiwygNav = ({
|
|
4686
4697
|
}
|
4687
4698
|
) }),
|
4688
4699
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4689
|
-
/* @__PURE__ */ jsx(
|
4690
|
-
/* @__PURE__ */ jsx(
|
4691
|
-
/* @__PURE__ */ jsx(
|
4700
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4701
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
|
4702
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
|
4692
4703
|
] }),
|
4693
4704
|
/* @__PURE__ */ jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsx(More, {}) })
|
4694
4705
|
] }),
|
@@ -4727,17 +4738,9 @@ const WysiwygNav = ({
|
|
4727
4738
|
}
|
4728
4739
|
) }),
|
4729
4740
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4741
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4730
4742
|
/* @__PURE__ */ jsx(
|
4731
|
-
|
4732
|
-
{
|
4733
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4734
|
-
label: "Bold",
|
4735
|
-
name: "Bold",
|
4736
|
-
children: /* @__PURE__ */ jsx(Bold, {})
|
4737
|
-
}
|
4738
|
-
),
|
4739
|
-
/* @__PURE__ */ jsx(
|
4740
|
-
CustomIconButton,
|
4743
|
+
IconButton,
|
4741
4744
|
{
|
4742
4745
|
onClick: () => onActionClick("Italic", editorRef),
|
4743
4746
|
label: "Italic",
|
@@ -4746,7 +4749,7 @@ const WysiwygNav = ({
|
|
4746
4749
|
}
|
4747
4750
|
),
|
4748
4751
|
/* @__PURE__ */ jsx(
|
4749
|
-
|
4752
|
+
IconButton,
|
4750
4753
|
{
|
4751
4754
|
onClick: () => onActionClick("Underline", editorRef),
|
4752
4755
|
label: "Underline",
|
@@ -4760,7 +4763,7 @@ const WysiwygNav = ({
|
|
4760
4763
|
/* @__PURE__ */ jsx(Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxs(Flex, { padding: 2, children: [
|
4761
4764
|
/* @__PURE__ */ jsxs(IconButtonGroupMargin, { children: [
|
4762
4765
|
/* @__PURE__ */ jsx(
|
4763
|
-
|
4766
|
+
IconButton,
|
4764
4767
|
{
|
4765
4768
|
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4766
4769
|
label: "Strikethrough",
|
@@ -4769,7 +4772,7 @@ const WysiwygNav = ({
|
|
4769
4772
|
}
|
4770
4773
|
),
|
4771
4774
|
/* @__PURE__ */ jsx(
|
4772
|
-
|
4775
|
+
IconButton,
|
4773
4776
|
{
|
4774
4777
|
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4775
4778
|
label: "BulletList",
|
@@ -4778,7 +4781,7 @@ const WysiwygNav = ({
|
|
4778
4781
|
}
|
4779
4782
|
),
|
4780
4783
|
/* @__PURE__ */ jsx(
|
4781
|
-
|
4784
|
+
IconButton,
|
4782
4785
|
{
|
4783
4786
|
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4784
4787
|
label: "NumberList",
|
@@ -4789,7 +4792,7 @@ const WysiwygNav = ({
|
|
4789
4792
|
] }),
|
4790
4793
|
/* @__PURE__ */ jsxs(IconButtonGroup, { children: [
|
4791
4794
|
/* @__PURE__ */ jsx(
|
4792
|
-
|
4795
|
+
IconButton,
|
4793
4796
|
{
|
4794
4797
|
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4795
4798
|
label: "Code",
|
@@ -4798,7 +4801,7 @@ const WysiwygNav = ({
|
|
4798
4801
|
}
|
4799
4802
|
),
|
4800
4803
|
/* @__PURE__ */ jsx(
|
4801
|
-
|
4804
|
+
IconButton,
|
4802
4805
|
{
|
4803
4806
|
onClick: () => {
|
4804
4807
|
handleTogglePopover();
|
@@ -4810,7 +4813,7 @@ const WysiwygNav = ({
|
|
4810
4813
|
}
|
4811
4814
|
),
|
4812
4815
|
/* @__PURE__ */ jsx(
|
4813
|
-
|
4816
|
+
IconButton,
|
4814
4817
|
{
|
4815
4818
|
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4816
4819
|
label: "Link",
|
@@ -4819,7 +4822,7 @@ const WysiwygNav = ({
|
|
4819
4822
|
}
|
4820
4823
|
),
|
4821
4824
|
/* @__PURE__ */ jsx(
|
4822
|
-
|
4825
|
+
IconButton,
|
4823
4826
|
{
|
4824
4827
|
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4825
4828
|
label: "Quote",
|
@@ -4956,15 +4959,19 @@ const Wysiwyg = React.forwardRef(
|
|
4956
4959
|
);
|
4957
4960
|
const MemoizedWysiwyg = React.memo(Wysiwyg);
|
4958
4961
|
const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
4959
|
-
const { id } = useDoc();
|
4962
|
+
const { id, document: document2, collectionType } = useDoc();
|
4960
4963
|
const isFormDisabled = useForm("InputRenderer", (state) => state.disabled);
|
4961
4964
|
const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
|
4962
4965
|
const canCreateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
|
4963
4966
|
const canReadFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
|
4964
4967
|
const canUpdateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
|
4965
4968
|
const canUserAction = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
|
4966
|
-
|
4967
|
-
|
4969
|
+
let idToCheck = id;
|
4970
|
+
if (collectionType === SINGLE_TYPES) {
|
4971
|
+
idToCheck = document2?.documentId;
|
4972
|
+
}
|
4973
|
+
const editableFields = idToCheck ? canUpdateFields : canCreateFields;
|
4974
|
+
const readableFields = idToCheck ? canReadFields : canCreateFields;
|
4968
4975
|
const canUserReadField = canUserAction(props.name, readableFields, props.type);
|
4969
4976
|
const canUserEditField = canUserAction(props.name, editableFields, props.type);
|
4970
4977
|
const fields = useStrapiApp("InputRenderer", (app) => app.fields);
|
@@ -4975,6 +4982,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4975
4982
|
const {
|
4976
4983
|
edit: { components }
|
4977
4984
|
} = useDocLayout();
|
4985
|
+
const field = useField(props.name);
|
4978
4986
|
if (!visible) {
|
4979
4987
|
return null;
|
4980
4988
|
}
|
@@ -4985,7 +4993,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4985
4993
|
if (attributeHasCustomFieldProperty(props.attribute)) {
|
4986
4994
|
const CustomInput = lazyComponentStore[props.attribute.customField];
|
4987
4995
|
if (CustomInput) {
|
4988
|
-
return /* @__PURE__ */ jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
|
4996
|
+
return /* @__PURE__ */ jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
|
4989
4997
|
}
|
4990
4998
|
return /* @__PURE__ */ jsx(
|
4991
4999
|
InputRenderer$1,
|
@@ -5146,6 +5154,14 @@ const DynamicComponent = ({
|
|
5146
5154
|
React.useEffect(() => {
|
5147
5155
|
dragPreviewRef(getEmptyImage(), { captureDraggingState: false });
|
5148
5156
|
}, [dragPreviewRef, index]);
|
5157
|
+
const accordionValue = React.useId();
|
5158
|
+
const { value = [], rawError } = useField(`${name2}.${index}`);
|
5159
|
+
const [collapseToOpen, setCollapseToOpen] = React.useState("");
|
5160
|
+
React.useEffect(() => {
|
5161
|
+
if (rawError && value) {
|
5162
|
+
setCollapseToOpen(accordionValue);
|
5163
|
+
}
|
5164
|
+
}, [rawError, value, accordionValue]);
|
5149
5165
|
const composedBoxRefs = useComposedRefs(boxRef, dropRef);
|
5150
5166
|
const accordionActions = disabled ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
|
5151
5167
|
/* @__PURE__ */ jsx(
|
@@ -5211,10 +5227,9 @@ const DynamicComponent = ({
|
|
5211
5227
|
] })
|
5212
5228
|
] });
|
5213
5229
|
const accordionTitle = title ? `${displayName} ${title}` : displayName;
|
5214
|
-
const accordionValue = React.useId();
|
5215
5230
|
return /* @__PURE__ */ jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
|
5216
5231
|
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Rectangle, { background: "neutral200" }) }),
|
5217
|
-
/* @__PURE__ */ jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsx(Preview, {}) : /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsxs(Accordion.Item, { value: accordionValue, children: [
|
5232
|
+
/* @__PURE__ */ jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsx(Preview, {}) : /* @__PURE__ */ jsx(Accordion.Root, { value: collapseToOpen, onValueChange: setCollapseToOpen, children: /* @__PURE__ */ jsxs(Accordion.Item, { value: accordionValue, children: [
|
5218
5233
|
/* @__PURE__ */ jsxs(Accordion.Header, { children: [
|
5219
5234
|
/* @__PURE__ */ jsx(
|
5220
5235
|
Accordion.Trigger,
|
@@ -5225,21 +5240,39 @@ const DynamicComponent = ({
|
|
5225
5240
|
),
|
5226
5241
|
/* @__PURE__ */ jsx(Accordion.Actions, { children: accordionActions })
|
5227
5242
|
] }),
|
5228
|
-
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children:
|
5229
|
-
|
5230
|
-
|
5231
|
-
|
5232
|
-
|
5233
|
-
|
5234
|
-
|
5235
|
-
|
5236
|
-
|
5237
|
-
|
5238
|
-
|
5239
|
-
|
5240
|
-
|
5241
|
-
|
5242
|
-
|
5243
|
+
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(
|
5244
|
+
Grid$1.Item,
|
5245
|
+
{
|
5246
|
+
col: 12,
|
5247
|
+
s: 12,
|
5248
|
+
xs: 12,
|
5249
|
+
direction: "column",
|
5250
|
+
alignItems: "stretch",
|
5251
|
+
children: /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
5252
|
+
const fieldName = `${name2}.${index}.${field.name}`;
|
5253
|
+
const fieldWithTranslatedLabel = {
|
5254
|
+
...field,
|
5255
|
+
label: formatMessage({
|
5256
|
+
id: `content-manager.components.${componentUid}.${field.name}`,
|
5257
|
+
defaultMessage: field.label
|
5258
|
+
})
|
5259
|
+
};
|
5260
|
+
return /* @__PURE__ */ jsx(
|
5261
|
+
Grid$1.Item,
|
5262
|
+
{
|
5263
|
+
col: size,
|
5264
|
+
s: 12,
|
5265
|
+
xs: 12,
|
5266
|
+
direction: "column",
|
5267
|
+
alignItems: "stretch",
|
5268
|
+
children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel, name: fieldName })
|
5269
|
+
},
|
5270
|
+
fieldName
|
5271
|
+
);
|
5272
|
+
}) })
|
5273
|
+
},
|
5274
|
+
rowInd
|
5275
|
+
)) }) }) }) })
|
5243
5276
|
] }) }) })
|
5244
5277
|
] });
|
5245
5278
|
};
|
@@ -5547,4 +5580,4 @@ export {
|
|
5547
5580
|
transformDocument as t,
|
5548
5581
|
useLazyComponents as u
|
5549
5582
|
};
|
5550
|
-
//# sourceMappingURL=Field-
|
5583
|
+
//# sourceMappingURL=Field-CfbMEZLv.mjs.map
|