@webiny/app-admin 6.3.0-beta.2 → 6.3.0-beta.4
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/base/Base/DefaultFieldRenderers.js +69 -5
- package/base/Base/DefaultFieldRenderers.js.map +1 -1
- package/base/Base/DefaultLayoutRenderers.js +5 -1
- package/base/Base/DefaultLayoutRenderers.js.map +1 -1
- package/base/Base/FieldRenderers/CheckboxesRenderer.d.ts +13 -0
- package/base/Base/FieldRenderers/CheckboxesRenderer.js +28 -0
- package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/CodeEditorRenderer.d.ts +15 -0
- package/base/Base/FieldRenderers/CodeEditorRenderer.js +17 -0
- package/base/Base/FieldRenderers/CodeEditorRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/DateTimeInputsRenderer.d.ts +17 -0
- package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +66 -0
- package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/DateTimeRenderer.d.ts +21 -0
- package/base/Base/FieldRenderers/DateTimeRenderer.js +46 -0
- package/base/Base/FieldRenderers/DateTimeRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/FilePickerRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/FilePickerRenderer.js +47 -0
- package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/FileUrlPickerRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +25 -0
- package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/HiddenRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/HiddenRenderer.js +5 -0
- package/base/Base/FieldRenderers/HiddenRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +5 -0
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +27 -0
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/InputRenderer.d.ts +4 -7
- package/base/Base/FieldRenderers/InputRenderer.js +2 -2
- package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/NumberInputRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/NumberInputRenderer.js +23 -0
- package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/NumberInputsRenderer.d.ts +14 -0
- package/base/Base/FieldRenderers/NumberInputsRenderer.js +49 -0
- package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +14 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +20 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.d.ts +14 -0
- package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +65 -0
- package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +10 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +109 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +17 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +55 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +7 -3
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +15 -19
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +5 -8
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +7 -50
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +10 -0
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +64 -0
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.d.ts +10 -0
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +85 -0
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -0
- package/base/Base/FieldRenderers/PassthroughRenderer.d.ts +3 -6
- package/base/Base/FieldRenderers/PassthroughRenderer.js +9 -23
- package/base/Base/FieldRenderers/PassthroughRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/RadioButtonsRenderer.d.ts +13 -0
- package/base/Base/FieldRenderers/RadioButtonsRenderer.js +27 -0
- package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -8
- package/base/Base/FieldRenderers/SelectRenderer.js +8 -5
- package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/SwitchRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/SwitchRenderer.js +19 -0
- package/base/Base/FieldRenderers/SwitchRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/TagsRenderer.d.ts +12 -0
- package/base/Base/FieldRenderers/TagsRenderer.js +21 -0
- package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/TextInputsRenderer.d.ts +14 -0
- package/base/Base/FieldRenderers/TextInputsRenderer.js +48 -0
- package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/TextareaRenderer.d.ts +3 -6
- package/base/Base/FieldRenderers/TextareaRenderer.js +3 -4
- package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TextareasRenderer.d.ts +14 -0
- package/base/Base/FieldRenderers/TextareasRenderer.js +51 -0
- package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js +2 -2
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js.map +1 -1
- package/base/Base/Menus.js +5 -64
- package/base/Base/Menus.js.map +1 -1
- package/base/Base/RoutesConfig.js +6 -0
- package/base/Base/RoutesConfig.js.map +1 -1
- package/exports/admin/build-params.d.ts +2 -0
- package/exports/admin/build-params.js +3 -0
- package/exports/admin/build-params.js.map +1 -1
- package/exports/admin/form.d.ts +5 -0
- package/exports/admin/form.js +8 -0
- package/exports/admin/form.js.map +1 -1
- package/exports/admin/ui.d.ts +1 -0
- package/exports/admin/ui.js +1 -0
- package/exports/admin/ui.js.map +1 -1
- package/exports/admin.d.ts +3 -1
- package/exports/admin.js +3 -1
- package/exports/admin.js.map +1 -1
- package/features/formModel/ConditionRuleEvaluator.d.ts +9 -0
- package/features/formModel/ConditionRuleEvaluator.js +56 -0
- package/features/formModel/ConditionRuleEvaluator.js.map +1 -0
- package/features/formModel/Field.d.ts +50 -4
- package/features/formModel/Field.js +254 -35
- package/features/formModel/Field.js.map +1 -1
- package/features/formModel/FieldBuilder.d.ts +17 -35
- package/features/formModel/FieldBuilder.js +63 -100
- package/features/formModel/FieldBuilder.js.map +1 -1
- package/features/formModel/FieldBuilder.test.js +127 -13
- package/features/formModel/FieldBuilder.test.js.map +1 -1
- package/features/formModel/FieldBuilderRegistry.d.ts +4 -0
- package/features/formModel/FieldBuilderRegistry.js +31 -0
- package/features/formModel/FieldBuilderRegistry.js.map +1 -0
- package/features/formModel/FocusManager.d.ts +14 -0
- package/features/formModel/FocusManager.js +109 -0
- package/features/formModel/FocusManager.js.map +1 -0
- package/features/formModel/FormModel.d.ts +27 -31
- package/features/formModel/FormModel.js +210 -403
- package/features/formModel/FormModel.js.map +1 -1
- package/features/formModel/FormModel.test.js +2044 -193
- package/features/formModel/FormModel.test.js.map +1 -1
- package/features/formModel/FormModelFactory.d.ts +4 -2
- package/features/formModel/FormModelFactory.js +13 -3
- package/features/formModel/FormModelFactory.js.map +1 -1
- package/features/formModel/FormView.d.ts +2 -0
- package/features/formModel/FormView.js +44 -37
- package/features/formModel/FormView.js.map +1 -1
- package/features/formModel/LayoutBuilderFactory.d.ts +61 -0
- package/features/formModel/LayoutBuilderFactory.js +386 -0
- package/features/formModel/LayoutBuilderFactory.js.map +1 -0
- package/features/formModel/LayoutMutator.d.ts +11 -0
- package/features/formModel/LayoutMutator.js +136 -0
- package/features/formModel/LayoutMutator.js.map +1 -0
- package/features/formModel/LayoutResolver.d.ts +26 -0
- package/features/formModel/LayoutResolver.js +239 -0
- package/features/formModel/LayoutResolver.js.map +1 -0
- package/features/formModel/ObjectField.d.ts +55 -4
- package/features/formModel/ObjectField.js +499 -82
- package/features/formModel/ObjectField.js.map +1 -1
- package/features/formModel/Rules.test.d.ts +1 -0
- package/features/formModel/Rules.test.js +289 -0
- package/features/formModel/Rules.test.js.map +1 -0
- package/features/formModel/abstractions.d.ts +402 -52
- package/features/formModel/abstractions.js +55 -0
- package/features/formModel/abstractions.js.map +1 -1
- package/features/formModel/createFieldRenderer.d.ts +20 -0
- package/features/formModel/createFieldRenderer.js +15 -0
- package/features/formModel/createFieldRenderer.js.map +1 -0
- package/features/formModel/demo/FieldRenderersDemoPresenter.d.ts +18 -0
- package/features/formModel/demo/FieldRenderersDemoPresenter.js +225 -0
- package/features/formModel/demo/FieldRenderersDemoPresenter.js.map +1 -0
- package/features/formModel/demo/FormModelDemo.d.ts +4 -0
- package/features/formModel/demo/FormModelDemo.js +230 -0
- package/features/formModel/demo/FormModelDemo.js.map +1 -0
- package/features/formModel/demo/FormModelDemoPresenter.d.ts +22 -0
- package/features/formModel/demo/FormModelDemoPresenter.js +121 -0
- package/features/formModel/demo/FormModelDemoPresenter.js.map +1 -0
- package/features/formModel/demo/FormModelPhase11Presenter.d.ts +25 -0
- package/features/formModel/demo/FormModelPhase11Presenter.js +104 -0
- package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -0
- package/features/formModel/demo/FormModelPhase8c1Presenter.d.ts +23 -0
- package/features/formModel/demo/FormModelPhase8c1Presenter.js +62 -0
- package/features/formModel/demo/FormModelPhase8c1Presenter.js.map +1 -0
- package/features/formModel/feature.js +12 -0
- package/features/formModel/feature.js.map +1 -1
- package/features/formModel/fieldTypes/BooleanFieldType.d.ts +19 -0
- package/features/formModel/fieldTypes/BooleanFieldType.js +23 -0
- package/features/formModel/fieldTypes/BooleanFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/DateTimeFieldType.d.ts +173 -0
- package/features/formModel/fieldTypes/DateTimeFieldType.js +369 -0
- package/features/formModel/fieldTypes/DateTimeFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/FileFieldType.d.ts +18 -0
- package/features/formModel/fieldTypes/FileFieldType.js +20 -0
- package/features/formModel/fieldTypes/FileFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/FileUrlFieldType.d.ts +18 -0
- package/features/formModel/fieldTypes/FileUrlFieldType.js +20 -0
- package/features/formModel/fieldTypes/FileUrlFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/NumberFieldType.d.ts +19 -0
- package/features/formModel/fieldTypes/NumberFieldType.js +27 -0
- package/features/formModel/fieldTypes/NumberFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/ObjectFieldType.d.ts +34 -0
- package/features/formModel/fieldTypes/ObjectFieldType.js +109 -0
- package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/TextFieldType.d.ts +18 -0
- package/features/formModel/fieldTypes/TextFieldType.js +20 -0
- package/features/formModel/fieldTypes/TextFieldType.js.map +1 -0
- package/features/formModel/fieldTypes/index.d.ts +7 -0
- package/features/formModel/fieldTypes/index.js +9 -0
- package/features/formModel/fieldTypes/index.js.map +1 -0
- package/features/formModel/index.d.ts +13 -4
- package/features/formModel/index.js +21 -2
- package/features/formModel/index.js.map +1 -1
- package/features/formModel/renderers.d.ts +15 -1
- package/features/formModel/renderers.js +15 -1
- package/features/formModel/renderers.js.map +1 -1
- package/features/tools/LexicalContext/LexicalContext.d.ts +14 -0
- package/features/tools/LexicalContext/LexicalContext.js +22 -0
- package/features/tools/LexicalContext/LexicalContext.js.map +1 -0
- package/features/tools/LexicalContext/abstractions.d.ts +11 -0
- package/features/tools/LexicalContext/abstractions.js +4 -0
- package/features/tools/LexicalContext/abstractions.js.map +1 -0
- package/features/tools/LexicalContext/index.d.ts +2 -0
- package/features/tools/LexicalContext/index.js +3 -0
- package/features/tools/LexicalContext/index.js.map +1 -0
- package/features/tools/feature.js +2 -0
- package/features/tools/feature.js.map +1 -1
- package/features/tools/index.d.ts +1 -0
- package/features/tools/index.js +1 -0
- package/features/tools/index.js.map +1 -1
- package/index.d.ts +8 -1
- package/index.js +7 -0
- package/index.js.map +1 -1
- package/package.json +30 -24
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +1 -1
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +1 -1
- package/presentation/lexicalContext/useLexicalContext.d.ts +3 -0
- package/presentation/lexicalContext/useLexicalContext.js +14 -0
- package/presentation/lexicalContext/useLexicalContext.js.map +1 -0
- package/presentation/textToLexicalTool/TextToLexicalTool.d.ts +3 -0
- package/presentation/textToLexicalTool/TextToLexicalTool.js +6 -2
- package/presentation/textToLexicalTool/TextToLexicalTool.js.map +1 -1
- package/presentation/textToLexicalTool/textToLexicalState.d.ts +2 -1
- package/presentation/textToLexicalTool/textToLexicalState.js +15 -3
- package/presentation/textToLexicalTool/textToLexicalState.js.map +1 -1
- package/routes.d.ts +1 -0
- package/routes.js +4 -0
- package/routes.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.d.ts +0 -21
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js +0 -28
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","observer","Accordion","Button","IconButton","ReactComponent","DeleteIcon","ArrowUp","ArrowDown","
|
|
1
|
+
{"version":3,"names":["React","observer","Accordion","Button","IconButton","ReactComponent","DeleteIcon","ArrowUp","ArrowDown","LayoutNodeRenderer","resolveItemTitle","isObjectFieldVM","field","type","NestedLayout","layout","createElement","className","map","node","index","key","ListItemRenderer","item","total","label","itemTitle","disabled","actions","Fragment","icon","onClick","e","stopPropagation","moveDown","variant","moveUp","Item","Action","Separator","remove","background","openClosedIndicatorPosition","title","defaultOpen","AddItemButton","onAdd","text","size"],"sources":["ObjectFieldComponents.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion, Button, IconButton } from \"@webiny/admin-ui\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete_outline.svg\";\nimport { ReactComponent as ArrowUp } from \"@webiny/icons/arrow_upward.svg\";\nimport { ReactComponent as ArrowDown } from \"@webiny/icons/arrow_downward.svg\";\nimport type {\n IFieldVM,\n IObjectFieldVM,\n IObjectFieldItemVM,\n LayoutNodeVM\n} from \"~/features/formModel/index.js\";\nimport { LayoutNodeRenderer } from \"~/features/formModel/FormView.js\";\nimport { resolveItemTitle } from \"./resolveItemTitle.js\";\n\nexport const isObjectFieldVM = (field: IFieldVM): field is IObjectFieldVM => {\n return field.type === \"object\";\n};\n\n/**\n * Walks a resolved layout sub-tree. Used by dynamic-zone renderers to render\n * a templated object's children via per-template layouts (Phase 8c).\n */\nexport const NestedLayout = observer(({ layout }: { layout: LayoutNodeVM[] }) => {\n return (\n <div className={\"flex flex-col gap-md\"}>\n {layout.map((node, index) => (\n <LayoutNodeRenderer key={index} node={node} />\n ))}\n </div>\n );\n});\n\nexport interface ListItemRendererProps {\n item: IObjectFieldItemVM;\n index: number;\n total: number;\n label?: string;\n itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);\n disabled: boolean;\n}\n\nexport const ListItemRenderer = observer(\n ({ item, index, total, label, itemTitle, disabled }: ListItemRendererProps) => {\n const actions = (\n <>\n <IconButton\n icon={<ArrowDown />}\n onClick={e => {\n e.stopPropagation();\n item.moveDown();\n }}\n variant=\"ghost\"\n disabled={index === total - 1}\n />\n <IconButton\n icon={<ArrowUp />}\n onClick={e => {\n e.stopPropagation();\n item.moveUp();\n }}\n variant=\"ghost\"\n disabled={index === 0}\n />\n <Accordion.Item.Action.Separator />\n <IconButton\n icon={<DeleteIcon />}\n onClick={e => {\n e.stopPropagation();\n item.remove();\n }}\n variant=\"ghost\"\n />\n </>\n );\n\n return (\n <Accordion\n background={\"base\"}\n variant={\"container\"}\n openClosedIndicatorPosition={\"left\"}\n >\n <Accordion.Item\n title={resolveItemTitle(item, index, label, itemTitle)}\n actions={disabled ? null : actions}\n defaultOpen={false}\n >\n <NestedLayout layout={item.layout} />\n </Accordion.Item>\n </Accordion>\n );\n }\n);\n\nexport interface AddItemButtonProps {\n label?: string;\n disabled: boolean;\n onAdd: () => void;\n}\n\nexport const AddItemButton = ({ label, disabled, onAdd }: AddItemButtonProps) => {\n return (\n <div>\n <Button\n text={label || \"Add Item\"}\n variant={\"secondary\"}\n size={\"sm\"}\n onClick={onAdd}\n disabled={disabled}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { IFieldVM } from "../../../../features/formModel/index.js";
|
|
3
2
|
declare module "../../../../features/formModel/abstractions.js" {
|
|
4
3
|
interface IFieldRendererRegistry {
|
|
5
|
-
|
|
4
|
+
objectAccordionSingle: {
|
|
6
5
|
fieldType: "object";
|
|
7
6
|
settings?: {
|
|
8
|
-
|
|
7
|
+
open?: boolean;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
export declare const ObjectRenderer:
|
|
14
|
-
field: IFieldVM;
|
|
15
|
-
}
|
|
16
|
-
displayName: string;
|
|
17
|
-
};
|
|
12
|
+
export declare const ObjectRenderer: React.ComponentType<{
|
|
13
|
+
field: import("../../../../index.js").IFieldVM;
|
|
14
|
+
}>;
|
|
@@ -1,23 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { observer } from "mobx-react-lite";
|
|
3
2
|
import { Accordion } from "@webiny/admin-ui";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}) => {
|
|
8
|
-
if (!isObjectFieldVM(field)) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
if (field.isList) {
|
|
12
|
-
return /*#__PURE__*/React.createElement(ListObjectRenderer, {
|
|
13
|
-
field: field
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
return /*#__PURE__*/React.createElement(SingleObjectRenderer, {
|
|
17
|
-
field: field
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
const SingleObjectRenderer = observer(({
|
|
3
|
+
import { createObjectFieldRenderer } from "../../../../features/formModel/createFieldRenderer.js";
|
|
4
|
+
import { NestedLayout } from "./ObjectFieldComponents.js";
|
|
5
|
+
export const ObjectRenderer = createObjectFieldRenderer(({
|
|
21
6
|
field
|
|
22
7
|
}) => {
|
|
23
8
|
return /*#__PURE__*/React.createElement(Accordion, {
|
|
@@ -25,39 +10,11 @@ const SingleObjectRenderer = observer(({
|
|
|
25
10
|
variant: "container"
|
|
26
11
|
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
27
12
|
title: field.label,
|
|
28
|
-
defaultOpen: true
|
|
29
|
-
|
|
30
|
-
|
|
13
|
+
defaultOpen: true,
|
|
14
|
+
className: "pl-sm"
|
|
15
|
+
}, /*#__PURE__*/React.createElement(NestedLayout, {
|
|
16
|
+
layout: field.layout
|
|
31
17
|
})));
|
|
32
18
|
});
|
|
33
|
-
const ListObjectRenderer = observer(({
|
|
34
|
-
field
|
|
35
|
-
}) => {
|
|
36
|
-
const label = `${field.label || ""} ${field.items.length ? `(${field.items.length})` : ""}`;
|
|
37
|
-
const settings = field.rendererSettings;
|
|
38
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
39
|
-
className: "flex flex-col gap-sm"
|
|
40
|
-
}, /*#__PURE__*/React.createElement(Accordion, {
|
|
41
|
-
background: "base",
|
|
42
|
-
variant: "container"
|
|
43
|
-
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
44
|
-
title: label,
|
|
45
|
-
defaultOpen: true
|
|
46
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
-
className: "flex flex-col gap-sm"
|
|
48
|
-
}, field.items.map((item, index) => /*#__PURE__*/React.createElement(ListItemRenderer, {
|
|
49
|
-
key: item.key,
|
|
50
|
-
item: item,
|
|
51
|
-
index: index,
|
|
52
|
-
total: field.items.length,
|
|
53
|
-
label: field.label,
|
|
54
|
-
itemTitle: settings?.itemTitle,
|
|
55
|
-
disabled: field.disabled
|
|
56
|
-
}))))), /*#__PURE__*/React.createElement(AddItemButton, {
|
|
57
|
-
label: `Add ${field.label || "Item"}`,
|
|
58
|
-
disabled: field.disabled,
|
|
59
|
-
onAdd: () => field.addItem()
|
|
60
|
-
}));
|
|
61
|
-
});
|
|
62
19
|
|
|
63
20
|
//# sourceMappingURL=ObjectRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","Accordion","createObjectFieldRenderer","NestedLayout","ObjectRenderer","field","createElement","background","variant","Item","title","label","defaultOpen","className","layout"],"sources":["ObjectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport { createObjectFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { NestedLayout } from \"./ObjectFieldComponents.js\";\n\ndeclare module \"../../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n }\n}\n\nexport const ObjectRenderer = createObjectFieldRenderer<\"objectAccordionSingle\">(({ field }) => {\n return (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item title={field.label} defaultOpen={true} className={\"pl-sm\"}>\n <NestedLayout layout={field.layout} />\n </Accordion.Item>\n </Accordion>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,yBAAyB;AAClC,SAASC,YAAY;AAarB,OAAO,MAAMC,cAAc,GAAGF,yBAAyB,CAA0B,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC5F,oBACIL,KAAA,CAAAM,aAAA,CAACL,SAAS;IAACM,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChDR,KAAA,CAAAM,aAAA,CAACL,SAAS,CAACQ,IAAI;IAACC,KAAK,EAAEL,KAAK,CAACM,KAAM;IAACC,WAAW,EAAE,IAAK;IAACC,SAAS,EAAE;EAAQ,gBACtEb,KAAA,CAAAM,aAAA,CAACH,YAAY;IAACW,MAAM,EAAET,KAAK,CAACS;EAAO,CAAE,CACzB,CACT,CAAC;AAEpB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IObjectFieldVM } from "../../../../features/formModel/index.js";
|
|
3
|
+
interface SingleValueDynamicZoneProps {
|
|
4
|
+
field: IObjectFieldVM;
|
|
5
|
+
showContainer?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const SingleValueDynamicZone: (({ field, showContainer }: SingleValueDynamicZoneProps) => React.JSX.Element) & {
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { Accordion, Tooltip } from "@webiny/admin-ui";
|
|
4
|
+
import { ReactComponent as DeleteIcon } from "@webiny/icons/delete.svg";
|
|
5
|
+
import { ReactComponent as HorizontalRuleIcon } from "@webiny/icons/horizontal_rule.svg";
|
|
6
|
+
import { useConfirmationDialog } from "../../../../hooks/useConfirmationDialog.js";
|
|
7
|
+
import { NestedLayout } from "./ObjectFieldComponents.js";
|
|
8
|
+
import { AddTemplateButton } from "./TemplatePicker.js";
|
|
9
|
+
export const SingleValueDynamicZone = observer(({
|
|
10
|
+
field,
|
|
11
|
+
showContainer = true
|
|
12
|
+
}) => {
|
|
13
|
+
const activeTemplate = field.activeTemplateId !== null ? field.availableTemplates.find(t => t.id === field.activeTemplateId) : undefined;
|
|
14
|
+
const {
|
|
15
|
+
showConfirmation
|
|
16
|
+
} = useConfirmationDialog({
|
|
17
|
+
title: "Remove template",
|
|
18
|
+
message: "Are you sure you want to remove this item? This action is not reversible.",
|
|
19
|
+
acceptLabel: "Yes, I'm sure!",
|
|
20
|
+
cancelLabel: "No, leave it."
|
|
21
|
+
});
|
|
22
|
+
const onClear = () => {
|
|
23
|
+
showConfirmation(() => {
|
|
24
|
+
field.onChange(null);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
const content = /*#__PURE__*/React.createElement(React.Fragment, null, activeTemplate ? /*#__PURE__*/React.createElement(Accordion, {
|
|
28
|
+
background: "base",
|
|
29
|
+
variant: "container"
|
|
30
|
+
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
31
|
+
title: activeTemplate.label,
|
|
32
|
+
actions: field.disabled ? null : /*#__PURE__*/React.createElement(Accordion.Item.Action, {
|
|
33
|
+
icon: /*#__PURE__*/React.createElement(Tooltip, {
|
|
34
|
+
trigger: /*#__PURE__*/React.createElement(DeleteIcon, null),
|
|
35
|
+
content: "Delete"
|
|
36
|
+
}),
|
|
37
|
+
onClick: onClear
|
|
38
|
+
})
|
|
39
|
+
}, /*#__PURE__*/React.createElement(NestedLayout, {
|
|
40
|
+
layout: field.layout
|
|
41
|
+
}))) : null, !activeTemplate && !field.disabled && /*#__PURE__*/React.createElement(AddTemplateButton, {
|
|
42
|
+
templates: field.availableTemplates,
|
|
43
|
+
onSelect: template => field.setTemplate(template.id)
|
|
44
|
+
}));
|
|
45
|
+
if (!showContainer) {
|
|
46
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: "flex flex-col gap-lg"
|
|
48
|
+
}, content);
|
|
49
|
+
}
|
|
50
|
+
return /*#__PURE__*/React.createElement(Accordion, {
|
|
51
|
+
background: "base",
|
|
52
|
+
variant: "container"
|
|
53
|
+
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
54
|
+
icon: /*#__PURE__*/React.createElement(Accordion.Item.Icon, {
|
|
55
|
+
color: "accent",
|
|
56
|
+
label: "Dynamic Zone",
|
|
57
|
+
icon: /*#__PURE__*/React.createElement(HorizontalRuleIcon, null)
|
|
58
|
+
}),
|
|
59
|
+
title: field.label,
|
|
60
|
+
defaultOpen: true
|
|
61
|
+
}, content));
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=SingleValueDynamicZone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","observer","Accordion","Tooltip","ReactComponent","DeleteIcon","HorizontalRuleIcon","useConfirmationDialog","NestedLayout","AddTemplateButton","SingleValueDynamicZone","field","showContainer","activeTemplate","activeTemplateId","availableTemplates","find","t","id","undefined","showConfirmation","title","message","acceptLabel","cancelLabel","onClear","onChange","content","createElement","Fragment","background","variant","Item","label","actions","disabled","Action","icon","trigger","onClick","layout","templates","onSelect","template","setTemplate","className","Icon","color","defaultOpen"],"sources":["SingleValueDynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion, Tooltip } from \"@webiny/admin-ui\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as HorizontalRuleIcon } from \"@webiny/icons/horizontal_rule.svg\";\nimport type { IObjectFieldVM } from \"~/features/formModel/index.js\";\nimport { useConfirmationDialog } from \"~/hooks/useConfirmationDialog.js\";\nimport { NestedLayout } from \"./ObjectFieldComponents.js\";\nimport { AddTemplateButton } from \"./TemplatePicker.js\";\n\ninterface SingleValueDynamicZoneProps {\n field: IObjectFieldVM;\n showContainer?: boolean;\n}\n\nexport const SingleValueDynamicZone = observer(\n ({ field, showContainer = true }: SingleValueDynamicZoneProps) => {\n const activeTemplate =\n field.activeTemplateId !== null\n ? field.availableTemplates.find(t => t.id === field.activeTemplateId)\n : undefined;\n\n const { showConfirmation } = useConfirmationDialog({\n title: \"Remove template\",\n message: \"Are you sure you want to remove this item? This action is not reversible.\",\n acceptLabel: \"Yes, I'm sure!\",\n cancelLabel: \"No, leave it.\"\n });\n\n const onClear = () => {\n showConfirmation(() => {\n field.onChange(null);\n });\n };\n\n const content = (\n <>\n {activeTemplate ? (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item\n title={activeTemplate.label}\n actions={\n field.disabled ? null : (\n <Accordion.Item.Action\n icon={\n <Tooltip trigger={<DeleteIcon />} content={\"Delete\"} />\n }\n onClick={onClear}\n />\n )\n }\n >\n <NestedLayout layout={field.layout} />\n </Accordion.Item>\n </Accordion>\n ) : null}\n {!activeTemplate && !field.disabled && (\n <AddTemplateButton\n templates={field.availableTemplates}\n onSelect={template => field.setTemplate(template.id)}\n />\n )}\n </>\n );\n\n if (!showContainer) {\n return <div className={\"flex flex-col gap-lg\"}>{content}</div>;\n }\n\n return (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n color={\"accent\"}\n label={\"Dynamic Zone\"}\n icon={<HorizontalRuleIcon />}\n />\n }\n title={field.label}\n defaultOpen={true}\n >\n {content}\n </Accordion.Item>\n </Accordion>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ITemplateVM } from "../../../../features/formModel/index.js";
|
|
3
|
+
export interface AddTemplateButtonProps {
|
|
4
|
+
templates: ITemplateVM[];
|
|
5
|
+
onSelect: (template: ITemplateVM) => void;
|
|
6
|
+
label?: string;
|
|
7
|
+
size?: "sm" | "md" | "lg";
|
|
8
|
+
variant?: "primary" | "secondary" | "tertiary";
|
|
9
|
+
}
|
|
10
|
+
export declare const AddTemplateButton: ({ templates, onSelect, label, size, variant }: AddTemplateButtonProps) => React.JSX.Element;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
3
|
+
import { Button, Dialog, Text } from "@webiny/admin-ui";
|
|
4
|
+
import { ReactComponent as AddIcon } from "@webiny/icons/add.svg";
|
|
5
|
+
import { ReactComponent as PlusIcon } from "@webiny/icons/add_circle_outline.svg";
|
|
6
|
+
const normalizeIcon = icon => {
|
|
7
|
+
if (!icon) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return icon.name.split("/");
|
|
11
|
+
};
|
|
12
|
+
export const AddTemplateButton = ({
|
|
13
|
+
templates,
|
|
14
|
+
onSelect,
|
|
15
|
+
label = "Add a template",
|
|
16
|
+
size = "sm",
|
|
17
|
+
variant = "tertiary"
|
|
18
|
+
}) => {
|
|
19
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
20
|
+
className: "flex justify-between items-center"
|
|
21
|
+
}, /*#__PURE__*/React.createElement(Dialog, {
|
|
22
|
+
size: "lg",
|
|
23
|
+
className: "w-[800px]",
|
|
24
|
+
trigger: /*#__PURE__*/React.createElement(Button, {
|
|
25
|
+
size: size,
|
|
26
|
+
variant: variant,
|
|
27
|
+
text: label,
|
|
28
|
+
icon: /*#__PURE__*/React.createElement(AddIcon, null)
|
|
29
|
+
}),
|
|
30
|
+
title: "Insert a template",
|
|
31
|
+
info: /*#__PURE__*/React.createElement(React.Fragment, null)
|
|
32
|
+
}, /*#__PURE__*/React.createElement(TemplateGallery, {
|
|
33
|
+
templates: templates,
|
|
34
|
+
onSelect: onSelect
|
|
35
|
+
})));
|
|
36
|
+
};
|
|
37
|
+
const TemplateGallery = ({
|
|
38
|
+
templates,
|
|
39
|
+
onSelect
|
|
40
|
+
}) => {
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: "gap-md flex flex-wrap p-xs"
|
|
43
|
+
}, templates.map(template => /*#__PURE__*/React.createElement(TemplateCard, {
|
|
44
|
+
key: template.id,
|
|
45
|
+
template: template,
|
|
46
|
+
onSelect: onSelect
|
|
47
|
+
})));
|
|
48
|
+
};
|
|
49
|
+
const TemplateCard = ({
|
|
50
|
+
template,
|
|
51
|
+
onSelect
|
|
52
|
+
}) => {
|
|
53
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
54
|
+
const icon = normalizeIcon(template.icon);
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
onMouseEnter: () => setIsHovered(true),
|
|
57
|
+
onMouseLeave: () => setIsHovered(false),
|
|
58
|
+
className: "flex flex-col justify-between bg-neutral-base overflow-hidden rounded-lg w-[173px] relative shadow-sm"
|
|
59
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
className: "flex items-center justify-center py-xxl w-full bg-neutral-dimmed"
|
|
61
|
+
}, icon ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
62
|
+
className: "text-neutral-xstrong",
|
|
63
|
+
icon: icon,
|
|
64
|
+
style: {
|
|
65
|
+
width: 40,
|
|
66
|
+
height: 40
|
|
67
|
+
}
|
|
68
|
+
}) : null), /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: "py-sm-extra px-md"
|
|
70
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
71
|
+
size: "md",
|
|
72
|
+
className: "mb-xs text-neutral-primary font-semibold"
|
|
73
|
+
}, template.label))), isHovered && /*#__PURE__*/React.createElement(Dialog.Close, {
|
|
74
|
+
asChild: true
|
|
75
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
76
|
+
className: "absolute inset-0 flex items-center justify-center bg-white/80 cursor-pointer",
|
|
77
|
+
onClick: () => onSelect(template)
|
|
78
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
79
|
+
size: "lg",
|
|
80
|
+
variant: "primary",
|
|
81
|
+
icon: /*#__PURE__*/React.createElement(PlusIcon, null)
|
|
82
|
+
}, "Insert"))));
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=TemplatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","FontAwesomeIcon","Button","Dialog","Text","ReactComponent","AddIcon","PlusIcon","normalizeIcon","icon","undefined","name","split","AddTemplateButton","templates","onSelect","label","size","variant","createElement","className","trigger","text","title","info","Fragment","TemplateGallery","map","template","TemplateCard","key","id","isHovered","setIsHovered","onMouseEnter","onMouseLeave","style","width","height","Close","asChild","onClick"],"sources":["TemplatePicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { Button, Dialog, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as PlusIcon } from \"@webiny/icons/add_circle_outline.svg\";\nimport type { ITemplateIcon, ITemplateVM } from \"~/features/formModel/index.js\";\n\nconst normalizeIcon = (icon: ITemplateIcon | undefined): IconProp | undefined => {\n if (!icon) {\n return undefined;\n }\n return icon.name.split(\"/\") as IconProp;\n};\n\nexport interface AddTemplateButtonProps {\n templates: ITemplateVM[];\n onSelect: (template: ITemplateVM) => void;\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nexport const AddTemplateButton = ({\n templates,\n onSelect,\n label = \"Add a template\",\n size = \"sm\",\n variant = \"tertiary\"\n}: AddTemplateButtonProps) => {\n return (\n <div className={\"flex justify-between items-center\"}>\n <Dialog\n size={\"lg\"}\n className={\"w-[800px]\"}\n trigger={<Button size={size} variant={variant} text={label} icon={<AddIcon />} />}\n title={\"Insert a template\"}\n info={<></>}\n >\n <TemplateGallery templates={templates} onSelect={onSelect} />\n </Dialog>\n </div>\n );\n};\n\ninterface TemplateGalleryProps {\n templates: ITemplateVM[];\n onSelect: (template: ITemplateVM) => void;\n}\n\nconst TemplateGallery = ({ templates, onSelect }: TemplateGalleryProps) => {\n return (\n <div className={\"gap-md flex flex-wrap p-xs\"}>\n {templates.map(template => (\n <TemplateCard key={template.id} template={template} onSelect={onSelect} />\n ))}\n </div>\n );\n};\n\ninterface TemplateCardProps {\n template: ITemplateVM;\n onSelect: (template: ITemplateVM) => void;\n}\n\nconst TemplateCard = ({ template, onSelect }: TemplateCardProps) => {\n const [isHovered, setIsHovered] = useState(false);\n const icon = normalizeIcon(template.icon);\n\n return (\n <div\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={\n \"flex flex-col justify-between bg-neutral-base overflow-hidden rounded-lg w-[173px] relative shadow-sm\"\n }\n >\n <div>\n <div className={\"flex items-center justify-center py-xxl w-full bg-neutral-dimmed\"}>\n {icon ? (\n <FontAwesomeIcon\n className={\"text-neutral-xstrong\"}\n icon={icon}\n style={{ width: 40, height: 40 }}\n />\n ) : null}\n </div>\n <div className={\"py-sm-extra px-md\"}>\n <Text size={\"md\"} className={\"mb-xs text-neutral-primary font-semibold\"}>\n {template.label}\n </Text>\n </div>\n </div>\n\n {isHovered && (\n <Dialog.Close asChild>\n <div\n className={\n \"absolute inset-0 flex items-center justify-center bg-white/80 cursor-pointer\"\n }\n onClick={() => onSelect(template)}\n >\n <Button size={\"lg\"} variant={\"primary\"} icon={<PlusIcon />}>\n Insert\n </Button>\n </div>\n </Dialog.Close>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { IFieldVM } from "../../../features/formModel/index.js";
|
|
3
2
|
declare module "../../../features/formModel/abstractions.js" {
|
|
4
3
|
interface IFieldRendererRegistry {
|
|
5
4
|
passthrough: {
|
|
@@ -8,8 +7,6 @@ declare module "../../../features/formModel/abstractions.js" {
|
|
|
8
7
|
};
|
|
9
8
|
}
|
|
10
9
|
}
|
|
11
|
-
export declare const PassthroughRenderer:
|
|
12
|
-
field: IFieldVM;
|
|
13
|
-
}
|
|
14
|
-
displayName: string;
|
|
15
|
-
};
|
|
10
|
+
export declare const PassthroughRenderer: React.ComponentType<{
|
|
11
|
+
field: import("../../..").IFieldVM;
|
|
12
|
+
}>;
|
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const
|
|
5
|
-
return field.type === "object";
|
|
6
|
-
};
|
|
7
|
-
export const PassthroughRenderer = observer(({
|
|
2
|
+
import { createObjectFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
|
|
3
|
+
import { LayoutNodeRenderer } from "../../../features/formModel/FormView.js";
|
|
4
|
+
export const PassthroughRenderer = createObjectFieldRenderer(({
|
|
8
5
|
field
|
|
9
6
|
}) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
const children = field.isList ? [] : field.fields;
|
|
17
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, children.map(childField => {
|
|
18
|
-
const Renderer = childField.renderer ? fieldRenderers[childField.renderer] : undefined;
|
|
19
|
-
if (!Renderer) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
return /*#__PURE__*/React.createElement(Renderer, {
|
|
23
|
-
key: childField.name,
|
|
24
|
-
field: childField
|
|
25
|
-
});
|
|
26
|
-
}));
|
|
7
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
8
|
+
className: "flex flex-col gap-4"
|
|
9
|
+
}, field.layout.map((node, index) => /*#__PURE__*/React.createElement(LayoutNodeRenderer, {
|
|
10
|
+
key: index,
|
|
11
|
+
node: node
|
|
12
|
+
})));
|
|
27
13
|
});
|
|
28
14
|
|
|
29
15
|
//# sourceMappingURL=PassthroughRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","createObjectFieldRenderer","LayoutNodeRenderer","PassthroughRenderer","field","createElement","className","layout","map","node","index","key"],"sources":["PassthroughRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createObjectFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { LayoutNodeRenderer } from \"~/features/formModel/FormView.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n passthrough: { fieldType: string; settings: undefined };\n }\n}\n\nexport const PassthroughRenderer = createObjectFieldRenderer(({ field }) => {\n return (\n <div className=\"flex flex-col gap-4\">\n {field.layout.map((node, index) => (\n <LayoutNodeRenderer key={index} node={node} />\n ))}\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAQ3B,OAAO,MAAMC,mBAAmB,GAAGF,yBAAyB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EACxE,oBACIJ,KAAA,CAAAK,aAAA;IAAKC,SAAS,EAAC;EAAqB,GAC/BF,KAAK,CAACG,MAAM,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBAC1BV,KAAA,CAAAK,aAAA,CAACH,kBAAkB;IAACS,GAAG,EAAED,KAAM;IAACD,IAAI,EAAEA;EAAK,CAAE,CAChD,CACA,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
3
|
+
interface IFieldRendererRegistry {
|
|
4
|
+
radioButtons: {
|
|
5
|
+
fieldType: "text" | "number";
|
|
6
|
+
options: true;
|
|
7
|
+
settings: undefined;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const RadioButtonsRenderer: React.ComponentType<{
|
|
12
|
+
field: import("~/features/formModel/index.js").IFieldVM;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
|
|
3
|
+
import { RadioGroup } from "@webiny/admin-ui";
|
|
4
|
+
export const RadioButtonsRenderer = createFieldRenderer(({
|
|
5
|
+
field
|
|
6
|
+
}) => {
|
|
7
|
+
const options = field.options ?? [];
|
|
8
|
+
return /*#__PURE__*/React.createElement(RadioGroup, {
|
|
9
|
+
label: field.label,
|
|
10
|
+
description: field.description,
|
|
11
|
+
note: field.note,
|
|
12
|
+
required: field.required,
|
|
13
|
+
disabled: field.disabled,
|
|
14
|
+
validation: field.validation,
|
|
15
|
+
items: options.map(opt => ({
|
|
16
|
+
label: opt.label,
|
|
17
|
+
value: String(opt.value)
|
|
18
|
+
})),
|
|
19
|
+
value: field.value !== undefined ? String(field.value) : undefined,
|
|
20
|
+
onChange: value => {
|
|
21
|
+
field.onChange(value);
|
|
22
|
+
field.onBlur();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=RadioButtonsRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createFieldRenderer","RadioGroup","RadioButtonsRenderer","field","options","createElement","label","description","note","required","disabled","validation","items","map","opt","value","String","undefined","onChange","onBlur"],"sources":["RadioButtonsRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { RadioGroup } from \"@webiny/admin-ui\";\nimport type { IValueOption } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n radioButtons: { fieldType: \"text\" | \"number\"; options: true; settings: undefined };\n }\n}\n\nexport const RadioButtonsRenderer = createFieldRenderer(({ field }) => {\n const options: IValueOption[] = field.options ?? [];\n\n return (\n <RadioGroup\n label={field.label}\n description={field.description}\n note={field.note}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n items={options.map(opt => ({\n label: opt.label,\n value: String(opt.value)\n }))}\n value={field.value !== undefined ? String(field.value) : undefined}\n onChange={value => {\n field.onChange(value);\n field.onBlur();\n }}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,UAAU,QAAQ,kBAAkB;AAS7C,OAAO,MAAMC,oBAAoB,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EACnE,MAAMC,OAAuB,GAAGD,KAAK,CAACC,OAAO,IAAI,EAAE;EAEnD,oBACIL,KAAA,CAAAM,aAAA,CAACJ,UAAU;IACPK,KAAK,EAAEH,KAAK,CAACG,KAAM;IACnBC,WAAW,EAAEJ,KAAK,CAACI,WAAY;IAC/BC,IAAI,EAAEL,KAAK,CAACK,IAAK;IACjBC,QAAQ,EAAEN,KAAK,CAACM,QAAS;IACzBC,QAAQ,EAAEP,KAAK,CAACO,QAAS;IACzBC,UAAU,EAAER,KAAK,CAACQ,UAAW;IAC7BC,KAAK,EAAER,OAAO,CAACS,GAAG,CAACC,GAAG,KAAK;MACvBR,KAAK,EAAEQ,GAAG,CAACR,KAAK;MAChBS,KAAK,EAAEC,MAAM,CAACF,GAAG,CAACC,KAAK;IAC3B,CAAC,CAAC,CAAE;IACJA,KAAK,EAAEZ,KAAK,CAACY,KAAK,KAAKE,SAAS,GAAGD,MAAM,CAACb,KAAK,CAACY,KAAK,CAAC,GAAGE,SAAU;IACnEC,QAAQ,EAAEH,KAAK,IAAI;MACfZ,KAAK,CAACe,QAAQ,CAACH,KAAK,CAAC;MACrBZ,KAAK,CAACgB,MAAM,CAAC,CAAC;IAClB;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { IFieldVM } from "../../../features/formModel/index.js";
|
|
3
2
|
declare module "../../../features/formModel/abstractions.js" {
|
|
4
3
|
interface IFieldRendererRegistry {
|
|
5
|
-
|
|
6
|
-
fieldType: "
|
|
4
|
+
dropdown: {
|
|
5
|
+
fieldType: "text" | "number";
|
|
6
|
+
options: true;
|
|
7
7
|
settings: undefined;
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
export declare const SelectRenderer:
|
|
12
|
-
field: IFieldVM;
|
|
13
|
-
}
|
|
14
|
-
displayName: string;
|
|
15
|
-
};
|
|
11
|
+
export declare const SelectRenderer: React.ComponentType<{
|
|
12
|
+
field: import("~/features/formModel/index.js").IFieldVM;
|
|
13
|
+
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
|
|
3
3
|
import { Select } from "@webiny/admin-ui";
|
|
4
|
-
export const SelectRenderer =
|
|
4
|
+
export const SelectRenderer = createFieldRenderer(({
|
|
5
5
|
field
|
|
6
6
|
}) => {
|
|
7
7
|
const options = field.options ?? [];
|
|
@@ -10,14 +10,17 @@ export const SelectRenderer = observer(({
|
|
|
10
10
|
placeholder: field.placeholder,
|
|
11
11
|
description: field.description,
|
|
12
12
|
note: field.note,
|
|
13
|
-
value: field.value
|
|
14
|
-
onChange: value =>
|
|
13
|
+
value: field.value != null ? String(field.value) : "",
|
|
14
|
+
onChange: value => {
|
|
15
|
+
field.onChange(value);
|
|
16
|
+
field.onBlur();
|
|
17
|
+
},
|
|
15
18
|
required: field.required,
|
|
16
19
|
disabled: field.disabled,
|
|
17
20
|
validation: field.validation,
|
|
18
21
|
options: options.map(opt => ({
|
|
19
22
|
label: opt.label,
|
|
20
|
-
value: opt.value,
|
|
23
|
+
value: String(opt.value),
|
|
21
24
|
disabled: opt.disabled
|
|
22
25
|
}))
|
|
23
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","createFieldRenderer","Select","SelectRenderer","field","options","createElement","label","placeholder","description","note","value","String","onChange","onBlur","required","disabled","validation","map","opt"],"sources":["SelectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { Select } from \"@webiny/admin-ui\";\nimport type { IValueOption } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n dropdown: { fieldType: \"text\" | \"number\"; options: true; settings: undefined };\n }\n}\n\nexport const SelectRenderer = createFieldRenderer(({ field }) => {\n const options: IValueOption[] = field.options ?? [];\n\n return (\n <Select\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n note={field.note}\n value={field.value != null ? String(field.value) : \"\"}\n onChange={value => {\n field.onChange(value);\n field.onBlur();\n }}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n options={options.map(opt => ({\n label: opt.label,\n value: String(opt.value),\n disabled: opt.disabled\n }))}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,MAAM,QAAQ,kBAAkB;AASzC,OAAO,MAAMC,cAAc,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC7D,MAAMC,OAAuB,GAAGD,KAAK,CAACC,OAAO,IAAI,EAAE;EAEnD,oBACIL,KAAA,CAAAM,aAAA,CAACJ,MAAM;IACHK,KAAK,EAAEH,KAAK,CAACG,KAAM;IACnBC,WAAW,EAAEJ,KAAK,CAACI,WAAY;IAC/BC,WAAW,EAAEL,KAAK,CAACK,WAAY;IAC/BC,IAAI,EAAEN,KAAK,CAACM,IAAK;IACjBC,KAAK,EAAEP,KAAK,CAACO,KAAK,IAAI,IAAI,GAAGC,MAAM,CAACR,KAAK,CAACO,KAAK,CAAC,GAAG,EAAG;IACtDE,QAAQ,EAAEF,KAAK,IAAI;MACfP,KAAK,CAACS,QAAQ,CAACF,KAAK,CAAC;MACrBP,KAAK,CAACU,MAAM,CAAC,CAAC;IAClB,CAAE;IACFC,QAAQ,EAAEX,KAAK,CAACW,QAAS;IACzBC,QAAQ,EAAEZ,KAAK,CAACY,QAAS;IACzBC,UAAU,EAAEb,KAAK,CAACa,UAAW;IAC7BZ,OAAO,EAAEA,OAAO,CAACa,GAAG,CAACC,GAAG,KAAK;MACzBZ,KAAK,EAAEY,GAAG,CAACZ,KAAK;MAChBI,KAAK,EAAEC,MAAM,CAACO,GAAG,CAACR,KAAK,CAAC;MACxBK,QAAQ,EAAEG,GAAG,CAACH;IAClB,CAAC,CAAC;EAAE,CACP,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
3
|
+
interface IFieldRendererRegistry {
|
|
4
|
+
switch: {
|
|
5
|
+
fieldType: "boolean";
|
|
6
|
+
settings: undefined;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const SwitchRenderer: React.ComponentType<{
|
|
11
|
+
field: import("../../..").IFieldVM;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
|
|
3
|
+
import { Switch } from "@webiny/admin-ui";
|
|
4
|
+
export const SwitchRenderer = createFieldRenderer(({
|
|
5
|
+
field
|
|
6
|
+
}) => {
|
|
7
|
+
return /*#__PURE__*/React.createElement(Switch, {
|
|
8
|
+
checked: !!field.value,
|
|
9
|
+
onChange: value => field.onChange(value),
|
|
10
|
+
label: field.label,
|
|
11
|
+
description: field.description,
|
|
12
|
+
note: field.note,
|
|
13
|
+
required: field.required,
|
|
14
|
+
disabled: field.disabled,
|
|
15
|
+
validation: field.validation
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=SwitchRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createFieldRenderer","Switch","SwitchRenderer","field","createElement","checked","value","onChange","label","description","note","required","disabled","validation"],"sources":["SwitchRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { Switch } from \"@webiny/admin-ui\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n switch: { fieldType: \"boolean\"; settings: undefined };\n }\n}\n\nexport const SwitchRenderer = createFieldRenderer(({ field }) => {\n return (\n <Switch\n checked={!!field.value}\n onChange={value => field.onChange(value)}\n label={field.label}\n description={field.description}\n note={field.note}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,MAAM,QAAQ,kBAAkB;AAQzC,OAAO,MAAMC,cAAc,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC7D,oBACIJ,KAAA,CAAAK,aAAA,CAACH,MAAM;IACHI,OAAO,EAAE,CAAC,CAACF,KAAK,CAACG,KAAM;IACvBC,QAAQ,EAAED,KAAK,IAAIH,KAAK,CAACI,QAAQ,CAACD,KAAK,CAAE;IACzCE,KAAK,EAAEL,KAAK,CAACK,KAAM;IACnBC,WAAW,EAAEN,KAAK,CAACM,WAAY;IAC/BC,IAAI,EAAEP,KAAK,CAACO,IAAK;IACjBC,QAAQ,EAAER,KAAK,CAACQ,QAAS;IACzBC,QAAQ,EAAET,KAAK,CAACS,QAAS;IACzBC,UAAU,EAAEV,KAAK,CAACU;EAAW,CAChC,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
3
|
+
interface IFieldRendererRegistry {
|
|
4
|
+
tags: {
|
|
5
|
+
fieldType: "text";
|
|
6
|
+
settings: undefined;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const TagsRenderer: React.ComponentType<{
|
|
11
|
+
field: import("../../..").IFieldVM;
|
|
12
|
+
}>;
|