@webiny/app-headless-cms 5.42.2-beta.0 → 5.42.2-beta.2
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/ContentEntryEditorConfig.d.ts +38 -14
- package/ContentEntryEditorConfig.js +14 -7
- package/ContentEntryEditorConfig.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.d.ts +8 -7
- package/admin/components/ContentEntryForm/ContentEntryForm.js +4 -2
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.d.ts +3 -2
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js +2 -0
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js.map +1 -1
- package/admin/components/ContentEntryForm/FieldElement.js +1 -2
- package/admin/components/ContentEntryForm/FieldElement.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/Header.js +9 -3
- package/admin/components/ContentEntryForm/Header/Header.js.map +1 -1
- package/admin/components/ContentEntryForm/createValidationScope.d.ts +18 -0
- package/admin/components/ContentEntryForm/createValidationScope.js +31 -0
- package/admin/components/ContentEntryForm/createValidationScope.js.map +1 -0
- package/admin/components/ContentEntryForm/useBind.d.ts +2 -3
- package/admin/components/ContentEntryForm/useBind.js +15 -7
- package/admin/components/ContentEntryForm/useBind.js.map +1 -1
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.d.ts +1 -0
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js +3 -1
- package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js.map +1 -1
- package/admin/config/contentEntries/editor/ValidationIndicators.d.ts +5 -0
- package/admin/config/contentEntries/editor/ValidationIndicators.js +22 -0
- package/admin/config/contentEntries/editor/ValidationIndicators.js.map +1 -0
- package/admin/plugins/fieldRenderers/Accordion.d.ts +2 -1
- package/admin/plugins/fieldRenderers/Accordion.js +28 -28
- package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.d.ts +3 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +21 -9
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/MultiValueRendererSettings.d.ts +8 -0
- package/admin/plugins/fieldRenderers/MultiValueRendererSettings.js +33 -0
- package/admin/plugins/fieldRenderers/MultiValueRendererSettings.js.map +1 -0
- package/admin/plugins/fieldRenderers/checkboxes.js +17 -15
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +14 -18
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +6 -2
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +23 -21
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +7 -3
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js +2 -2
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js +6 -2
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js +2 -2
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js +6 -2
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.d.ts +10 -0
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js +118 -0
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.d.ts +33 -0
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js +54 -0
- package/admin/plugins/fieldRenderers/object/MultiValueItemContainer.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/index.d.ts +22 -0
- package/admin/plugins/fieldRenderers/object/index.js +5 -1
- package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js +15 -104
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +15 -108
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js +2 -2
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObjectInline.js +25 -14
- package/admin/plugins/fieldRenderers/object/singleObjectInline.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +18 -16
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js +6 -3
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js +6 -6
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js +2 -2
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js +2 -2
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js +10 -8
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js +7 -3
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +9 -7
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/tags.js +7 -5
- package/admin/plugins/fieldRenderers/text/tags.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js +2 -2
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js +6 -2
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesModule.js +1 -1
- package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.js +5 -5
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.styled.d.ts +9 -9
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.styled.js +25 -25
- package/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntry.styled.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js +17 -5
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/ValidationIndicators.d.ts +25 -0
- package/admin/views/contentEntries/ValidationIndicators.js +45 -0
- package/admin/views/contentEntries/ValidationIndicators.js.map +1 -0
- package/allPlugins.d.ts +2 -2
- package/package.json +29 -30
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import
|
|
2
|
+
import * as DzField from "./admin/plugins/fieldRenderers/dynamicZone";
|
|
3
3
|
export declare const ContentEntryEditorConfig: (({ priority, children }: import("@webiny/react-properties").ConfigProps) => import("react").JSX.Element) & {
|
|
4
4
|
Actions: {
|
|
5
5
|
ButtonAction: ((props: import("./admin/config/contentEntries/editor/Actions/ButtonAction").ButtonActionProps) => import("react").JSX.Element) & {
|
|
@@ -55,6 +55,7 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
|
|
|
55
55
|
}) => import("react").JSX.Element;
|
|
56
56
|
};
|
|
57
57
|
Width: ({ value, modelIds }: import("./admin/config/contentEntries/editor/Width").WidthProps) => import("react").JSX.Element;
|
|
58
|
+
ValidationIndicators: ({ className }: import("./admin/config/contentEntries/editor/ValidationIndicators").ValidationIndicatorsProps) => import("react").JSX.Element;
|
|
58
59
|
} & {
|
|
59
60
|
ContentEntry: (() => import("react").JSX.Element) & {
|
|
60
61
|
original: () => import("react").JSX.Element;
|
|
@@ -100,21 +101,21 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
|
|
|
100
101
|
displayName: string;
|
|
101
102
|
}>) => (props: unknown) => import("react").JSX.Element;
|
|
102
103
|
};
|
|
103
|
-
ContentEntryForm: (({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
104
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
104
|
+
ContentEntryForm: (({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
105
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
105
106
|
originalName: string;
|
|
106
107
|
displayName: string;
|
|
107
108
|
} & {
|
|
108
|
-
original: (({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
109
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
109
|
+
original: (({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
110
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
110
111
|
originalName: string;
|
|
111
112
|
displayName: string;
|
|
112
113
|
};
|
|
113
114
|
originalName: string;
|
|
114
115
|
displayName: string;
|
|
115
116
|
} & {
|
|
116
|
-
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
117
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
117
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
|
|
118
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
|
|
118
119
|
originalName: string;
|
|
119
120
|
displayName: string;
|
|
120
121
|
}>) => (props: unknown) => import("react").JSX.Element;
|
|
@@ -231,25 +232,48 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
|
|
|
231
232
|
};
|
|
232
233
|
};
|
|
233
234
|
FieldRenderers: {
|
|
235
|
+
Object: {
|
|
236
|
+
MultiValue: {
|
|
237
|
+
ItemContainer: (({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element) & {
|
|
238
|
+
original: ({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element;
|
|
239
|
+
originalName: string;
|
|
240
|
+
displayName: string;
|
|
241
|
+
} & {
|
|
242
|
+
original: (({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element) & {
|
|
243
|
+
original: ({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element;
|
|
244
|
+
originalName: string;
|
|
245
|
+
displayName: string;
|
|
246
|
+
};
|
|
247
|
+
originalName: string;
|
|
248
|
+
displayName: string;
|
|
249
|
+
} & {
|
|
250
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element) & {
|
|
251
|
+
original: ({ children, ...props }: import("./admin/plugins/fieldRenderers/object/MultiValueItemContainer").MultiValueItemContainerProps) => import("react").JSX.Element;
|
|
252
|
+
originalName: string;
|
|
253
|
+
displayName: string;
|
|
254
|
+
}>) => (props: unknown) => import("react").JSX.Element;
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
};
|
|
234
258
|
DynamicZone: {
|
|
235
259
|
Template: {
|
|
236
|
-
useTemplate: typeof useTemplate;
|
|
260
|
+
useTemplate: typeof DzField.useTemplate;
|
|
237
261
|
};
|
|
238
|
-
Container: ((props:
|
|
239
|
-
original: (props:
|
|
262
|
+
Container: ((props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element) & {
|
|
263
|
+
original: (props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element;
|
|
240
264
|
originalName: string;
|
|
241
265
|
displayName: string;
|
|
242
266
|
} & {
|
|
243
|
-
original: ((props:
|
|
244
|
-
original: (props:
|
|
267
|
+
original: ((props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element) & {
|
|
268
|
+
original: (props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element;
|
|
245
269
|
originalName: string;
|
|
246
270
|
displayName: string;
|
|
247
271
|
};
|
|
248
272
|
originalName: string;
|
|
249
273
|
displayName: string;
|
|
250
274
|
} & {
|
|
251
|
-
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<((props:
|
|
252
|
-
original: (props:
|
|
275
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<((props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element) & {
|
|
276
|
+
original: (props: DzField.DynamicZoneContainerProps) => import("react").JSX.Element;
|
|
253
277
|
originalName: string;
|
|
254
278
|
displayName: string;
|
|
255
279
|
}>) => (props: unknown) => import("react").JSX.Element;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.ContentEntryEditorConfig = void 0;
|
|
7
|
-
var
|
|
8
|
+
var DzField = _interopRequireWildcard(require("./admin/plugins/fieldRenderers/dynamicZone"));
|
|
9
|
+
var _object = require("./admin/plugins/fieldRenderers/object");
|
|
8
10
|
var _ContentEntryForm = require("./admin/components/ContentEntryForm/ContentEntryForm");
|
|
9
11
|
var _Header = require("./admin/components/ContentEntryForm/Header");
|
|
10
12
|
var _ContentEntryFormPreview = require("./admin/components/ContentEntryForm/ContentEntryFormPreview");
|
|
@@ -33,22 +35,27 @@ var ContentEntryEditorConfig = exports.ContentEntryEditorConfig = Object.assign(
|
|
|
33
35
|
useSingletonContentEntry: _useSingletonContentEntry.useSingletonContentEntry
|
|
34
36
|
}),
|
|
35
37
|
FieldRenderers: {
|
|
38
|
+
Object: {
|
|
39
|
+
MultiValue: {
|
|
40
|
+
ItemContainer: _object.Components.MultiValueItemContainer
|
|
41
|
+
}
|
|
42
|
+
},
|
|
36
43
|
DynamicZone: {
|
|
37
44
|
Template: {
|
|
38
|
-
useTemplate:
|
|
45
|
+
useTemplate: DzField.useTemplate
|
|
39
46
|
},
|
|
40
|
-
Container:
|
|
47
|
+
Container: DzField.DynamicZoneContainer,
|
|
41
48
|
// SingleValue: {
|
|
42
49
|
// Container: null,
|
|
43
50
|
// ItemContainer: null,
|
|
44
51
|
// Item: null
|
|
45
52
|
// },
|
|
46
53
|
MultiValue: {
|
|
47
|
-
Container:
|
|
48
|
-
ItemContainer:
|
|
49
|
-
Item:
|
|
54
|
+
Container: DzField.MultiValueContainer,
|
|
55
|
+
ItemContainer: DzField.MultiValueItemContainer,
|
|
56
|
+
Item: DzField.MultiValueItem
|
|
50
57
|
},
|
|
51
|
-
TemplateGallery:
|
|
58
|
+
TemplateGallery: DzField.TemplateGallery
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DzField","_interopRequireWildcard","require","_object","_ContentEntryForm","_Header","_ContentEntryFormPreview","_useContentEntryForm","_DefaultLayout","_hooks","_ContentEntry","_contentEntries","_SingletonContentEntry","_useSingletonContentEntry","_FullScreenContentEntryHeaderLeft","ContentEntryEditorConfig","exports","Object","assign","BaseContentEntryEditorConfig","ContentEntry","useContentEntry","DefaultLayout","ContentEntryForm","BaseContentEntryForm","useContentEntryForm","Header","ContentEntryFormHeader","Title","ContentEntryFormTitle","Meta","ContentEntryFormMeta","ContentEntryFormPreview","SingletonContentEntry","useSingletonContentEntry","FieldRenderers","MultiValue","ItemContainer","ObjectField","MultiValueItemContainer","DynamicZone","Template","useTemplate","Container","DynamicZoneContainer","MultiValueContainer","Item","MultiValueItem","TemplateGallery"],"sources":["ContentEntryEditorConfig.ts"],"sourcesContent":["import * as DzField from \"~/admin/plugins/fieldRenderers/dynamicZone\";\nimport { Components as ObjectField } from \"~/admin/plugins/fieldRenderers/object\";\nimport { ContentEntryForm as BaseContentEntryForm } from \"./admin/components/ContentEntryForm/ContentEntryForm\";\nimport { Header as ContentEntryFormHeader } from \"./admin/components/ContentEntryForm/Header\";\nimport { ContentEntryFormPreview } from \"./admin/components/ContentEntryForm/ContentEntryFormPreview\";\nimport { useContentEntryForm } from \"./admin/components/ContentEntryForm/useContentEntryForm\";\nimport { DefaultLayout } from \"~/admin/components/ContentEntryForm/DefaultLayout\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks\";\nimport { ContentEntry } from \"~/admin/views/contentEntries/ContentEntry\";\nimport { ContentEntryEditorConfig as BaseContentEntryEditorConfig } from \"./admin/config/contentEntries\";\nimport { SingletonContentEntry } from \"~/admin/views/contentEntries/ContentEntry/SingletonContentEntry\";\nimport { useSingletonContentEntry } from \"~/admin/views/contentEntries/hooks/useSingletonContentEntry\";\nimport {\n ContentEntryFormMeta,\n ContentEntryFormTitle\n} from \"~/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntryHeaderLeft\";\n\nexport const ContentEntryEditorConfig = Object.assign(BaseContentEntryEditorConfig, {\n ContentEntry: Object.assign(ContentEntry, {\n useContentEntry,\n DefaultLayout,\n ContentEntryForm: Object.assign(BaseContentEntryForm, {\n useContentEntryForm,\n Header: Object.assign(ContentEntryFormHeader, {\n Title: ContentEntryFormTitle,\n Meta: ContentEntryFormMeta\n })\n }),\n ContentEntryFormPreview\n }),\n SingletonContentEntry: Object.assign(SingletonContentEntry, {\n useSingletonContentEntry\n }),\n FieldRenderers: {\n Object: {\n MultiValue: {\n ItemContainer: ObjectField.MultiValueItemContainer\n }\n },\n DynamicZone: {\n Template: {\n useTemplate: DzField.useTemplate\n },\n Container: DzField.DynamicZoneContainer,\n // SingleValue: {\n // Container: null,\n // ItemContainer: null,\n // Item: null\n // },\n MultiValue: {\n Container: DzField.MultiValueContainer,\n ItemContainer: DzField.MultiValueItemContainer,\n Item: DzField.MultiValueItem\n },\n TemplateGallery: DzField.TemplateGallery\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,sBAAA,GAAAV,OAAA;AACA,IAAAW,yBAAA,GAAAX,OAAA;AACA,IAAAY,iCAAA,GAAAZ,OAAA;AAKO,IAAMa,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAGE,MAAM,CAACC,MAAM,CAACC,wCAA4B,EAAE;EAChFC,YAAY,EAAEH,MAAM,CAACC,MAAM,CAACE,0BAAY,EAAE;IACtCC,eAAe,EAAfA,sBAAe;IACfC,aAAa,EAAbA,4BAAa;IACbC,gBAAgB,EAAEN,MAAM,CAACC,MAAM,CAACM,kCAAoB,EAAE;MAClDC,mBAAmB,EAAnBA,wCAAmB;MACnBC,MAAM,EAAET,MAAM,CAACC,MAAM,CAACS,cAAsB,EAAE;QAC1CC,KAAK,EAAEC,uDAAqB;QAC5BC,IAAI,EAAEC;MACV,CAAC;IACL,CAAC,CAAC;IACFC,uBAAuB,EAAvBA;EACJ,CAAC,CAAC;EACFC,qBAAqB,EAAEhB,MAAM,CAACC,MAAM,CAACe,4CAAqB,EAAE;IACxDC,wBAAwB,EAAxBA;EACJ,CAAC,CAAC;EACFC,cAAc,EAAE;IACZlB,MAAM,EAAE;MACJmB,UAAU,EAAE;QACRC,aAAa,EAAEC,kBAAW,CAACC;MAC/B;IACJ,CAAC;IACDC,WAAW,EAAE;MACTC,QAAQ,EAAE;QACNC,WAAW,EAAE1C,OAAO,CAAC0C;MACzB,CAAC;MACDC,SAAS,EAAE3C,OAAO,CAAC4C,oBAAoB;MACvC;MACA;MACA;MACA;MACA;MACAR,UAAU,EAAE;QACRO,SAAS,EAAE3C,OAAO,CAAC6C,mBAAmB;QACtCR,aAAa,EAAErC,OAAO,CAACuC,uBAAuB;QAC9CO,IAAI,EAAE9C,OAAO,CAAC+C;MAClB,CAAC;MACDC,eAAe,EAAEhD,OAAO,CAACgD;IAC7B;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { FormOnSubmit, FormValidation } from "@webiny/form";
|
|
3
3
|
import { CmsContentEntry } from "../../../types";
|
|
4
4
|
import { ContentEntryFormContext, PersistEntry } from "./ContentEntryFormProvider";
|
|
5
5
|
export interface ContentEntryFormProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
@@ -14,6 +14,7 @@ export interface ContentEntryFormProps extends Omit<React.HTMLAttributes<HTMLDiv
|
|
|
14
14
|
*/
|
|
15
15
|
persistEntry: PersistEntry;
|
|
16
16
|
onChange?: FormOnSubmit<Partial<CmsContentEntry>>;
|
|
17
|
+
onInvalidFields?: (invalidFields: FormValidation) => void;
|
|
17
18
|
header?: React.ReactNode;
|
|
18
19
|
/**
|
|
19
20
|
* This prop is used to get a reference to `saveEntry` callback, so it can be triggered by components
|
|
@@ -22,21 +23,21 @@ export interface ContentEntryFormProps extends Omit<React.HTMLAttributes<HTMLDiv
|
|
|
22
23
|
*/
|
|
23
24
|
setSaveEntry?: (cb: ContentEntryFormContext["saveEntry"]) => void;
|
|
24
25
|
}
|
|
25
|
-
export declare const ContentEntryForm: (({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
26
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
26
|
+
export declare const ContentEntryForm: (({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
27
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
27
28
|
originalName: string;
|
|
28
29
|
displayName: string;
|
|
29
30
|
} & {
|
|
30
|
-
original: (({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
31
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
31
|
+
original: (({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
32
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
32
33
|
originalName: string;
|
|
33
34
|
displayName: string;
|
|
34
35
|
};
|
|
35
36
|
originalName: string;
|
|
36
37
|
displayName: string;
|
|
37
38
|
} & {
|
|
38
|
-
createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
39
|
-
original: ({ entry, persistEntry, onChange, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
39
|
+
createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element) & {
|
|
40
|
+
original: ({ entry, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, header, ...props }: ContentEntryFormProps) => React.JSX.Element;
|
|
40
41
|
originalName: string;
|
|
41
42
|
displayName: string;
|
|
42
43
|
}>) => (props: unknown) => React.JSX.Element;
|
|
@@ -16,7 +16,7 @@ var _ContentEntryFormProvider = require("./ContentEntryFormProvider");
|
|
|
16
16
|
var _CustomLayout = require("./CustomLayout");
|
|
17
17
|
var _DefaultLayout = require("./DefaultLayout");
|
|
18
18
|
var _useGoToRevision2 = require("./useGoToRevision");
|
|
19
|
-
var _excluded = ["entry", "persistEntry", "onChange", "onAfterCreate", "setSaveEntry", "header"];
|
|
19
|
+
var _excluded = ["entry", "persistEntry", "onChange", "onInvalidFields", "onAfterCreate", "setSaveEntry", "header"];
|
|
20
20
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
21
21
|
var FormWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
22
22
|
target: "ejw5gwy0"
|
|
@@ -29,13 +29,14 @@ var FormWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV ==
|
|
|
29
29
|
} : {
|
|
30
30
|
name: "1x0mv1y",
|
|
31
31
|
styles: "height:calc(100vh - 260px);overflow:auto",
|
|
32
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCb0IiLCJmaWxlIjoiQ29udGVudEVudHJ5Rm9ybS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgRm9ybU9uU3VibWl0LCBGb3JtVmFsaWRhdGlvbiB9IGZyb20gXCJAd2ViaW55L2Zvcm1cIjtcbmltcG9ydCB7IG1ha2VEZWNvcmF0YWJsZSB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgQ21zQ29udGVudEVudHJ5IH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IE1vZGVsUHJvdmlkZXIsIHVzZU1vZGVsIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Nb2RlbFByb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VGb3JtUmVuZGVyZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vdXNlRm9ybVJlbmRlcmVyXCI7XG5pbXBvcnQge1xuICAgIENvbnRlbnRFbnRyeUZvcm1Db250ZXh0LFxuICAgIENvbnRlbnRFbnRyeUZvcm1Qcm92aWRlcixcbiAgICBQZXJzaXN0RW50cnlcbn0gZnJvbSBcIi4vQ29udGVudEVudHJ5Rm9ybVByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDdXN0b21MYXlvdXQgfSBmcm9tIFwiLi9DdXN0b21MYXlvdXRcIjtcbmltcG9ydCB7IERlZmF1bHRMYXlvdXQgfSBmcm9tIFwiLi9EZWZhdWx0TGF5b3V0XCI7XG5pbXBvcnQgeyB1c2VHb1RvUmV2aXNpb24gfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vdXNlR29Ub1JldmlzaW9uXCI7XG5cbmNvbnN0IEZvcm1XcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBoZWlnaHQ6IFwiY2FsYygxMDB2aCAtIDI2MHB4KVwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIlxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEVudHJ5Rm9ybVByb3BzXG4gICAgZXh0ZW5kcyBPbWl0PFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiwgXCJvbkNoYW5nZVwiPiB7XG4gICAgZW50cnk6IFBhcnRpYWw8Q21zQ29udGVudEVudHJ5PjtcbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIHdoZW4gYW4gZW50cnksIG9yIGEgcmV2aXNpb24sIGFyZSBjcmVhdGVkLlxuICAgICAqIEBwYXJhbSBlbnRyeVxuICAgICAqL1xuICAgIG9uQWZ0ZXJDcmVhdGU/OiAoZW50cnk6IENtc0NvbnRlbnRFbnRyeSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIHdoZW4gdGhlIGZvcm0gaXMgdmFsaWQsIGFuZCBpdCBuZWVkcyB0byBwZXJzaXN0IHRoZSBjb250ZW50IGVudHJ5LlxuICAgICAqL1xuICAgIHBlcnNpc3RFbnRyeTogUGVyc2lzdEVudHJ5O1xuICAgIG9uQ2hhbmdlPzogRm9ybU9uU3VibWl0PFBhcnRpYWw8Q21zQ29udGVudEVudHJ5Pj47XG4gICAgb25JbnZhbGlkRmllbGRzPzogKGludmFsaWRGaWVsZHM6IEZvcm1WYWxpZGF0aW9uKSA9PiB2b2lkO1xuICAgIGhlYWRlcj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICAvKipcbiAgICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBnZXQgYSByZWZlcmVuY2UgdG8gYHNhdmVFbnRyeWAgY2FsbGJhY2ssIHNvIGl0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgY29tcG9uZW50c1xuICAgICAqIG91dHNpZGUgdGhlIENvbnRlbnRFbnRyeUZvcm0gY29udGV4dC5cbiAgICAgKiBUT0RPOiBpbnRyb2R1Y2UgYSBgbGF5b3V0YCBwcm9wIHRvIGJlIGFibGUgdG8gbW91bnQgYXJiaXRyYXJ5IGNvbXBvbmVudHMgYXJvdW5kIHRoZSBlbnRyeSBmb3JtLCB3aXRoaW4gdGhlIGNvbnRleHQuXG4gICAgICovXG4gICAgc2V0U2F2ZUVudHJ5PzogKGNiOiBDb250ZW50RW50cnlGb3JtQ29udGV4dFtcInNhdmVFbnRyeVwiXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRlbnRFbnRyeUZvcm0gPSBtYWtlRGVjb3JhdGFibGUoXG4gICAgXCJDb250ZW50RW50cnlGb3JtXCIsXG4gICAgKHtcbiAgICAgICAgZW50cnksXG4gICAgICAgIHBlcnNpc3RFbnRyeSxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgIG9uSW52YWxpZEZpZWxkcyxcbiAgICAgICAgb25BZnRlckNyZWF0ZSxcbiAgICAgICAgc2V0U2F2ZUVudHJ5LFxuICAgICAgICBoZWFkZXIgPSB0cnVlLFxuICAgICAgICAuLi5wcm9wc1xuICAgIH06IENvbnRlbnRFbnRyeUZvcm1Qcm9wcykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtRWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgIGNvbnN0IHsgbW9kZWwgfSA9IHVzZU1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHsgZ29Ub1JldmlzaW9uIH0gPSB1c2VHb1RvUmV2aXNpb24oKTtcbiAgICAgICAgY29uc3QgZm9ybVJlbmRlcmVyID0gdXNlRm9ybVJlbmRlcmVyKG1vZGVsKTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0T25BZnRlckNyZWF0ZSA9IChlbnRyeTogQ21zQ29udGVudEVudHJ5KSA9PiB7XG4gICAgICAgICAgICBnb1RvUmV2aXNpb24oZW50cnkuaWQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFdoZW4gZW50cnkgY2hhbmdlcywgc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIGZvcm0uXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWZvcm1FbGVtZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50UmVmLmN1cnJlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgfSwgMjApO1xuICAgICAgICB9LCBbZW50cnkuaWQsIGZvcm1FbGVtZW50UmVmLmN1cnJlbnRdKTtcblxuICAgICAgICBpZiAobW9kZWwuaXNCZWluZ0RlbGV0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiA8Pk1vZGVsIGlzIGJlaW5nIGRlbGV0ZWQuPC8+O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxDb250ZW50RW50cnlGb3JtUHJvdmlkZXJcbiAgICAgICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICAgICAgZW50cnk9e2VudHJ5fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkludmFsaWRGaWVsZHM9e29uSW52YWxpZEZpZWxkc31cbiAgICAgICAgICAgICAgICBvbkFmdGVyQ3JlYXRlPXtvbkFmdGVyQ3JlYXRlIHx8IGRlZmF1bHRPbkFmdGVyQ3JlYXRlfVxuICAgICAgICAgICAgICAgIHNldFNhdmVFbnRyeT17c2V0U2F2ZUVudHJ5fVxuICAgICAgICAgICAgICAgIGNvbmZpcm1OYXZpZ2F0aW9uSWZEaXJ0eT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBwZXJzaXN0RW50cnk9e3BlcnNpc3RFbnRyeX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TW9kZWxQcm92aWRlciBtb2RlbD17bW9kZWx9PlxuICAgICAgICAgICAgICAgICAgICB7aGVhZGVyID8gaGVhZGVyIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1XcmFwcGVyIHsuLi5wcm9wc30gZGF0YS10ZXN0aWQ9e1wiY21zLWNvbnRlbnQtZm9ybVwifSByZWY9e2Zvcm1FbGVtZW50UmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JtUmVuZGVyZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEN1c3RvbUxheW91dCBtb2RlbD17bW9kZWx9IGZvcm1SZW5kZXJlcj17Zm9ybVJlbmRlcmVyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVmYXVsdExheW91dCBtb2RlbD17bW9kZWx9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm1XcmFwcGVyPlxuICAgICAgICAgICAgICAgIDwvTW9kZWxQcm92aWRlcj5cbiAgICAgICAgICAgIDwvQ29udGVudEVudHJ5Rm9ybVByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH1cbik7XG4iXX0= */",
|
|
33
33
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
34
34
|
});
|
|
35
35
|
var ContentEntryForm = exports.ContentEntryForm = (0, _appAdmin.makeDecoratable)("ContentEntryForm", function (_ref) {
|
|
36
36
|
var entry = _ref.entry,
|
|
37
37
|
persistEntry = _ref.persistEntry,
|
|
38
38
|
onChange = _ref.onChange,
|
|
39
|
+
onInvalidFields = _ref.onInvalidFields,
|
|
39
40
|
onAfterCreate = _ref.onAfterCreate,
|
|
40
41
|
setSaveEntry = _ref.setSaveEntry,
|
|
41
42
|
_ref$header = _ref.header,
|
|
@@ -67,6 +68,7 @@ var ContentEntryForm = exports.ContentEntryForm = (0, _appAdmin.makeDecoratable)
|
|
|
67
68
|
model: model,
|
|
68
69
|
entry: entry,
|
|
69
70
|
onChange: onChange,
|
|
71
|
+
onInvalidFields: onInvalidFields,
|
|
70
72
|
onAfterCreate: onAfterCreate || defaultOnAfterCreate,
|
|
71
73
|
setSaveEntry: setSaveEntry,
|
|
72
74
|
confirmNavigationIfDirty: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_ModelProvider","_useFormRenderer","_ContentEntryFormProvider","_CustomLayout","_DefaultLayout","_useGoToRevision2","_excluded","_EMOTION_STRINGIFIED_CSS_ERROR__","FormWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ContentEntryForm","exports","makeDecoratable","_ref","entry","persistEntry","onChange","onAfterCreate","setSaveEntry","_ref$header","header","props","_objectWithoutProperties2","formElementRef","useRef","_useModel","useModel","model","_useGoToRevision","useGoToRevision","goToRevision","formRenderer","useFormRenderer","defaultOnAfterCreate","id","useEffect","current","setTimeout","scrollTo","isBeingDeleted","createElement","Fragment","ContentEntryFormProvider","confirmNavigationIfDirty","ModelProvider","Object","assign","ref","CustomLayout","DefaultLayout"],"sources":["ContentEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_ModelProvider","_useFormRenderer","_ContentEntryFormProvider","_CustomLayout","_DefaultLayout","_useGoToRevision2","_excluded","_EMOTION_STRINGIFIED_CSS_ERROR__","FormWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ContentEntryForm","exports","makeDecoratable","_ref","entry","persistEntry","onChange","onInvalidFields","onAfterCreate","setSaveEntry","_ref$header","header","props","_objectWithoutProperties2","formElementRef","useRef","_useModel","useModel","model","_useGoToRevision","useGoToRevision","goToRevision","formRenderer","useFormRenderer","defaultOnAfterCreate","id","useEffect","current","setTimeout","scrollTo","isBeingDeleted","createElement","Fragment","ContentEntryFormProvider","confirmNavigationIfDirty","ModelProvider","Object","assign","ref","CustomLayout","DefaultLayout"],"sources":["ContentEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { FormOnSubmit, FormValidation } from \"@webiny/form\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { CmsContentEntry } from \"~/types\";\nimport { ModelProvider, useModel } from \"~/admin/components/ModelProvider\";\nimport { useFormRenderer } from \"~/admin/components/ContentEntryForm/useFormRenderer\";\nimport {\n ContentEntryFormContext,\n ContentEntryFormProvider,\n PersistEntry\n} from \"./ContentEntryFormProvider\";\nimport { CustomLayout } from \"./CustomLayout\";\nimport { DefaultLayout } from \"./DefaultLayout\";\nimport { useGoToRevision } from \"~/admin/components/ContentEntryForm/useGoToRevision\";\n\nconst FormWrapper = styled(\"div\")({\n height: \"calc(100vh - 260px)\",\n overflow: \"auto\"\n});\n\nexport interface ContentEntryFormProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n entry: Partial<CmsContentEntry>;\n /**\n * This callback is executed when an entry, or a revision, are created.\n * @param entry\n */\n onAfterCreate?: (entry: CmsContentEntry) => void;\n /**\n * This callback is executed when the form is valid, and it needs to persist the content entry.\n */\n persistEntry: PersistEntry;\n onChange?: FormOnSubmit<Partial<CmsContentEntry>>;\n onInvalidFields?: (invalidFields: FormValidation) => void;\n header?: React.ReactNode;\n /**\n * This prop is used to get a reference to `saveEntry` callback, so it can be triggered by components\n * outside the ContentEntryForm context.\n * TODO: introduce a `layout` prop to be able to mount arbitrary components around the entry form, within the context.\n */\n setSaveEntry?: (cb: ContentEntryFormContext[\"saveEntry\"]) => void;\n}\n\nexport const ContentEntryForm = makeDecoratable(\n \"ContentEntryForm\",\n ({\n entry,\n persistEntry,\n onChange,\n onInvalidFields,\n onAfterCreate,\n setSaveEntry,\n header = true,\n ...props\n }: ContentEntryFormProps) => {\n const formElementRef = useRef<HTMLDivElement>(null);\n const { model } = useModel();\n const { goToRevision } = useGoToRevision();\n const formRenderer = useFormRenderer(model);\n\n const defaultOnAfterCreate = (entry: CmsContentEntry) => {\n goToRevision(entry.id);\n };\n\n // When entry changes, scroll to the top of the form.\n useEffect(() => {\n if (!formElementRef.current) {\n return;\n }\n\n setTimeout(() => {\n formElementRef.current?.scrollTo(0, 0);\n }, 20);\n }, [entry.id, formElementRef.current]);\n\n if (model.isBeingDeleted) {\n return <>Model is being deleted.</>;\n }\n\n return (\n <ContentEntryFormProvider\n model={model}\n entry={entry}\n onChange={onChange}\n onInvalidFields={onInvalidFields}\n onAfterCreate={onAfterCreate || defaultOnAfterCreate}\n setSaveEntry={setSaveEntry}\n confirmNavigationIfDirty={true}\n persistEntry={persistEntry}\n >\n <ModelProvider model={model}>\n {header ? header : null}\n <FormWrapper {...props} data-testid={\"cms-content-form\"} ref={formElementRef}>\n {formRenderer ? (\n <CustomLayout model={model} formRenderer={formRenderer} />\n ) : (\n <DefaultLayout model={model} />\n )}\n </FormWrapper>\n </ModelProvider>\n </ContentEntryFormProvider>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { FormOnSubmit, FormInvalidFields } from "@webiny/form";
|
|
2
|
+
import type { FormOnSubmit, FormValidation, FormInvalidFields } from "@webiny/form";
|
|
3
3
|
import type { CmsContentEntry, CmsModel } from "@webiny/app-headless-cms-common/types";
|
|
4
4
|
import type { CreateEntryResponse, UpdateEntryRevisionResponse } from "../../contexts/Cms";
|
|
5
5
|
interface SaveEntryOptions {
|
|
@@ -24,9 +24,10 @@ interface ContentEntryFormProviderProps {
|
|
|
24
24
|
persistEntry: PersistEntry;
|
|
25
25
|
confirmNavigationIfDirty: boolean;
|
|
26
26
|
onChange?: FormOnSubmit<Partial<CmsContentEntry>>;
|
|
27
|
+
onInvalidFields?: (invalidFields: FormValidation) => void;
|
|
27
28
|
onAfterCreate?: (entry: CmsContentEntry) => void;
|
|
28
29
|
setSaveEntry?: SetSaveEntry;
|
|
29
30
|
children: React.ReactNode;
|
|
30
31
|
}
|
|
31
|
-
export declare const ContentEntryFormProvider: ({ model, entry, children, persistEntry, onChange, onAfterCreate, setSaveEntry, confirmNavigationIfDirty }: ContentEntryFormProviderProps) => React.JSX.Element;
|
|
32
|
+
export declare const ContentEntryFormProvider: ({ model, entry, children, persistEntry, onChange, onInvalidFields, onAfterCreate, setSaveEntry, confirmNavigationIfDirty }: ContentEntryFormProviderProps) => React.JSX.Element;
|
|
32
33
|
export {};
|
|
@@ -29,6 +29,7 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
29
29
|
children = _ref.children,
|
|
30
30
|
persistEntry = _ref.persistEntry,
|
|
31
31
|
onChange = _ref.onChange,
|
|
32
|
+
onInvalidFields = _ref.onInvalidFields,
|
|
32
33
|
onAfterCreate = _ref.onAfterCreate,
|
|
33
34
|
setSaveEntry = _ref.setSaveEntry,
|
|
34
35
|
confirmNavigationIfDirty = _ref.confirmNavigationIfDirty;
|
|
@@ -102,6 +103,7 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
102
103
|
invalidFields: invalidFields,
|
|
103
104
|
onInvalid: function onInvalid(invalidFields) {
|
|
104
105
|
setInvalidFields(formValidationToMap(invalidFields));
|
|
106
|
+
onInvalidFields && onInvalidFields(invalidFields);
|
|
105
107
|
showSnackbar("Some fields did not pass the validation. Please check the form.");
|
|
106
108
|
}
|
|
107
109
|
}, function (formProps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appHeadlessCmsCommon","_appAdmin","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread4","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","persistEntry","onChange","onAfterCreate","setSaveEntry","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","id","_await$persistEntry","createNewRevision","meta","locked","error","code","errors","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","validateOnFirstSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport type { FormAPI, FormOnSubmit, FormValidation, FormInvalidFields } from \"@webiny/form\";\nimport type { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport type { CreateEntryResponse, UpdateEntryRevisionResponse } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n createNewRevision?: boolean;\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormInvalidFields;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\nexport interface PersistEntry {\n (entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<\n CreateEntryResponse | UpdateEntryRevisionResponse\n >;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n persistEntry: PersistEntry;\n confirmNavigationIfDirty: boolean;\n onChange?: FormOnSubmit<Partial<CmsContentEntry>>;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n children: React.ReactNode;\n}\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation): FormInvalidFields => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message || \"Value is invalid.\" }),\n {} as FormInvalidFields\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n persistEntry,\n onChange,\n onAfterCreate,\n setSaveEntry,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState<FormInvalidFields>({});\n const { showSnackbar } = useSnackbar();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry(\n { id: data.id, ...gqlData },\n {\n skipValidators: saveOptionsRef.current.skipValidators,\n createNewRevision: data.meta?.locked\n }\n );\n\n if (error) {\n if (error.code === \"VALIDATION_FAILED\") {\n const errors: InvalidFieldError[] = error.data || [];\n\n setInvalidFields(\n errors.reduce((acc, item) => ({ ...acc, [item.fieldId]: item.error }), {})\n );\n }\n showSnackbar(error.message);\n\n return;\n }\n\n showSnackbar(\"Entry saved successfully!\");\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n onChange={onChange}\n data={entry}\n ref={ref}\n validateOnFirstSubmit\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appHeadlessCmsCommon","_appAdmin","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread4","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","persistEntry","onChange","onInvalidFields","onAfterCreate","setSaveEntry","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","id","_await$persistEntry","createNewRevision","meta","locked","error","code","errors","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","validateOnFirstSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport type { FormAPI, FormOnSubmit, FormValidation, FormInvalidFields } from \"@webiny/form\";\nimport type { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport type { CreateEntryResponse, UpdateEntryRevisionResponse } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n createNewRevision?: boolean;\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormInvalidFields;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\nexport interface PersistEntry {\n (entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<\n CreateEntryResponse | UpdateEntryRevisionResponse\n >;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n persistEntry: PersistEntry;\n confirmNavigationIfDirty: boolean;\n onChange?: FormOnSubmit<Partial<CmsContentEntry>>;\n onInvalidFields?: (invalidFields: FormValidation) => void;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n children: React.ReactNode;\n}\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation): FormInvalidFields => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message || \"Value is invalid.\" }),\n {} as FormInvalidFields\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n persistEntry,\n onChange,\n onInvalidFields,\n onAfterCreate,\n setSaveEntry,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState<FormInvalidFields>({});\n const { showSnackbar } = useSnackbar();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry(\n { id: data.id, ...gqlData },\n {\n skipValidators: saveOptionsRef.current.skipValidators,\n createNewRevision: data.meta?.locked\n }\n );\n\n if (error) {\n if (error.code === \"VALIDATION_FAILED\") {\n const errors: InvalidFieldError[] = error.data || [];\n\n setInvalidFields(\n errors.reduce((acc, item) => ({ ...acc, [item.fieldId]: item.error }), {})\n );\n }\n showSnackbar(error.message);\n\n return;\n }\n\n showSnackbar(\"Entry saved successfully!\");\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n onChange={onChange}\n data={entry}\n ref={ref}\n validateOnFirstSubmit\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n onInvalidFields && onInvalidFields(invalidFields);\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,8 +25,7 @@ var RenderField = function RenderField(props) {
|
|
|
25
25
|
var _useModelField = (0, _ModelFieldProvider.useModelField)(),
|
|
26
26
|
field = _useModelField.field;
|
|
27
27
|
var getBind = (0, _useBind.useBind)({
|
|
28
|
-
Bind: Bind
|
|
29
|
-
field: field
|
|
28
|
+
Bind: Bind
|
|
30
29
|
});
|
|
31
30
|
if (typeof field.renderer === "function") {
|
|
32
31
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, field.renderer({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_get","_appAdmin","_i18n","_Label","_useBind","_useRenderPlugins","_ModelFieldProvider","_excluded","_templateObject","t","i18n","ns","RenderField","props","renderPlugins","useRenderPlugins","Bind","contentModel","_useModelField","useModelField","field","getBind","useBind","renderer","default","createElement","Fragment","Label","renderPlugin","find","plugin","rendererName","get","_taggedTemplateLiteral2","fieldName","fieldId","render","FieldElement","exports","makeDecoratable","_ref","_objectWithoutProperties2","ModelFieldProvider","RenderFieldElement"],"sources":["FieldElement.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModelField, CmsEditorContentModel, BindComponent } from \"~/types\";\nimport Label from \"./Label\";\nimport { useBind } from \"./useBind\";\nimport { useRenderPlugins } from \"./useRenderPlugins\";\nimport { ModelFieldProvider, useModelField } from \"../ModelFieldProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/content-form\");\n\ntype RenderFieldProps = Omit<FieldElementProps, \"field\">;\n\nconst RenderField = (props: RenderFieldProps) => {\n const renderPlugins = useRenderPlugins();\n const { Bind, contentModel } = props;\n const { field } = useModelField();\n const getBind = useBind({ Bind
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_get","_appAdmin","_i18n","_Label","_useBind","_useRenderPlugins","_ModelFieldProvider","_excluded","_templateObject","t","i18n","ns","RenderField","props","renderPlugins","useRenderPlugins","Bind","contentModel","_useModelField","useModelField","field","getBind","useBind","renderer","default","createElement","Fragment","Label","renderPlugin","find","plugin","rendererName","get","_taggedTemplateLiteral2","fieldName","fieldId","render","FieldElement","exports","makeDecoratable","_ref","_objectWithoutProperties2","ModelFieldProvider","RenderFieldElement"],"sources":["FieldElement.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModelField, CmsEditorContentModel, BindComponent } from \"~/types\";\nimport Label from \"./Label\";\nimport { useBind } from \"./useBind\";\nimport { useRenderPlugins } from \"./useRenderPlugins\";\nimport { ModelFieldProvider, useModelField } from \"../ModelFieldProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/content-form\");\n\ntype RenderFieldProps = Omit<FieldElementProps, \"field\">;\n\nconst RenderField = (props: RenderFieldProps) => {\n const renderPlugins = useRenderPlugins();\n const { Bind, contentModel } = props;\n const { field } = useModelField();\n const getBind = useBind({ Bind });\n\n if (typeof field.renderer === \"function\") {\n return <>{field.renderer({ field, getBind, Label, contentModel })}</>;\n }\n\n const renderPlugin = renderPlugins.find(\n plugin => plugin.renderer.rendererName === get(field, \"renderer.name\")\n );\n\n if (!renderPlugin) {\n return t`Cannot render \"{fieldName}\" field - field renderer missing.`({\n fieldName: <strong>{field.fieldId}</strong>\n });\n }\n\n return <>{renderPlugin.renderer.render({ field, getBind, Label, contentModel })}</>;\n};\n\nexport interface FieldElementProps {\n field: CmsModelField;\n Bind: BindComponent;\n contentModel: CmsEditorContentModel;\n}\n\nexport const FieldElement = makeDecoratable(\n \"FieldElement\",\n ({ field, ...props }: FieldElementProps) => {\n return (\n <ModelFieldProvider field={field}>\n <RenderField {...props} />\n </ModelFieldProvider>\n );\n }\n);\n\n/**\n * @deprecated Use `FieldElement` instead.\n */\nexport const RenderFieldElement = FieldElement;\n\n/**\n * @deprecated Use `FieldElementProps` instead.\n */\nexport type RenderFieldElementProps = FieldElementProps;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AAA0E,IAAAQ,SAAA;AAAA,IAAAC,eAAA;AAE1E,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,gDAAgD,CAAC;AAInE,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAuB,EAAK;EAC7C,IAAMC,aAAa,GAAG,IAAAC,kCAAgB,EAAC,CAAC;EACxC,IAAQC,IAAI,GAAmBH,KAAK,CAA5BG,IAAI;IAAEC,YAAY,GAAKJ,KAAK,CAAtBI,YAAY;EAC1B,IAAAC,cAAA,GAAkB,IAAAC,iCAAa,EAAC,CAAC;IAAzBC,KAAK,GAAAF,cAAA,CAALE,KAAK;EACb,IAAMC,OAAO,GAAG,IAAAC,gBAAO,EAAC;IAAEN,IAAI,EAAJA;EAAK,CAAC,CAAC;EAEjC,IAAI,OAAOI,KAAK,CAACG,QAAQ,KAAK,UAAU,EAAE;IACtC,oBAAO1B,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAAA5B,MAAA,CAAA2B,OAAA,CAAAE,QAAA,QAAGN,KAAK,CAACG,QAAQ,CAAC;MAAEH,KAAK,EAALA,KAAK;MAAEC,OAAO,EAAPA,OAAO;MAAEM,KAAK,EAALA,cAAK;MAAEV,YAAY,EAAZA;IAAa,CAAC,CAAI,CAAC;EACzE;EAEA,IAAMW,YAAY,GAAGd,aAAa,CAACe,IAAI,CACnC,UAAAC,MAAM;IAAA,OAAIA,MAAM,CAACP,QAAQ,CAACQ,YAAY,KAAK,IAAAC,YAAG,EAACZ,KAAK,EAAE,eAAe,CAAC;EAAA,CAC1E,CAAC;EAED,IAAI,CAACQ,YAAY,EAAE;IACf,OAAOnB,CAAC,CAAAD,eAAA,KAAAA,eAAA,OAAAyB,uBAAA,CAAAT,OAAA,uEAA8D;MAClEU,SAAS,eAAErC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,iBAASL,KAAK,CAACe,OAAgB;IAC9C,CAAC,CAAC;EACN;EAEA,oBAAOtC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAAA5B,MAAA,CAAA2B,OAAA,CAAAE,QAAA,QAAGE,YAAY,CAACL,QAAQ,CAACa,MAAM,CAAC;IAAEhB,KAAK,EAALA,KAAK;IAAEC,OAAO,EAAPA,OAAO;IAAEM,KAAK,EAALA,cAAK;IAAEV,YAAY,EAAZA;EAAa,CAAC,CAAI,CAAC;AACvF,CAAC;AAQM,IAAMoB,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,yBAAe,EACvC,cAAc,EACd,UAAAC,IAAA,EAA4C;EAAA,IAAzCpB,KAAK,GAAAoB,IAAA,CAALpB,KAAK;IAAKP,KAAK,OAAA4B,yBAAA,CAAAjB,OAAA,EAAAgB,IAAA,EAAAjC,SAAA;EACd,oBACIV,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACnB,mBAAA,CAAAoC,kBAAkB;IAACtB,KAAK,EAAEA;EAAM,gBAC7BvB,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACb,WAAW,EAAKC,KAAQ,CACT,CAAC;AAE7B,CACJ,CAAC;;AAED;AACA;AACA;AACO,IAAM8B,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAGN,YAAY;;AAE9C;AACA;AACA","ignoreList":[]}
|
|
@@ -11,6 +11,8 @@ var _appAdmin = require("@webiny/app-admin");
|
|
|
11
11
|
var _contentEntries = require("../../../config/contentEntries");
|
|
12
12
|
var _ContentFormOptionsMenu = require("./ContentFormOptionsMenu");
|
|
13
13
|
var _RevisionSelector = require("./RevisionSelector");
|
|
14
|
+
var _reactHelmet = require("react-helmet");
|
|
15
|
+
var _hooks = require("../../../views/contentEntries/hooks");
|
|
14
16
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
15
17
|
var ToolbarGrid = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
16
18
|
target: "euhddwt1"
|
|
@@ -23,7 +25,7 @@ var ToolbarGrid = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV ==
|
|
|
23
25
|
} : {
|
|
24
26
|
name: "10cyi6j",
|
|
25
27
|
styles: "padding:15px;border-bottom:1px solid var(--mdc-theme-on-background);display:flex;justify-content:space-between;align-items:center",
|
|
26
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVzhCIiwiZmlsZSI6IkhlYWRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCdXR0b25zLCBtYWtlRGVjb3JhdGFibGUgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW5cIjtcblxuaW1wb3J0IHsgdXNlQ29udGVudEVudHJ5RWRpdG9yQ29uZmlnIH0gZnJvbSBcIn4vYWRtaW4vY29uZmlnL2NvbnRlbnRFbnRyaWVzXCI7XG5cbmltcG9ydCB7IENvbnRlbnRGb3JtT3B0aW9uc01lbnUgfSBmcm9tIFwiLi9Db250ZW50Rm9ybU9wdGlvbnNNZW51XCI7XG5pbXBvcnQgeyBSZXZpc2lvblNlbGVjdG9yIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL0hlYWRlci9SZXZpc2lvblNlbGVjdG9yXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IEhlbG1ldCB9IGZyb20gXCJyZWFjdC1oZWxtZXRcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyeSB9IGZyb20gXCJ+L2FkbWluL3ZpZXdzL2NvbnRlbnRFbnRyaWVzL2hvb2tzXCI7XG5cbmNvbnN0IFRvb2xiYXJHcmlkID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tZGMtdGhlbWUtb24tYmFja2dyb3VuZCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IEFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmV4cG9ydCBjb25zdCBIZWFkZXIgPSBtYWtlRGVjb3JhdGFibGUoXCJDb250ZW50RW50cnlGb3JtSGVhZGVyXCIsICgpID0+IHtcbiAgICBjb25zdCB7IGJ1dHRvbkFjdGlvbnMgfSA9IHVzZUNvbnRlbnRFbnRyeUVkaXRvckNvbmZpZygpO1xuICAgIGNvbnN0IHsgZW50cnkgfSA9IHVzZUNvbnRlbnRFbnRyeSgpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2xiYXJHcmlkIGlkPVwiaGVhZGVyVG9vbGJhckdyaWRcIj5cbiAgICAgICAgICAgIHtlbnRyeS5tZXRhPy50aXRsZSA/IDxIZWxtZXQgdGl0bGU9e2VudHJ5Lm1ldGEudGl0bGV9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPFJldmlzaW9uU2VsZWN0b3IgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPEFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbnMgYWN0aW9ucz17YnV0dG9uQWN0aW9uc30gLz5cbiAgICAgICAgICAgICAgICA8Q29udGVudEZvcm1PcHRpb25zTWVudSAvPlxuICAgICAgICAgICAgPC9BY3Rpb25zPlxuICAgICAgICA8L1Rvb2xiYXJHcmlkPlxuICAgICk7XG59KTtcbiJdfQ== */",
|
|
27
29
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
28
30
|
});
|
|
29
31
|
var Actions = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
@@ -37,15 +39,19 @@ var Actions = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "p
|
|
|
37
39
|
} : {
|
|
38
40
|
name: "s5xdrg",
|
|
39
41
|
styles: "display:flex;align-items:center",
|
|
40
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUIwQiIsImZpbGUiOiJIZWFkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9ucywgbWFrZURlY29yYXRhYmxlIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5cbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyeUVkaXRvckNvbmZpZyB9IGZyb20gXCJ+L2FkbWluL2NvbmZpZy9jb250ZW50RW50cmllc1wiO1xuXG5pbXBvcnQgeyBDb250ZW50Rm9ybU9wdGlvbnNNZW51IH0gZnJvbSBcIi4vQ29udGVudEZvcm1PcHRpb25zTWVudVwiO1xuaW1wb3J0IHsgUmV2aXNpb25TZWxlY3RvciB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvQ29udGVudEVudHJ5Rm9ybS9IZWFkZXIvUmV2aXNpb25TZWxlY3RvclwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBIZWxtZXQgfSBmcm9tIFwicmVhY3QtaGVsbWV0XCI7XG5pbXBvcnQgeyB1c2VDb250ZW50RW50cnkgfSBmcm9tIFwifi9hZG1pbi92aWV3cy9jb250ZW50RW50cmllcy9ob29rc1wiO1xuXG5jb25zdCBUb29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWRjLXRoZW1lLW9uLWJhY2tncm91bmQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBBY3Rpb25zID0gc3R5bGVkLmRpdmBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgY29uc3QgSGVhZGVyID0gbWFrZURlY29yYXRhYmxlKFwiQ29udGVudEVudHJ5Rm9ybUhlYWRlclwiLCAoKSA9PiB7XG4gICAgY29uc3QgeyBidXR0b25BY3Rpb25zIH0gPSB1c2VDb250ZW50RW50cnlFZGl0b3JDb25maWcoKTtcbiAgICBjb25zdCB7IGVudHJ5IH0gPSB1c2VDb250ZW50RW50cnkoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sYmFyR3JpZCBpZD1cImhlYWRlclRvb2xiYXJHcmlkXCI+XG4gICAgICAgICAgICB7ZW50cnkubWV0YT8udGl0bGUgPyA8SGVsbWV0IHRpdGxlPXtlbnRyeS5tZXRhLnRpdGxlfSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxSZXZpc2lvblNlbGVjdG9yIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxBY3Rpb25zPlxuICAgICAgICAgICAgICAgIDxCdXR0b25zIGFjdGlvbnM9e2J1dHRvbkFjdGlvbnN9IC8+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRGb3JtT3B0aW9uc01lbnUgLz5cbiAgICAgICAgICAgIDwvQWN0aW9ucz5cbiAgICAgICAgPC9Ub29sYmFyR3JpZD5cbiAgICApO1xufSk7XG4iXX0= */",
|
|
41
43
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
42
44
|
});
|
|
43
45
|
var Header = exports.Header = (0, _appAdmin.makeDecoratable)("ContentEntryFormHeader", function () {
|
|
44
46
|
var _useContentEntryEdito = (0, _contentEntries.useContentEntryEditorConfig)(),
|
|
45
47
|
buttonActions = _useContentEntryEdito.buttonActions;
|
|
48
|
+
var _useContentEntry = (0, _hooks.useContentEntry)(),
|
|
49
|
+
entry = _useContentEntry.entry;
|
|
46
50
|
return /*#__PURE__*/_react.default.createElement(ToolbarGrid, {
|
|
47
51
|
id: "headerToolbarGrid"
|
|
48
|
-
},
|
|
52
|
+
}, entry.meta?.title ? /*#__PURE__*/_react.default.createElement(_reactHelmet.Helmet, {
|
|
53
|
+
title: entry.meta.title
|
|
54
|
+
}) : null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_RevisionSelector.RevisionSelector, null)), /*#__PURE__*/_react.default.createElement(Actions, null, /*#__PURE__*/_react.default.createElement(_appAdmin.Buttons, {
|
|
49
55
|
actions: buttonActions
|
|
50
56
|
}), /*#__PURE__*/_react.default.createElement(_ContentFormOptionsMenu.ContentFormOptionsMenu, null)));
|
|
51
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_appAdmin","_contentEntries","_ContentFormOptionsMenu","_RevisionSelector","_EMOTION_STRINGIFIED_CSS_ERROR__","ToolbarGrid","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Actions","Header","exports","makeDecoratable","_useContentEntryEdito","useContentEntryEditorConfig","buttonActions","createElement","id","RevisionSelector","Buttons","actions","ContentFormOptionsMenu"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Buttons, makeDecoratable } from \"@webiny/app-admin\";\n\nimport { useContentEntryEditorConfig } from \"~/admin/config/contentEntries\";\n\nimport { ContentFormOptionsMenu } from \"./ContentFormOptionsMenu\";\nimport { RevisionSelector } from \"~/admin/components/ContentEntryForm/Header/RevisionSelector\";\nimport styled from \"@emotion/styled\";\n\nconst ToolbarGrid = styled.div`\n padding: 15px;\n border-bottom: 1px solid var(--mdc-theme-on-background);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Actions = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Header = makeDecoratable(\"ContentEntryFormHeader\", () => {\n const { buttonActions } = useContentEntryEditorConfig();\n\n return (\n <ToolbarGrid id=\"headerToolbarGrid\">\n <div>\n <RevisionSelector />\n </div>\n <Actions>\n <Buttons actions={buttonActions} />\n <ContentFormOptionsMenu />\n </Actions>\n </ToolbarGrid>\n );\n});\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AAEA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_appAdmin","_contentEntries","_ContentFormOptionsMenu","_RevisionSelector","_reactHelmet","_hooks","_EMOTION_STRINGIFIED_CSS_ERROR__","ToolbarGrid","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Actions","Header","exports","makeDecoratable","_useContentEntryEdito","useContentEntryEditorConfig","buttonActions","_useContentEntry","useContentEntry","entry","createElement","id","meta","title","Helmet","RevisionSelector","Buttons","actions","ContentFormOptionsMenu"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Buttons, makeDecoratable } from \"@webiny/app-admin\";\n\nimport { useContentEntryEditorConfig } from \"~/admin/config/contentEntries\";\n\nimport { ContentFormOptionsMenu } from \"./ContentFormOptionsMenu\";\nimport { RevisionSelector } from \"~/admin/components/ContentEntryForm/Header/RevisionSelector\";\nimport styled from \"@emotion/styled\";\nimport { Helmet } from \"react-helmet\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks\";\n\nconst ToolbarGrid = styled.div`\n padding: 15px;\n border-bottom: 1px solid var(--mdc-theme-on-background);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Actions = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const Header = makeDecoratable(\"ContentEntryFormHeader\", () => {\n const { buttonActions } = useContentEntryEditorConfig();\n const { entry } = useContentEntry();\n\n return (\n <ToolbarGrid id=\"headerToolbarGrid\">\n {entry.meta?.title ? <Helmet title={entry.meta.title} /> : null}\n <div>\n <RevisionSelector />\n </div>\n <Actions>\n <Buttons actions={buttonActions} />\n <ContentFormOptionsMenu />\n </Actions>\n </ToolbarGrid>\n );\n});\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AAEA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAqE,SAAAO,iCAAA;AAErE,IAAMC,WAAW,oBAAAC,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAMhB;AAED,IAAMa,OAAO,oBAAAX,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAGZ;AAEM,IAAMc,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,yBAAe,EAAC,wBAAwB,EAAE,YAAM;EAClE,IAAAC,qBAAA,GAA0B,IAAAC,2CAA2B,EAAC,CAAC;IAA/CC,aAAa,GAAAF,qBAAA,CAAbE,aAAa;EACrB,IAAAC,gBAAA,GAAkB,IAAAC,sBAAe,EAAC,CAAC;IAA3BC,KAAK,GAAAF,gBAAA,CAALE,KAAK;EAEb,oBACI/B,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAACtB,WAAW;IAACuB,EAAE,EAAC;EAAmB,GAC9BF,KAAK,CAACG,IAAI,EAAEC,KAAK,gBAAGnC,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAACzB,YAAA,CAAA6B,MAAM;IAACD,KAAK,EAAEJ,KAAK,CAACG,IAAI,CAACC;EAAM,CAAE,CAAC,GAAG,IAAI,eAC/DnC,MAAA,CAAAY,OAAA,CAAAoB,aAAA,2BACIhC,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAA+B,gBAAgB,MAAE,CAClB,CAAC,eACNrC,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAACV,OAAO,qBACJtB,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAAC7B,SAAA,CAAAmC,OAAO;IAACC,OAAO,EAAEX;EAAc,CAAE,CAAC,eACnC5B,MAAA,CAAAY,OAAA,CAAAoB,aAAA,CAAC3B,uBAAA,CAAAmC,sBAAsB,MAAE,CACpB,CACA,CAAC;AAEtB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare global {
|
|
3
|
+
namespace JSX {
|
|
4
|
+
interface IntrinsicElements {
|
|
5
|
+
"hcms-field-validation-scope": {
|
|
6
|
+
"data-path": string;
|
|
7
|
+
"data-field-type": string;
|
|
8
|
+
"data-field-multiple-values": string;
|
|
9
|
+
"data-field-renderer": string;
|
|
10
|
+
style: React.CSSProperties;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export declare const createValidationScope: (path: string) => ({ children }: {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}) => React.JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createValidationScope = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _ModelFieldProvider = require("../ModelFieldProvider");
|
|
10
|
+
var validationScopeStyles = {
|
|
11
|
+
display: "inherit"
|
|
12
|
+
};
|
|
13
|
+
var createValidationScope = exports.createValidationScope = function createValidationScope(path) {
|
|
14
|
+
return function ValidationScope(_ref) {
|
|
15
|
+
var children = _ref.children;
|
|
16
|
+
var _useModelField = (0, _ModelFieldProvider.useModelField)(),
|
|
17
|
+
field = _useModelField.field;
|
|
18
|
+
if (field.multipleValues === undefined) {
|
|
19
|
+
field.multipleValues = false;
|
|
20
|
+
}
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement("hcms-field-validation-scope", {
|
|
22
|
+
style: validationScopeStyles,
|
|
23
|
+
"data-path": path,
|
|
24
|
+
"data-field-type": field.type,
|
|
25
|
+
"data-field-multiple-values": String(field.multipleValues),
|
|
26
|
+
"data-field-renderer": String(field.renderer.name)
|
|
27
|
+
}, children);
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=createValidationScope.js.map
|