@webiny/app-headless-cms 6.0.0-rc.4 → 6.0.0-rc.6
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/admin/components/ContentEntryForm/CustomLayout.js +2 -13
- package/admin/components/ContentEntryForm/CustomLayout.js.map +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js +4 -4
- package/admin/components/FieldEditor/EditFieldDialog/FieldSettingsTabs.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab → PermissionsEditor}/FieldPermissionsSelection.js +5 -8
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/FieldPermissionsSelection.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.d.ts +2 -0
- package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab/PermissionsTab.js → PermissionsEditor/PermissionsEditor.js} +4 -10
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/{RulesTab/RulesTab.d.ts → RulesEditor/RulesEditor.d.ts} +1 -2
- package/admin/components/FieldEditor/EditFieldDialog/{RulesTab/RulesTab.js → RulesEditor/RulesEditor.js} +3 -6
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.d.ts +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js +3 -0
- package/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +3 -3
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.js +10 -10
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.d.ts +11 -11
- package/admin/components/FieldEditor/FieldEditorContext.js +41 -41
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/LayoutCell.d.ts +3 -3
- package/admin/components/FieldEditor/LayoutCell.js +6 -6
- package/admin/components/FieldEditor/LayoutCell.js.map +1 -1
- package/admin/hooks/useCms.d.ts +1 -1
- package/admin/hooks/useCms.js +1 -1
- package/admin/hooks/useCms.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +2 -2
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js +2 -2
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.js +2 -2
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js +2 -2
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +2 -2
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +2 -2
- 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 +2 -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 +2 -2
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js +2 -2
- package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +2 -2
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +2 -2
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +2 -2
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +2 -2
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +2 -2
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/tags.js +2 -2
- 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 +2 -2
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fields/ui/TabsLayoutEditor.d.ts +4 -4
- package/admin/plugins/fields/ui/TabsLayoutEditor.js +65 -61
- package/admin/plugins/fields/ui/TabsLayoutEditor.js.map +1 -1
- package/admin/plugins/fields/ui/alert.d.ts +2 -2
- package/admin/plugins/fields/ui/alert.js +25 -22
- package/admin/plugins/fields/ui/alert.js.map +1 -1
- package/admin/plugins/fields/ui/separator.d.ts +2 -2
- package/admin/plugins/fields/ui/separator.js +24 -21
- package/admin/plugins/fields/ui/separator.js.map +1 -1
- package/admin/plugins/fields/ui/tabs.d.ts +2 -2
- package/admin/plugins/fields/ui/tabs.js +10 -10
- package/admin/plugins/fields/ui/tabs.js.map +1 -1
- package/admin/views/contentModels/importing/ImportContentModelsDialog.js +15 -13
- package/admin/views/contentModels/importing/ImportContentModelsDialog.js.map +1 -1
- package/allPlugins.d.ts +1 -1
- package/exports/admin/cms/model.d.ts +2 -1
- package/exports/admin/cms/model.js +2 -1
- package/exports/admin/cms/model.js.map +1 -1
- package/exports/admin/cms.d.ts +7 -0
- package/exports/admin/cms.js +7 -0
- package/exports/admin/cms.js.map +1 -1
- package/legacyPluginAdapters/CmsContentFormRenderer.d.ts +4 -0
- package/legacyPluginAdapters/CmsContentFormRenderer.js +15 -0
- package/legacyPluginAdapters/CmsContentFormRenderer.js.map +1 -0
- package/legacyPluginAdapters/CmsModelFieldRenderer.d.ts +4 -0
- package/legacyPluginAdapters/CmsModelFieldRenderer.js +14 -0
- package/legacyPluginAdapters/CmsModelFieldRenderer.js.map +1 -0
- package/legacyPluginAdapters/CmsModelFieldType.d.ts +4 -0
- package/legacyPluginAdapters/CmsModelFieldType.js +14 -0
- package/legacyPluginAdapters/CmsModelFieldType.js.map +1 -0
- package/legacyPluginAdapters/CmsModelFieldValidator.d.ts +4 -0
- package/legacyPluginAdapters/CmsModelFieldValidator.js +14 -0
- package/legacyPluginAdapters/CmsModelFieldValidator.js.map +1 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldRenderer.d.ts +13 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldRenderer.js +15 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldRenderer.js.map +1 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldType.d.ts +2 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldType.js +14 -0
- package/legacyPluginAdapters/CmsModelLayoutFieldType.js.map +1 -0
- package/package.json +24 -24
- package/types.d.ts +1 -1
- package/types.js +1 -1
- package/types.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/FieldPermissionsSelection.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.d.ts +0 -4
- package/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.d.ts +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.js +0 -3
- package/admin/components/FieldEditor/EditFieldDialog/RulesTab/index.js.map +0 -1
- /package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab → PermissionsEditor}/CannotUsePermissions.d.ts +0 -0
- /package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab → PermissionsEditor}/CannotUsePermissions.js +0 -0
- /package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab → PermissionsEditor}/CannotUsePermissions.js.map +0 -0
- /package/admin/components/FieldEditor/EditFieldDialog/{PermissionsTab → PermissionsEditor}/FieldPermissionsSelection.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ReactComponent","AlertIcon","EditIcon","DeleteIcon","i18n","Alert","Grid","IconButton","Tabs","Textarea","Select","Text","useDialogs","Bind","PermissionsTab","RulesTab","useModelEditor","t","ns","AlertSettings","createElement","className","Column","span","name","label","defaultValue","displayResetAction","options","value","AlertDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","content","gridClassName","AlertLayoutCell","descriptor","onUpdate","onDelete","dialogs","openSettings","showDialog","title","description","acceptLabel","cancelLabel","formData","alertType","rules","onAccept","data","type","icon","onClick","variant","uiAlertField","field","canEditSettings","createDescriptor","render"],"sources":["alert.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type {\n CmsAlertLayoutDescriptor,\n CmsLayoutDescriptor\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { ReactComponent as AlertIcon } from \"@webiny/icons/warning.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Alert, Grid, IconButton, Tabs, Textarea, Select, Text } from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { Bind } from \"@webiny/form\";\nimport { PermissionsTab } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js\";\nimport { RulesTab } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst AlertSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Textarea label={\"Message\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"alertType\"} defaultValue={\"info\"}>\n <Select\n displayResetAction={false}\n label={\"Alert type\"}\n options={[\n { value: \"info\", label: \"Info\" },\n { value: \"success\", label: \"Success\" },\n { value: \"warning\", label: \"Warning\" },\n { value: \"danger\", label: \"Danger\" }\n ]}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst AlertDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"alert\"}\n trigger={\"Alert\"}\n value={\"alert\"}\n content={<AlertSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\ninterface AlertLayoutCellProps {\n descriptor: CmsAlertLayoutDescriptor;\n onUpdate: (d: CmsLayoutDescriptor) => void;\n onDelete: () => void;\n}\n\nconst AlertLayoutCell = ({ descriptor, onUpdate, onDelete }: AlertLayoutCellProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const openSettings = () => {\n dialogs.showDialog({\n title: \"Alert Settings\",\n description: \"Configure the alert and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: descriptor.label,\n alertType: descriptor.alertType,\n rules: descriptor.rules ?? []\n },\n content: <AlertDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...descriptor,\n label: data.label ?? \"\",\n alertType: (data.alertType as CmsAlertLayoutDescriptor[\"alertType\"]) ?? \"info\",\n rules: data.rules ?? []\n });\n }\n });\n };\n\n return (\n <div className={\"flex items-center justify-between\"}>\n <div className={\"flex-1\"}>\n {descriptor.label ? (\n <Alert type={descriptor.alertType}>{descriptor.label}</Alert>\n ) : (\n <Text size={\"sm\"} className={\"text-neutral-strong italic\"}>\n Alert (no message set)\n </Text>\n )}\n </div>\n <div className={\"flex items-center gap-xs ml-sm\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={openSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={onDelete}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n );\n};\n\nexport const uiAlertField: CmsLayoutFieldTypePlugin = {\n type: \"cms-editor-layout-field-type\",\n name: \"cms-editor-layout-field-type-alert\",\n field: {\n type: \"alert\",\n label: t`Alert`,\n description: t`Show an alert message in the form.`,\n icon: <AlertIcon />,\n canEditSettings: true,\n createDescriptor() {\n return { type: \"alert\", label: \"\", alertType: \"info\" };\n },\n render({ descriptor, onUpdate, onDelete }) {\n return (\n <AlertLayoutCell\n descriptor={descriptor as CmsAlertLayoutDescriptor}\n onUpdate={onUpdate}\n onDelete={onDelete}\n />\n );\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","AlertIcon","EditIcon","DeleteIcon","i18n","Alert","Grid","IconButton","Tabs","Textarea","Select","Text","ScrollArea","useDialogs","Bind","PermissionsEditor","RulesEditor","useModelEditor","t","ns","AlertSettings","createElement","className","Column","span","name","label","defaultValue","displayResetAction","options","value","AlertDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","content","AlertLayoutCell","field","onUpdate","onDelete","dialogs","openSettings","showDialog","title","description","acceptLabel","cancelLabel","formData","alertType","rules","onAccept","data","type","icon","onClick","variant","uiAlertField","canEditSettings","createField","render"],"sources":["alert.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsModelLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type {\n CmsAlertLayoutField,\n CmsLayoutField\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { ReactComponent as AlertIcon } from \"@webiny/icons/warning.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport {\n Alert,\n Grid,\n IconButton,\n Tabs,\n Textarea,\n Select,\n Text,\n ScrollArea\n} from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { Bind } from \"@webiny/form\";\nimport { PermissionsEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js\";\nimport { RulesEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst AlertSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Textarea label={\"Message\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"alertType\"} defaultValue={\"info\"}>\n <Select\n displayResetAction={false}\n label={\"Alert type\"}\n options={[\n { value: \"info\", label: \"Info\" },\n { value: \"success\", label: \"Success\" },\n { value: \"warning\", label: \"Warning\" },\n { value: \"danger\", label: \"Danger\" }\n ]}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst AlertDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <ScrollArea className=\"max-h-[70vh] flex flex-col\">\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"alert\"}\n trigger={\"Alert\"}\n value={\"alert\"}\n content={<AlertSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={\n <div className={\"mt-md\"}>\n <PermissionsEditor />\n </div>\n }\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={\n <div className={\"mt-md\"}>\n <RulesEditor fieldOptions={fieldOptions} />\n </div>\n }\n />\n ]}\n />\n </ScrollArea>\n );\n};\n\ninterface AlertLayoutCellProps {\n field: CmsAlertLayoutField;\n onUpdate: (d: CmsLayoutField) => void;\n onDelete: () => void;\n}\n\nconst AlertLayoutCell = ({ field, onUpdate, onDelete }: AlertLayoutCellProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const openSettings = () => {\n dialogs.showDialog({\n title: \"Alert Settings\",\n description: \"Configure the alert and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: field.label,\n alertType: field.alertType,\n rules: field.rules ?? []\n },\n content: <AlertDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...field,\n label: data.label ?? \"\",\n alertType: (data.alertType as CmsAlertLayoutField[\"alertType\"]) ?? \"info\",\n rules: data.rules ?? []\n });\n }\n });\n };\n\n return (\n <div className={\"flex items-center justify-between\"}>\n <div className={\"flex-1\"}>\n {field.label ? (\n <Alert type={field.alertType}>{field.label}</Alert>\n ) : (\n <Text size={\"sm\"} className={\"text-neutral-strong italic\"}>\n Alert (no message set)\n </Text>\n )}\n </div>\n <div className={\"flex items-center gap-xs ml-sm\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={openSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={onDelete}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n );\n};\n\nexport const uiAlertField: CmsModelLayoutFieldTypePlugin = {\n type: \"cms-editor-layout-field-type\",\n name: \"cms-editor-layout-field-type-alert\",\n field: {\n type: \"alert\",\n label: t`Alert`,\n description: t`Show an alert message in the form.`,\n icon: <AlertIcon />,\n canEditSettings: true,\n createField() {\n return { type: \"alert\", label: \"\", alertType: \"info\" };\n },\n render({ field, onUpdate, onDelete }) {\n return (\n <AlertLayoutCell\n field={field as CmsAlertLayoutField}\n onUpdate={onUpdate}\n onDelete={onDelete}\n />\n );\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const uiSeparatorField:
|
|
1
|
+
import type { CmsModelLayoutFieldTypePlugin } from "@webiny/app-headless-cms-common/types/index.js";
|
|
2
|
+
export declare const uiSeparatorField: CmsModelLayoutFieldTypePlugin;
|
|
@@ -3,11 +3,11 @@ import { ReactComponent as SeparatorIcon } from "@webiny/icons/line_style.svg";
|
|
|
3
3
|
import { ReactComponent as EditIcon } from "@webiny/icons/edit.svg";
|
|
4
4
|
import { ReactComponent as DeleteIcon } from "@webiny/icons/delete.svg";
|
|
5
5
|
import { i18n } from "@webiny/app/i18n/index.js";
|
|
6
|
-
import { Grid, IconButton, Input, Separator, Tabs, Text } from "@webiny/admin-ui";
|
|
6
|
+
import { Grid, IconButton, Input, ScrollArea, Separator, Tabs, Text } from "@webiny/admin-ui";
|
|
7
7
|
import { useDialogs } from "@webiny/app-admin";
|
|
8
8
|
import { Bind } from "@webiny/form";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { PermissionsEditor } from "../../../components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js";
|
|
10
|
+
import { RulesEditor } from "../../../components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js";
|
|
11
11
|
import { useModelEditor } from "../../../components/ContentModelEditor/useModelEditor.js";
|
|
12
12
|
const t = i18n.ns("app-headless-cms/admin/fields");
|
|
13
13
|
const SeparatorSettings = () => {
|
|
@@ -30,7 +30,9 @@ const SeparatorSettings = () => {
|
|
|
30
30
|
const SeparatorDialogContent = ({
|
|
31
31
|
fieldOptions
|
|
32
32
|
}) => {
|
|
33
|
-
return /*#__PURE__*/React.createElement(
|
|
33
|
+
return /*#__PURE__*/React.createElement(ScrollArea, {
|
|
34
|
+
className: "max-h-[70vh] flex flex-col"
|
|
35
|
+
}, /*#__PURE__*/React.createElement(Tabs, {
|
|
34
36
|
size: "md",
|
|
35
37
|
separator: true,
|
|
36
38
|
tabs: [/*#__PURE__*/React.createElement(Tabs.Tab, {
|
|
@@ -42,22 +44,23 @@ const SeparatorDialogContent = ({
|
|
|
42
44
|
key: "permissions",
|
|
43
45
|
trigger: "Permissions",
|
|
44
46
|
value: "permissions",
|
|
45
|
-
content: /*#__PURE__*/React.createElement(
|
|
46
|
-
|
|
47
|
-
})
|
|
47
|
+
content: /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
className: "mt-md"
|
|
49
|
+
}, /*#__PURE__*/React.createElement(PermissionsEditor, null))
|
|
48
50
|
}), /*#__PURE__*/React.createElement(Tabs.Tab, {
|
|
49
51
|
key: "rules",
|
|
50
52
|
trigger: "Rules",
|
|
51
53
|
value: "rules",
|
|
52
|
-
content: /*#__PURE__*/React.createElement(
|
|
53
|
-
|
|
54
|
+
content: /*#__PURE__*/React.createElement("div", {
|
|
55
|
+
className: "mt-md"
|
|
56
|
+
}, /*#__PURE__*/React.createElement(RulesEditor, {
|
|
54
57
|
fieldOptions: fieldOptions
|
|
55
|
-
})
|
|
58
|
+
}))
|
|
56
59
|
})]
|
|
57
|
-
});
|
|
60
|
+
}));
|
|
58
61
|
};
|
|
59
62
|
const SeparatorLayoutCell = ({
|
|
60
|
-
|
|
63
|
+
field,
|
|
61
64
|
onUpdate,
|
|
62
65
|
onDelete
|
|
63
66
|
}) => {
|
|
@@ -72,16 +75,16 @@ const SeparatorLayoutCell = ({
|
|
|
72
75
|
acceptLabel: "Save",
|
|
73
76
|
cancelLabel: "Cancel",
|
|
74
77
|
formData: {
|
|
75
|
-
label:
|
|
76
|
-
description:
|
|
77
|
-
rules:
|
|
78
|
+
label: field.label,
|
|
79
|
+
description: field.description ?? "",
|
|
80
|
+
rules: field.rules ?? []
|
|
78
81
|
},
|
|
79
82
|
content: /*#__PURE__*/React.createElement(SeparatorDialogContent, {
|
|
80
83
|
fieldOptions: fieldOptions
|
|
81
84
|
}),
|
|
82
85
|
onAccept: data => {
|
|
83
86
|
onUpdate({
|
|
84
|
-
...
|
|
87
|
+
...field,
|
|
85
88
|
label: data.label ?? "",
|
|
86
89
|
description: data.description ?? "",
|
|
87
90
|
rules: data.rules ?? []
|
|
@@ -96,11 +99,11 @@ const SeparatorLayoutCell = ({
|
|
|
96
99
|
}, /*#__PURE__*/React.createElement(Separator, {
|
|
97
100
|
variant: "accent",
|
|
98
101
|
labelPosition: "start"
|
|
99
|
-
},
|
|
102
|
+
}, field.label), field.description && /*#__PURE__*/React.createElement(Text, {
|
|
100
103
|
as: "div",
|
|
101
104
|
size: "sm",
|
|
102
105
|
className: "text-neutral-strong mt-sm"
|
|
103
|
-
},
|
|
106
|
+
}, field.description)), /*#__PURE__*/React.createElement("div", {
|
|
104
107
|
className: "flex items-center gap-xs"
|
|
105
108
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
106
109
|
icon: /*#__PURE__*/React.createElement(EditIcon, null),
|
|
@@ -123,7 +126,7 @@ export const uiSeparatorField = {
|
|
|
123
126
|
description: t`Show a visual separator between fields.`,
|
|
124
127
|
icon: /*#__PURE__*/React.createElement(SeparatorIcon, null),
|
|
125
128
|
canEditSettings: true,
|
|
126
|
-
|
|
129
|
+
createField() {
|
|
127
130
|
return {
|
|
128
131
|
type: "separator",
|
|
129
132
|
label: "Section",
|
|
@@ -131,12 +134,12 @@ export const uiSeparatorField = {
|
|
|
131
134
|
};
|
|
132
135
|
},
|
|
133
136
|
render({
|
|
134
|
-
|
|
137
|
+
field,
|
|
135
138
|
onUpdate,
|
|
136
139
|
onDelete
|
|
137
140
|
}) {
|
|
138
141
|
return /*#__PURE__*/React.createElement(SeparatorLayoutCell, {
|
|
139
|
-
|
|
142
|
+
field: field,
|
|
140
143
|
onUpdate: onUpdate,
|
|
141
144
|
onDelete: onDelete
|
|
142
145
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ReactComponent","SeparatorIcon","EditIcon","DeleteIcon","i18n","Grid","IconButton","Input","Separator","Tabs","Text","useDialogs","Bind","PermissionsTab","RulesTab","useModelEditor","t","ns","SeparatorSettings","createElement","className","Column","span","name","label","SeparatorDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","value","content","gridClassName","SeparatorLayoutCell","descriptor","onUpdate","onDelete","dialogs","openSettings","showDialog","title","description","acceptLabel","cancelLabel","formData","rules","onAccept","data","variant","labelPosition","as","icon","onClick","uiSeparatorField","type","field","canEditSettings","createDescriptor","render"],"sources":["separator.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type {\n CmsSeparatorLayoutDescriptor,\n CmsLayoutDescriptor\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { ReactComponent as SeparatorIcon } from \"@webiny/icons/line_style.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Grid, IconButton, Input, Separator, Tabs, Text } from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { Bind } from \"@webiny/form\";\nimport { PermissionsTab } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js\";\nimport { RulesTab } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst SeparatorSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Input label={\"Description\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst SeparatorDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"separator\"}\n trigger={\"Separator\"}\n value={\"separator\"}\n content={<SeparatorSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\ninterface SeparatorLayoutCellProps {\n descriptor: CmsSeparatorLayoutDescriptor;\n onUpdate: (d: CmsLayoutDescriptor) => void;\n onDelete: () => void;\n}\n\nconst SeparatorLayoutCell = ({ descriptor, onUpdate, onDelete }: SeparatorLayoutCellProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const openSettings = () => {\n dialogs.showDialog({\n title: \"Separator Settings\",\n description: \"Configure the separator and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: descriptor.label,\n description: descriptor.description ?? \"\",\n rules: descriptor.rules ?? []\n },\n content: <SeparatorDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...descriptor,\n label: data.label ?? \"\",\n description: data.description ?? \"\",\n rules: data.rules ?? []\n });\n }\n });\n };\n\n return (\n <div className={\"flex items-center gap-sm\"}>\n <div className={\"flex-1\"}>\n <Separator variant={\"accent\"} labelPosition={\"start\"}>\n {descriptor.label}\n </Separator>\n {descriptor.description && (\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong mt-sm\"}>\n {descriptor.description}\n </Text>\n )}\n </div>\n <div className={\"flex items-center gap-xs\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={openSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={onDelete}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n );\n};\n\nexport const uiSeparatorField: CmsLayoutFieldTypePlugin = {\n type: \"cms-editor-layout-field-type\",\n name: \"cms-editor-layout-field-type-separator\",\n field: {\n type: \"separator\",\n label: t`Separator`,\n description: t`Show a visual separator between fields.`,\n icon: <SeparatorIcon />,\n canEditSettings: true,\n createDescriptor() {\n return {\n type: \"separator\",\n label: \"Section\",\n description: \"Your description goes here\"\n };\n },\n render({ descriptor, onUpdate, onDelete }) {\n return (\n <SeparatorLayoutCell\n descriptor={descriptor as CmsSeparatorLayoutDescriptor}\n onUpdate={onUpdate}\n onDelete={onDelete}\n />\n );\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","SeparatorIcon","EditIcon","DeleteIcon","i18n","Grid","IconButton","Input","ScrollArea","Separator","Tabs","Text","useDialogs","Bind","PermissionsEditor","RulesEditor","useModelEditor","t","ns","SeparatorSettings","createElement","className","Column","span","name","label","SeparatorDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","value","content","SeparatorLayoutCell","field","onUpdate","onDelete","dialogs","openSettings","showDialog","title","description","acceptLabel","cancelLabel","formData","rules","onAccept","data","variant","labelPosition","as","icon","onClick","uiSeparatorField","type","canEditSettings","createField","render"],"sources":["separator.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsModelLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type {\n CmsSeparatorLayoutField,\n CmsLayoutField\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { ReactComponent as SeparatorIcon } from \"@webiny/icons/line_style.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Grid, IconButton, Input, ScrollArea, Separator, Tabs, Text } from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { Bind } from \"@webiny/form\";\nimport { PermissionsEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js\";\nimport { RulesEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesEditor/RulesEditor.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst SeparatorSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Input label={\"Description\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst SeparatorDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <ScrollArea className=\"max-h-[70vh] flex flex-col\">\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"separator\"}\n trigger={\"Separator\"}\n value={\"separator\"}\n content={<SeparatorSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={\n <div className={\"mt-md\"}>\n <PermissionsEditor />\n </div>\n }\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={\n <div className={\"mt-md\"}>\n <RulesEditor fieldOptions={fieldOptions} />\n </div>\n }\n />\n ]}\n />\n </ScrollArea>\n );\n};\n\ninterface SeparatorLayoutCellProps {\n field: CmsSeparatorLayoutField;\n onUpdate: (d: CmsLayoutField) => void;\n onDelete: () => void;\n}\n\nconst SeparatorLayoutCell = ({ field, onUpdate, onDelete }: SeparatorLayoutCellProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const openSettings = () => {\n dialogs.showDialog({\n title: \"Separator Settings\",\n description: \"Configure the separator and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: field.label,\n description: field.description ?? \"\",\n rules: field.rules ?? []\n },\n content: <SeparatorDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...field,\n label: data.label ?? \"\",\n description: data.description ?? \"\",\n rules: data.rules ?? []\n });\n }\n });\n };\n\n return (\n <div className={\"flex items-center gap-sm\"}>\n <div className={\"flex-1\"}>\n <Separator variant={\"accent\"} labelPosition={\"start\"}>\n {field.label}\n </Separator>\n {field.description && (\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-strong mt-sm\"}>\n {field.description}\n </Text>\n )}\n </div>\n <div className={\"flex items-center gap-xs\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={openSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={onDelete}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n );\n};\n\nexport const uiSeparatorField: CmsModelLayoutFieldTypePlugin = {\n type: \"cms-editor-layout-field-type\",\n name: \"cms-editor-layout-field-type-separator\",\n field: {\n type: \"separator\",\n label: t`Separator`,\n description: t`Show a visual separator between fields.`,\n icon: <SeparatorIcon />,\n canEditSettings: true,\n createField() {\n return {\n type: \"separator\",\n label: \"Section\",\n description: \"Your description goes here\"\n };\n },\n render({ field, onUpdate, onDelete }) {\n return (\n <SeparatorLayoutCell\n field={field as CmsSeparatorLayoutField}\n onUpdate={onUpdate}\n onDelete={onDelete}\n />\n );\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const uiTabsField:
|
|
1
|
+
import type { CmsModelLayoutFieldTypePlugin } from "@webiny/app-headless-cms-common/types/index.js";
|
|
2
|
+
export declare const uiTabsField: CmsModelLayoutFieldTypePlugin;
|
|
@@ -13,7 +13,7 @@ export const uiTabsField = {
|
|
|
13
13
|
description: t`Group fields into tabs.`,
|
|
14
14
|
icon: /*#__PURE__*/React.createElement(TabsIcon, null),
|
|
15
15
|
canEditSettings: true,
|
|
16
|
-
|
|
16
|
+
createField() {
|
|
17
17
|
return {
|
|
18
18
|
type: "tabs",
|
|
19
19
|
label: "Tabs",
|
|
@@ -27,10 +27,10 @@ export const uiTabsField = {
|
|
|
27
27
|
};
|
|
28
28
|
},
|
|
29
29
|
collectFields({
|
|
30
|
-
|
|
30
|
+
field,
|
|
31
31
|
getField
|
|
32
32
|
}) {
|
|
33
|
-
const tabs =
|
|
33
|
+
const tabs = field.tabs;
|
|
34
34
|
if (!tabs) {
|
|
35
35
|
return [];
|
|
36
36
|
}
|
|
@@ -50,18 +50,18 @@ export const uiTabsField = {
|
|
|
50
50
|
return result;
|
|
51
51
|
},
|
|
52
52
|
getFieldLabelPrefixes({
|
|
53
|
-
|
|
53
|
+
field
|
|
54
54
|
}) {
|
|
55
|
-
const
|
|
56
|
-
const tabs =
|
|
55
|
+
const tabsField = field;
|
|
56
|
+
const tabs = tabsField.tabs;
|
|
57
57
|
if (!tabs) {
|
|
58
58
|
return {};
|
|
59
59
|
}
|
|
60
|
-
const
|
|
60
|
+
const fieldLabel = tabsField.label || "Tabs";
|
|
61
61
|
const prefixes = {};
|
|
62
62
|
for (const tab of tabs) {
|
|
63
63
|
const tabLabel = tab.label || "Tab";
|
|
64
|
-
const prefix = `${
|
|
64
|
+
const prefix = `${fieldLabel} › ${tabLabel}`;
|
|
65
65
|
for (const row of tab.layout) {
|
|
66
66
|
for (const cell of row) {
|
|
67
67
|
if (typeof cell === "string") {
|
|
@@ -73,12 +73,12 @@ export const uiTabsField = {
|
|
|
73
73
|
return prefixes;
|
|
74
74
|
},
|
|
75
75
|
render({
|
|
76
|
-
|
|
76
|
+
field,
|
|
77
77
|
onUpdate,
|
|
78
78
|
onDelete
|
|
79
79
|
}) {
|
|
80
80
|
return /*#__PURE__*/React.createElement(TabsLayoutEditor, {
|
|
81
|
-
|
|
81
|
+
field: field,
|
|
82
82
|
onUpdate: onUpdate,
|
|
83
83
|
onDelete: onDelete
|
|
84
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ReactComponent","TabsIcon","i18n","generateAlphaNumericLowerCaseId","TabsLayoutEditor","t","ns","uiTabsField","type","name","field","label","description","icon","createElement","canEditSettings","
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","TabsIcon","i18n","generateAlphaNumericLowerCaseId","TabsLayoutEditor","t","ns","uiTabsField","type","name","field","label","description","icon","createElement","canEditSettings","createField","help","tabs","id","layout","collectFields","getField","result","tab","row","cell","f","push","getFieldLabelPrefixes","tabsField","fieldLabel","prefixes","tabLabel","prefix","render","onUpdate","onDelete"],"sources":["tabs.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsModelLayoutFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type { CmsTabLayoutField } from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { ReactComponent as TabsIcon } from \"@webiny/icons/tab.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { TabsLayoutEditor } from \"./TabsLayoutEditor.js\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nexport const uiTabsField: CmsModelLayoutFieldTypePlugin = {\n type: \"cms-editor-layout-field-type\",\n name: \"cms-editor-layout-field-type-tabs\",\n field: {\n type: \"tabs\",\n label: t`Tabs`,\n description: t`Group fields into tabs.`,\n icon: <TabsIcon />,\n canEditSettings: true,\n createField() {\n return {\n type: \"tabs\",\n label: \"Tabs\",\n description: null,\n help: null,\n tabs: [{ id: generateAlphaNumericLowerCaseId(8), label: \"Tab 1\", layout: [] }]\n };\n },\n collectFields({ field, getField }) {\n const tabs = (field as CmsTabLayoutField).tabs;\n if (!tabs) {\n return [];\n }\n const result = [];\n for (const tab of tabs) {\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n const f = getField(cell);\n if (f) {\n result.push(f);\n }\n }\n }\n }\n }\n return result;\n },\n getFieldLabelPrefixes({ field }) {\n const tabsField = field as CmsTabLayoutField;\n const tabs = tabsField.tabs;\n if (!tabs) {\n return {};\n }\n const fieldLabel = tabsField.label || \"Tabs\";\n const prefixes: Record<string, string> = {};\n for (const tab of tabs) {\n const tabLabel = tab.label || \"Tab\";\n const prefix = `${fieldLabel} › ${tabLabel}`;\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n prefixes[cell] = prefix;\n }\n }\n }\n }\n return prefixes;\n },\n render({ field, onUpdate, onDelete }) {\n return (\n <TabsLayoutEditor\n field={field as CmsTabLayoutField}\n onUpdate={onUpdate}\n onDelete={onDelete}\n />\n );\n }\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,cAAc,IAAIC,QAAQ,QAAQ,uBAAuB;AAClE,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,+BAA+B,QAAQ,eAAe;AAC/D,SAASC,gBAAgB;AAEzB,MAAMC,CAAC,GAAGH,IAAI,CAACI,EAAE,CAAC,+BAA+B,CAAC;AAElD,OAAO,MAAMC,WAA0C,GAAG;EACtDC,IAAI,EAAE,8BAA8B;EACpCC,IAAI,EAAE,mCAAmC;EACzCC,KAAK,EAAE;IACHF,IAAI,EAAE,MAAM;IACZG,KAAK,EAAEN,CAAC,MAAM;IACdO,WAAW,EAAEP,CAAC,yBAAyB;IACvCQ,IAAI,eAAEd,KAAA,CAAAe,aAAA,CAACb,QAAQ,MAAE,CAAC;IAClBc,eAAe,EAAE,IAAI;IACrBC,WAAWA,CAAA,EAAG;MACV,OAAO;QACHR,IAAI,EAAE,MAAM;QACZG,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,IAAI;QACjBK,IAAI,EAAE,IAAI;QACVC,IAAI,EAAE,CAAC;UAAEC,EAAE,EAAEhB,+BAA+B,CAAC,CAAC,CAAC;UAAEQ,KAAK,EAAE,OAAO;UAAES,MAAM,EAAE;QAAG,CAAC;MACjF,CAAC;IACL,CAAC;IACDC,aAAaA,CAAC;MAAEX,KAAK;MAAEY;IAAS,CAAC,EAAE;MAC/B,MAAMJ,IAAI,GAAIR,KAAK,CAAuBQ,IAAI;MAC9C,IAAI,CAACA,IAAI,EAAE;QACP,OAAO,EAAE;MACb;MACA,MAAMK,MAAM,GAAG,EAAE;MACjB,KAAK,MAAMC,GAAG,IAAIN,IAAI,EAAE;QACpB,KAAK,MAAMO,GAAG,IAAID,GAAG,CAACJ,MAAM,EAAE;UAC1B,KAAK,MAAMM,IAAI,IAAID,GAAG,EAAE;YACpB,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;cAC1B,MAAMC,CAAC,GAAGL,QAAQ,CAACI,IAAI,CAAC;cACxB,IAAIC,CAAC,EAAE;gBACHJ,MAAM,CAACK,IAAI,CAACD,CAAC,CAAC;cAClB;YACJ;UACJ;QACJ;MACJ;MACA,OAAOJ,MAAM;IACjB,CAAC;IACDM,qBAAqBA,CAAC;MAAEnB;IAAM,CAAC,EAAE;MAC7B,MAAMoB,SAAS,GAAGpB,KAA0B;MAC5C,MAAMQ,IAAI,GAAGY,SAAS,CAACZ,IAAI;MAC3B,IAAI,CAACA,IAAI,EAAE;QACP,OAAO,CAAC,CAAC;MACb;MACA,MAAMa,UAAU,GAAGD,SAAS,CAACnB,KAAK,IAAI,MAAM;MAC5C,MAAMqB,QAAgC,GAAG,CAAC,CAAC;MAC3C,KAAK,MAAMR,GAAG,IAAIN,IAAI,EAAE;QACpB,MAAMe,QAAQ,GAAGT,GAAG,CAACb,KAAK,IAAI,KAAK;QACnC,MAAMuB,MAAM,GAAG,GAAGH,UAAU,MAAME,QAAQ,EAAE;QAC5C,KAAK,MAAMR,GAAG,IAAID,GAAG,CAACJ,MAAM,EAAE;UAC1B,KAAK,MAAMM,IAAI,IAAID,GAAG,EAAE;YACpB,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;cAC1BM,QAAQ,CAACN,IAAI,CAAC,GAAGQ,MAAM;YAC3B;UACJ;QACJ;MACJ;MACA,OAAOF,QAAQ;IACnB,CAAC;IACDG,MAAMA,CAAC;MAAEzB,KAAK;MAAE0B,QAAQ;MAAEC;IAAS,CAAC,EAAE;MAClC,oBACItC,KAAA,CAAAe,aAAA,CAACV,gBAAgB;QACbM,KAAK,EAAEA,KAA2B;QAClC0B,QAAQ,EAAEA,QAAS;QACnBC,QAAQ,EAAEA;MAAS,CACtB,CAAC;IAEV;EACJ;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import React, { useCallback } from "react";
|
|
2
|
-
import { CircularProgress } from "@webiny/ui/Progress/index.js";
|
|
3
|
-
import * as UID from "@webiny/ui/Dialog/index.js";
|
|
4
|
-
import { Dialog } from "../../../components/Dialog.js";
|
|
5
2
|
import { i18n } from "@webiny/app/i18n/index.js";
|
|
6
|
-
import { ImportButton } from "./components/ImportButton.js";
|
|
7
3
|
import { FileUpload } from "./components/FileUpload.js";
|
|
8
4
|
import { Errors } from "./components/Errors.js";
|
|
9
5
|
import { DataList } from "./components/DataList.js";
|
|
10
6
|
import { DataListInstructions } from "./components/Model/DataListInstructions.js";
|
|
11
7
|
import { ImportContextProvider } from "./ImportContext.js";
|
|
8
|
+
import { Dialog, Loader } from "@webiny/admin-ui";
|
|
12
9
|
const t = i18n.ns("app-headless-cms/admin/views/content-models/import-content-models-dialog");
|
|
13
10
|
export const ImportContentModelsDialog = props => {
|
|
14
11
|
const {
|
|
@@ -28,19 +25,24 @@ export const ImportContentModelsDialog = props => {
|
|
|
28
25
|
file
|
|
29
26
|
}) => {
|
|
30
27
|
const onClick = validated ? handleModelsImport : handleModelsValidation;
|
|
28
|
+
const disabledConfirm = errors.length > 0 || loading || !file || validated && !hasSelected();
|
|
31
29
|
return /*#__PURE__*/React.createElement(Dialog, {
|
|
32
30
|
open: true,
|
|
33
31
|
onClose: onCloseClick,
|
|
34
|
-
"data-testid": "cms-import-content-models-modal"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
"data-testid": "cms-import-content-models-modal",
|
|
33
|
+
title: t`Import Content Models`,
|
|
34
|
+
actions: /*#__PURE__*/React.createElement(Dialog.ConfirmAction, {
|
|
35
|
+
onClick: onClick,
|
|
36
|
+
text: validated ? t`Import` : t`Validate file`,
|
|
37
|
+
disabled: disabledConfirm
|
|
38
|
+
})
|
|
39
|
+
}, loading ? /*#__PURE__*/React.createElement(Loader, {
|
|
40
|
+
text: "Loading..."
|
|
41
|
+
}) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FileUpload, null), /*#__PURE__*/React.createElement("div", {
|
|
42
|
+
className: "max-h-[50dvh] overflow-auto"
|
|
43
|
+
}, validated && /*#__PURE__*/React.createElement(DataListInstructions, null), /*#__PURE__*/React.createElement(Errors, {
|
|
38
44
|
errors: errors
|
|
39
|
-
}), /*#__PURE__*/React.createElement(DataList, null))
|
|
40
|
-
onClick: onClick,
|
|
41
|
-
validated: validated,
|
|
42
|
-
disabled: errors.length > 0 || loading || !file || validated && !hasSelected()
|
|
43
|
-
})));
|
|
45
|
+
}), /*#__PURE__*/React.createElement(DataList, null))));
|
|
44
46
|
});
|
|
45
47
|
};
|
|
46
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","
|
|
1
|
+
{"version":3,"names":["React","useCallback","i18n","FileUpload","Errors","DataList","DataListInstructions","ImportContextProvider","Dialog","Loader","t","ns","ImportContentModelsDialog","props","onClose","onCloseClick","window","location","reload","createElement","loading","errors","validated","handleModelsImport","hasSelected","handleModelsValidation","file","onClick","disabledConfirm","length","open","title","actions","ConfirmAction","text","disabled","Fragment","className"],"sources":["ImportContentModelsDialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { FileUpload } from \"./components/FileUpload.js\";\nimport { Errors } from \"./components/Errors.js\";\nimport { DataList } from \"./components/DataList.js\";\nimport { DataListInstructions } from \"./components/Model/DataListInstructions.js\";\nimport { ImportContextProvider } from \"~/admin/views/contentModels/importing/ImportContext.js\";\nimport { Dialog, Loader } from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/import-content-models-dialog\");\n\nexport interface ImportContentModelsDialogProps {\n onClose: () => void;\n}\n\nexport const ImportContentModelsDialog = (props: ImportContentModelsDialogProps) => {\n const { onClose } = props;\n\n const onCloseClick = useCallback(() => {\n window.location.reload();\n onClose();\n }, [onClose]);\n\n return (\n <ImportContextProvider>\n {({\n loading,\n errors,\n validated,\n handleModelsImport,\n hasSelected,\n handleModelsValidation,\n file\n }) => {\n const onClick = validated ? handleModelsImport : handleModelsValidation;\n\n const disabledConfirm =\n errors.length > 0 || loading || !file || (validated && !hasSelected());\n\n return (\n <Dialog\n open={true}\n onClose={onCloseClick}\n data-testid=\"cms-import-content-models-modal\"\n title={t`Import Content Models`}\n actions={\n <Dialog.ConfirmAction\n onClick={onClick}\n text={validated ? t`Import` : t`Validate file`}\n disabled={disabledConfirm}\n />\n }\n >\n {loading ? (\n <Loader text={\"Loading...\"} />\n ) : (\n <>\n <FileUpload />\n <div className={\"max-h-[50dvh] overflow-auto\"}>\n {validated && <DataListInstructions />}\n <Errors errors={errors} />\n <DataList />\n </div>\n </>\n )}\n </Dialog>\n );\n }}\n </ImportContextProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,UAAU;AACnB,SAASC,MAAM;AACf,SAASC,QAAQ;AACjB,SAASC,oBAAoB;AAC7B,SAASC,qBAAqB;AAC9B,SAASC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;AAEjD,MAAMC,CAAC,GAAGR,IAAI,CAACS,EAAE,CAAC,0EAA0E,CAAC;AAM7F,OAAO,MAAMC,yBAAyB,GAAIC,KAAqC,IAAK;EAChF,MAAM;IAAEC;EAAQ,CAAC,GAAGD,KAAK;EAEzB,MAAME,YAAY,GAAGd,WAAW,CAAC,MAAM;IACnCe,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC,CAAC;IACxBJ,OAAO,CAAC,CAAC;EACb,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,oBACId,KAAA,CAAAmB,aAAA,CAACZ,qBAAqB,QACjB,CAAC;IACEa,OAAO;IACPC,MAAM;IACNC,SAAS;IACTC,kBAAkB;IAClBC,WAAW;IACXC,sBAAsB;IACtBC;EACJ,CAAC,KAAK;IACF,MAAMC,OAAO,GAAGL,SAAS,GAAGC,kBAAkB,GAAGE,sBAAsB;IAEvE,MAAMG,eAAe,GACjBP,MAAM,CAACQ,MAAM,GAAG,CAAC,IAAIT,OAAO,IAAI,CAACM,IAAI,IAAKJ,SAAS,IAAI,CAACE,WAAW,CAAC,CAAE;IAE1E,oBACIxB,KAAA,CAAAmB,aAAA,CAACX,MAAM;MACHsB,IAAI,EAAE,IAAK;MACXhB,OAAO,EAAEC,YAAa;MACtB,eAAY,iCAAiC;MAC7CgB,KAAK,EAAErB,CAAC,uBAAwB;MAChCsB,OAAO,eACHhC,KAAA,CAAAmB,aAAA,CAACX,MAAM,CAACyB,aAAa;QACjBN,OAAO,EAAEA,OAAQ;QACjBO,IAAI,EAAEZ,SAAS,GAAGZ,CAAC,QAAQ,GAAGA,CAAC,eAAgB;QAC/CyB,QAAQ,EAAEP;MAAgB,CAC7B;IACJ,GAEAR,OAAO,gBACJpB,KAAA,CAAAmB,aAAA,CAACV,MAAM;MAACyB,IAAI,EAAE;IAAa,CAAE,CAAC,gBAE9BlC,KAAA,CAAAmB,aAAA,CAAAnB,KAAA,CAAAoC,QAAA,qBACIpC,KAAA,CAAAmB,aAAA,CAAChB,UAAU,MAAE,CAAC,eACdH,KAAA,CAAAmB,aAAA;MAAKkB,SAAS,EAAE;IAA8B,GACzCf,SAAS,iBAAItB,KAAA,CAAAmB,aAAA,CAACb,oBAAoB,MAAE,CAAC,eACtCN,KAAA,CAAAmB,aAAA,CAACf,MAAM;MAACiB,MAAM,EAAEA;IAAO,CAAE,CAAC,eAC1BrB,KAAA,CAAAmB,aAAA,CAACd,QAAQ,MAAE,CACV,CACP,CAEF,CAAC;EAEjB,CACmB,CAAC;AAEhC,CAAC","ignoreList":[]}
|
package/allPlugins.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: (import("@webiny/app-headless-cms-common/types").CmsModelFieldRendererPlugin | import("@webiny/app-headless-cms-common/types").
|
|
1
|
+
declare const _default: (import("@webiny/app-headless-cms-common/types").CmsModelFieldRendererPlugin | import("@webiny/app-headless-cms-common/types").CmsModelLayoutFieldTypePlugin<import("@webiny/app-headless-cms-common/types").CmsModelLayoutField> | import("@webiny/app-headless-cms-common/types").CmsModelFieldTypePlugin | import("@webiny/app-headless-cms-common/types").CmsModelFieldValidatorPlugin<any> | import("@webiny/app-headless-cms-common/types").CmsModelFieldRendererPlugin[] | (import("@webiny/app-headless-cms-common/types").CmsIconsPlugin | import("@webiny/app-headless-cms-common/types").CmsFieldValueTransformer<{
|
|
2
2
|
id: string;
|
|
3
3
|
type: string;
|
|
4
4
|
fieldId: import("@webiny/app-headless-cms-common/types").CmsEditorFieldId;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { RulesEditor } from "../../../admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js";
|
|
2
|
+
export { PermissionsEditor } from "../../../admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { RulesEditor } from "../../../admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js";
|
|
2
|
+
export { PermissionsEditor } from "../../../admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js";
|
|
2
3
|
|
|
3
4
|
//# sourceMappingURL=model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["RulesEditor","PermissionsEditor"],"sources":["model.ts"],"sourcesContent":["export { RulesEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.js\";\nexport { PermissionsEditor } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.js\";\n"],"mappings":"AAAA,SAASA,WAAW;AACpB,SAASC,iBAAiB","ignoreList":[]}
|
package/exports/admin/cms.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
+
export { CmsContentFormRenderer } from "../../legacyPluginAdapters/CmsContentFormRenderer.js";
|
|
2
|
+
export { CmsModelFieldValidator } from "../../legacyPluginAdapters/CmsModelFieldValidator.js";
|
|
3
|
+
export { CmsModelFieldType } from "../../legacyPluginAdapters/CmsModelFieldType.js";
|
|
4
|
+
export { CmsModelFieldRenderer } from "../../legacyPluginAdapters/CmsModelFieldRenderer.js";
|
|
5
|
+
export { CmsModelLayoutFieldType } from "../../legacyPluginAdapters/CmsModelLayoutFieldType.js";
|
|
6
|
+
export { CmsModelLayoutFieldRenderer } from "../../legacyPluginAdapters/CmsModelLayoutFieldRenderer.js";
|
|
1
7
|
export { useQuery } from "../../admin/hooks/useQuery.js";
|
|
8
|
+
export { useCms } from "../../admin/hooks/useCms.js";
|
|
2
9
|
export { useLazyQuery } from "../../admin/hooks/useLazyQuery.js";
|
|
3
10
|
export { useMutation } from "../../admin/hooks/useMutation.js";
|
|
4
11
|
export { useModel } from "../../admin/components/ModelProvider/index.js";
|
package/exports/admin/cms.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
+
export { CmsContentFormRenderer } from "../../legacyPluginAdapters/CmsContentFormRenderer.js";
|
|
2
|
+
export { CmsModelFieldValidator } from "../../legacyPluginAdapters/CmsModelFieldValidator.js";
|
|
3
|
+
export { CmsModelFieldType } from "../../legacyPluginAdapters/CmsModelFieldType.js";
|
|
4
|
+
export { CmsModelFieldRenderer } from "../../legacyPluginAdapters/CmsModelFieldRenderer.js";
|
|
5
|
+
export { CmsModelLayoutFieldType } from "../../legacyPluginAdapters/CmsModelLayoutFieldType.js";
|
|
6
|
+
export { CmsModelLayoutFieldRenderer } from "../../legacyPluginAdapters/CmsModelLayoutFieldRenderer.js";
|
|
1
7
|
export { useQuery } from "../../admin/hooks/useQuery.js";
|
|
8
|
+
export { useCms } from "../../admin/hooks/useCms.js";
|
|
2
9
|
export { useLazyQuery } from "../../admin/hooks/useLazyQuery.js";
|
|
3
10
|
export { useMutation } from "../../admin/hooks/useMutation.js";
|
|
4
11
|
export { useModel } from "../../admin/components/ModelProvider/index.js";
|
package/exports/admin/cms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","useLazyQuery","useMutation","useModel","usePermission","IsModelPublishable","Routes"],"sources":["cms.ts"],"sourcesContent":["export { useQuery } from \"~/admin/hooks/useQuery.js\";\nexport { useLazyQuery } from \"~/admin/hooks/useLazyQuery.js\";\nexport { useMutation } from \"~/admin/hooks/useMutation.js\";\nexport { useModel } from \"~/admin/components/ModelProvider/index.js\";\nexport { usePermission } from \"~/admin/hooks/usePermission.js\";\nexport { IsModelPublishable } from \"~/admin/components/IsModelPublishable.js\";\nexport { Routes } from \"~/routes.js\";\n"],"mappings":"AAAA,SAASA,QAAQ;AACjB,SAASC,YAAY;AACrB,SAASC,WAAW;AACpB,SAASC,QAAQ;AACjB,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAC3B,SAASC,MAAM","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CmsContentFormRenderer","CmsModelFieldValidator","CmsModelFieldType","CmsModelFieldRenderer","CmsModelLayoutFieldType","CmsModelLayoutFieldRenderer","useQuery","useCms","useLazyQuery","useMutation","useModel","usePermission","IsModelPublishable","Routes"],"sources":["cms.ts"],"sourcesContent":["export { CmsContentFormRenderer } from \"~/legacyPluginAdapters/CmsContentFormRenderer.js\";\nexport { CmsModelFieldValidator } from \"~/legacyPluginAdapters/CmsModelFieldValidator.js\";\nexport { CmsModelFieldType } from \"~/legacyPluginAdapters/CmsModelFieldType.js\";\nexport { CmsModelFieldRenderer } from \"~/legacyPluginAdapters/CmsModelFieldRenderer.js\";\nexport { CmsModelLayoutFieldType } from \"~/legacyPluginAdapters/CmsModelLayoutFieldType.js\";\nexport { CmsModelLayoutFieldRenderer } from \"~/legacyPluginAdapters/CmsModelLayoutFieldRenderer.js\";\nexport { useQuery } from \"~/admin/hooks/useQuery.js\";\nexport { useCms } from \"~/admin/hooks/useCms.js\";\nexport { useLazyQuery } from \"~/admin/hooks/useLazyQuery.js\";\nexport { useMutation } from \"~/admin/hooks/useMutation.js\";\nexport { useModel } from \"~/admin/components/ModelProvider/index.js\";\nexport { usePermission } from \"~/admin/hooks/usePermission.js\";\nexport { IsModelPublishable } from \"~/admin/components/IsModelPublishable.js\";\nexport { Routes } from \"~/routes.js\";\n"],"mappings":"AAAA,SAASA,sBAAsB;AAC/B,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,QAAQ;AACjB,SAASC,MAAM;AACf,SAASC,YAAY;AACrB,SAASC,WAAW;AACpB,SAASC,QAAQ;AACjB,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAC3B,SAASC,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CmsContentFormRendererPlugin } from "@webiny/app-headless-cms-common/types/index.js";
|
|
2
|
+
type CmsContentFormRendererProps = Pick<CmsContentFormRendererPlugin, "modelId" | "render">;
|
|
3
|
+
export declare const CmsContentFormRenderer: (props: CmsContentFormRendererProps) => null;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
export const CmsContentFormRenderer = props => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
plugins.register({
|
|
6
|
+
type: "cms-content-form-renderer",
|
|
7
|
+
name: `cms-content-form-renderer-${props.modelId}`,
|
|
8
|
+
modelId: props.modelId,
|
|
9
|
+
render: props.render
|
|
10
|
+
});
|
|
11
|
+
}, []);
|
|
12
|
+
return null;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=CmsContentFormRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","plugins","CmsContentFormRenderer","props","register","type","name","modelId","render"],"sources":["CmsContentFormRenderer.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { CmsContentFormRendererPlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\n\ntype CmsContentFormRendererProps = Pick<CmsContentFormRendererPlugin, \"modelId\" | \"render\">;\n\nexport const CmsContentFormRenderer = (props: CmsContentFormRendererProps) => {\n useEffect(() => {\n plugins.register({\n type: \"cms-content-form-renderer\",\n name: `cms-content-form-renderer-${props.modelId}`,\n modelId: props.modelId,\n render: props.render\n } satisfies CmsContentFormRendererPlugin);\n }, []);\n return null;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,OAAO,QAAQ,iBAAiB;AAKzC,OAAO,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EAC1EH,SAAS,CAAC,MAAM;IACZC,OAAO,CAACG,QAAQ,CAAC;MACbC,IAAI,EAAE,2BAA2B;MACjCC,IAAI,EAAE,6BAA6BH,KAAK,CAACI,OAAO,EAAE;MAClDA,OAAO,EAAEJ,KAAK,CAACI,OAAO;MACtBC,MAAM,EAAEL,KAAK,CAACK;IAClB,CAAwC,CAAC;EAC7C,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CmsModelFieldRendererPlugin } from "@webiny/app-headless-cms-common/types/index.js";
|
|
2
|
+
type CmsModelFieldRendererProps = CmsModelFieldRendererPlugin["renderer"];
|
|
3
|
+
export declare const CmsModelFieldRenderer: (props: CmsModelFieldRendererProps) => null;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
export const CmsModelFieldRenderer = props => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
plugins.register({
|
|
6
|
+
type: "cms-editor-field-renderer",
|
|
7
|
+
name: `cms-editor-field-renderer-${props.rendererName}`,
|
|
8
|
+
renderer: props
|
|
9
|
+
});
|
|
10
|
+
}, []);
|
|
11
|
+
return null;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=CmsModelFieldRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","plugins","CmsModelFieldRenderer","props","register","type","name","rendererName","renderer"],"sources":["CmsModelFieldRenderer.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { CmsModelFieldRendererPlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\n\ntype CmsModelFieldRendererProps = CmsModelFieldRendererPlugin[\"renderer\"];\n\nexport const CmsModelFieldRenderer = (props: CmsModelFieldRendererProps) => {\n useEffect(() => {\n plugins.register({\n type: \"cms-editor-field-renderer\",\n name: `cms-editor-field-renderer-${props.rendererName}`,\n renderer: props\n } satisfies CmsModelFieldRendererPlugin);\n }, []);\n return null;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,OAAO,QAAQ,iBAAiB;AAKzC,OAAO,MAAMC,qBAAqB,GAAIC,KAAiC,IAAK;EACxEH,SAAS,CAAC,MAAM;IACZC,OAAO,CAACG,QAAQ,CAAC;MACbC,IAAI,EAAE,2BAA2B;MACjCC,IAAI,EAAE,6BAA6BH,KAAK,CAACI,YAAY,EAAE;MACvDC,QAAQ,EAAEL;IACd,CAAuC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
export const CmsModelFieldType = props => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
plugins.register({
|
|
6
|
+
type: "cms-editor-field-type",
|
|
7
|
+
name: `cms-editor-field-type-${props.type}`,
|
|
8
|
+
field: props
|
|
9
|
+
});
|
|
10
|
+
}, []);
|
|
11
|
+
return null;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=CmsModelFieldType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","plugins","CmsModelFieldType","props","register","type","name","field"],"sources":["CmsModelFieldType.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { CmsModelFieldTypePlugin } from \"@webiny/app-headless-cms-common/types/index.js\";\n\ntype CmsModelFieldTypeProps = CmsModelFieldTypePlugin[\"field\"];\n\nexport const CmsModelFieldType = (props: CmsModelFieldTypeProps) => {\n useEffect(() => {\n plugins.register({\n type: \"cms-editor-field-type\",\n name: `cms-editor-field-type-${props.type}`,\n field: props\n } satisfies CmsModelFieldTypePlugin);\n }, []);\n return null;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,OAAO,QAAQ,iBAAiB;AAKzC,OAAO,MAAMC,iBAAiB,GAAIC,KAA6B,IAAK;EAChEH,SAAS,CAAC,MAAM;IACZC,OAAO,CAACG,QAAQ,CAAC;MACbC,IAAI,EAAE,uBAAuB;MAC7BC,IAAI,EAAE,yBAAyBH,KAAK,CAACE,IAAI,EAAE;MAC3CE,KAAK,EAAEJ;IACX,CAAmC,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CmsModelFieldValidatorPlugin } from "@webiny/app-headless-cms-common/types/validation.js";
|
|
2
|
+
type CmsModelFieldValidatorProps = Pick<CmsModelFieldValidatorPlugin, "validator">;
|
|
3
|
+
export declare const CmsModelFieldValidator: (props: CmsModelFieldValidatorProps) => null;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
export const CmsModelFieldValidator = props => {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
plugins.register({
|
|
6
|
+
type: "cms-model-field-validator",
|
|
7
|
+
name: `cms-model-field-validator-${props.validator.name}`,
|
|
8
|
+
validator: props.validator
|
|
9
|
+
});
|
|
10
|
+
}, []);
|
|
11
|
+
return null;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=CmsModelFieldValidator.js.map
|