@next-libs/visual-builder 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/interfaces/brick-visualization.js.map +1 -1
- package/dist/cjs/visual-property-form/VisualPropertyForm.js +19 -8
- package/dist/cjs/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +2 -0
- package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
- package/dist/cjs/visual-property-form/constant.js +3 -3
- package/dist/cjs/visual-property-form/constant.js.map +1 -1
- package/dist/cjs/visual-property-form/processor.js +7 -2
- package/dist/cjs/visual-property-form/processor.js.map +1 -1
- package/dist/esm/interfaces/brick-visualization.js.map +1 -1
- package/dist/esm/visual-property-form/VisualPropertyForm.js +19 -8
- package/dist/esm/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +2 -0
- package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
- package/dist/esm/visual-property-form/constant.js +1 -1
- package/dist/esm/visual-property-form/constant.js.map +1 -1
- package/dist/esm/visual-property-form/processor.js +8 -3
- package/dist/esm/visual-property-form/processor.js.map +1 -1
- package/dist/types/interfaces/brick-visualization.d.ts +3 -0
- package/dist/types/visual-property-form/VisualPropertyForm.d.ts +1 -0
- package/dist/types/visual-property-form/constant.d.ts +1 -1
- package/dist/types/visual-property-form/processor.d.ts +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.2.2](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.1...@next-libs/visual-builder@1.2.2) (2022-09-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* support hiddenPropsCategory ([#432](https://github.com/easyops-cn/next-libs/issues/432)) ([3d0778e](https://github.com/easyops-cn/next-libs/commit/3d0778eac32f532b031cb0ad67ba1daac441370c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.2.1](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.0...@next-libs/visual-builder@1.2.1) (2022-09-23)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @next-libs/visual-builder
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [1.2.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.1.0...@next-libs/visual-builder@1.2.0) (2022-09-21)
|
|
7
26
|
|
|
8
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":";;;;;;IASYA,Q;;;WAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,wBAAAA,Q;;IAKAC,Y;;;WAAAA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,4BAAAA,Y"}
|
|
1
|
+
{"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":";;;;;;IASYA,Q;;;WAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,wBAAAA,Q;;IAKAC,Y;;;WAAAA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,4BAAAA,Y"}
|
|
@@ -51,6 +51,7 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
51
51
|
brickProperties,
|
|
52
52
|
brickInfo,
|
|
53
53
|
emptyConfig,
|
|
54
|
+
hiddenPropsCategory,
|
|
54
55
|
menuSettingClick
|
|
55
56
|
} = props;
|
|
56
57
|
|
|
@@ -114,6 +115,8 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
114
115
|
};
|
|
115
116
|
|
|
116
117
|
const renderEditorItem = (item, hideIcon) => {
|
|
118
|
+
var _item$editor;
|
|
119
|
+
|
|
117
120
|
return /*#__PURE__*/_react.default.createElement(_CodeEditorFormItem.CodeEditorFormItem, {
|
|
118
121
|
key: item.name,
|
|
119
122
|
name: item.name,
|
|
@@ -122,7 +125,7 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
122
125
|
theme: theme === "dark-v2" ? "monokai" : "tomorrow",
|
|
123
126
|
jsonSchema: item === null || item === void 0 ? void 0 : item.jsonSchema,
|
|
124
127
|
schemaRef: item === null || item === void 0 ? void 0 : item.schemaRef,
|
|
125
|
-
mode: "brick_next_yaml"
|
|
128
|
+
mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml"
|
|
126
129
|
});
|
|
127
130
|
};
|
|
128
131
|
|
|
@@ -242,6 +245,15 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
242
245
|
}
|
|
243
246
|
};
|
|
244
247
|
|
|
248
|
+
const renderOthersItem = () => {
|
|
249
|
+
return /*#__PURE__*/_react.default.createElement(_CodeEditorFormItem.CodeEditorFormItem, {
|
|
250
|
+
name: _constant.OTHER_FORM_ITEM_FIELD,
|
|
251
|
+
label: (brickInfo === null || brickInfo === void 0 ? void 0 : brickInfo.type) === "template" ? "other params" : "other properties",
|
|
252
|
+
mode: "brick_next_yaml",
|
|
253
|
+
maxLines: Infinity
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
|
|
245
257
|
return (0, _lodash.isEmpty)(typeList) ? /*#__PURE__*/_react.default.createElement(_antd.Empty, {
|
|
246
258
|
className: _VisualPropertyFormModule.default.empty,
|
|
247
259
|
description: emptyConfig === null || emptyConfig === void 0 ? void 0 : emptyConfig.description,
|
|
@@ -253,7 +265,7 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
253
265
|
form: form,
|
|
254
266
|
onValuesChange: props.onValuesChange,
|
|
255
267
|
initialValues: (0, _processor.calculateValue)(propertyTypeList, brickProperties, typeList)
|
|
256
|
-
}, /*#__PURE__*/_react.default.createElement(_antd.Collapse, {
|
|
268
|
+
}, !hiddenPropsCategory ? /*#__PURE__*/_react.default.createElement(_antd.Collapse, {
|
|
257
269
|
ghost: true,
|
|
258
270
|
defaultActiveKey: "0",
|
|
259
271
|
className: _VisualPropertyFormModule.default.panelContainer
|
|
@@ -268,12 +280,11 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
268
280
|
forceRender: true,
|
|
269
281
|
header: (0, _lodash.upperFirst)(_constant.OTHER_FORM_ITEM_FIELD),
|
|
270
282
|
key: _constant.OTHER_FORM_ITEM_FIELD
|
|
271
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}))));
|
|
283
|
+
}, renderOthersItem())) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, typeList === null || typeList === void 0 ? void 0 : typeList.map(item => {
|
|
284
|
+
return getFormItem(item);
|
|
285
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
286
|
+
className: _VisualPropertyFormModule.default.otherPanel
|
|
287
|
+
}, renderOthersItem())));
|
|
277
288
|
}
|
|
278
289
|
|
|
279
290
|
const VisualPropertyForm = /*#__PURE__*/_react.default.forwardRef(LegacyVisualPropertyForm);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualPropertyForm.js","names":["LegacyVisualPropertyForm","props","ref","theme","useCurrentTheme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","menuSettingClick","form","Form","useForm","typeList","setTypeList","useState","mergeProperties","useImperativeHandle","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","pick","useEffect","newTypeList","newValue","calculateValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","ItemModeType","Advanced","Normal","value","supportMenuType","includes","type","matchNoramlMenuValue","isNil","yamlStringify","update","$splice","renderLabel","hideIcon","description","styles","iconContainer","advanced","normal","renderEditorItem","required","Required","True","jsonSchema","schemaRef","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","getFormItem","isEmpty","empty","Empty","PRESENTED_IMAGE_SIMPLE","imageStyle","onValuesChange","panelContainer","groupByType","category","list","upperFirst","otherPanel","OTHER_FORM_ITEM_FIELD","Infinity","VisualPropertyForm","React","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n Tooltip,\n Collapse,\n Empty,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport { isNil, pick, upperFirst, isEmpty } from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n} from \"./processor\";\nimport { OTHER_FORM_ITEM_FIELD, supportMenuType } from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n}\n\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n menuSettingClick,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n\n let value = selected.value;\n if (nextMode === ItemModeType.Normal) {\n if (supportMenuType.includes(selected.type as string)) {\n value = matchNoramlMenuValue(value);\n }\n } else if (isNil(selected.value)) {\n value = \"\";\n } else {\n value = yamlStringify(selected.value);\n }\n form.setFieldsValue({\n [name]: value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (item: UnionPropertyType, hideIcon?: boolean) => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode=\"brick_next_yaml\"\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group>\n <Radio value={true}>true</Radio>\n <Radio value={false}>false</Radio>\n </Radio.Group>\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n name=\"propertyForm\"\n layout=\"vertical\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n <Collapse ghost defaultActiveKey=\"0\" className={styles.panelContainer}>\n {groupByType(typeList)?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\"\n ? \"other params\"\n : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n </Collapse.Panel>\n </Collapse>\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VisualPropertyForm.js","names":["LegacyVisualPropertyForm","props","ref","theme","useCurrentTheme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","form","Form","useForm","typeList","setTypeList","useState","mergeProperties","useImperativeHandle","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","pick","useEffect","newTypeList","newValue","calculateValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","ItemModeType","Advanced","Normal","value","supportMenuType","includes","type","matchNoramlMenuValue","isNil","yamlStringify","update","$splice","renderLabel","hideIcon","description","styles","iconContainer","advanced","normal","renderEditorItem","required","Required","True","jsonSchema","schemaRef","editor","model","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","getFormItem","renderOthersItem","OTHER_FORM_ITEM_FIELD","Infinity","isEmpty","empty","Empty","PRESENTED_IMAGE_SIMPLE","imageStyle","onValuesChange","panelContainer","groupByType","category","list","upperFirst","otherPanel","VisualPropertyForm","React","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n Tooltip,\n Collapse,\n Empty,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport { isNil, pick, upperFirst, isEmpty } from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n} from \"./processor\";\nimport { OTHER_FORM_ITEM_FIELD, supportMenuType } from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n hiddenPropsCategory?: boolean;\n}\n\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n hiddenPropsCategory,\n menuSettingClick,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n\n let value = selected.value;\n if (nextMode === ItemModeType.Normal) {\n if (supportMenuType.includes(selected.type as string)) {\n value = matchNoramlMenuValue(value);\n }\n } else if (isNil(selected.value)) {\n value = \"\";\n } else {\n value = yamlStringify(selected.value);\n }\n form.setFieldsValue({\n [name]: value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode={item?.editor?.model || \"brick_next_yaml\"}\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group>\n <Radio value={true}>true</Radio>\n <Radio value={false}>false</Radio>\n </Radio.Group>\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n const renderOthersItem = (): React.ReactElement => {\n return (\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\" ? \"other params\" : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n );\n };\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n name=\"propertyForm\"\n layout=\"vertical\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n {!hiddenPropsCategory ? (\n <Collapse ghost defaultActiveKey=\"0\" className={styles.panelContainer}>\n {groupByType(typeList)?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n {renderOthersItem()}\n </Collapse.Panel>\n </Collapse>\n ) : (\n <>\n {typeList?.map((item) => {\n return getFormItem(item);\n })}\n <div className={styles.otherPanel}>{renderOthersItem()}</div>\n </>\n )}\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditorFormItem.js","names":["CodeEditorFormItem","props","name","label","rest","hasError","setHasError","useState","handleValidate","err","error","some","validatorFn","Promise","resolve","reject","required","message","validator"],"sources":["../../../../../src/visual-property-form/components/CodeEditor/CodeEditorFormItem.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { some } from \"lodash\";\nimport { Form } from \"antd\";\nimport { FormItemWrapperProps } from \"@next-libs/forms\";\nimport {\n CodeEditorProps,\n CodeEditorItem,\n Error,\n} from \"@next-libs/code-editor-components\";\n\ninterface CodeEditorItemProps extends CodeEditorProps, FormItemWrapperProps {}\n\nexport function CodeEditorFormItem(\n props: CodeEditorItemProps\n): React.ReactElement {\n const { name, label, ...rest } = props;\n const [hasError, setHasError] = useState(false);\n\n const handleValidate = (err: Error[\"err\"]): void => {\n const error = some(err, [\"type\", \"error\"]);\n setHasError(error);\n };\n\n const validatorFn = async () => {\n if (!hasError) {\n return Promise.resolve();\n } else {\n return Promise.reject(\"请填写正确的 yaml 语法\");\n }\n };\n\n return (\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[\n { required: props.required, message: `请输入${props.name}` },\n { validator: validatorFn },\n ]}\n >\n <CodeEditorItem\n tabSize={2}\n minLines={5}\n maxLines={12}\n printMargin={false}\n showLineNumbers={false}\n theme=\"tomorrow\"\n enableLiveAutocompletion={true}\n onValidate={handleValidate}\n {...rest}\n ></CodeEditorItem>\n </Form.Item>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAQO,SAASA,kBAAT,CACLC,KADK,EAEe;EACpB,MAAM;IAAEC,IAAF;IAAQC,KAAR;IAAe,GAAGC;EAAlB,IAA2BH,KAAjC;EACA,MAAM,CAACI,QAAD,EAAWC,WAAX,IAA0B,IAAAC,eAAA,EAAS,KAAT,CAAhC;;EAEA,MAAMC,cAAc,GAAIC,GAAD,IAA6B;IAClD,MAAMC,KAAK,GAAG,IAAAC,YAAA,EAAKF,GAAL,EAAU,CAAC,MAAD,EAAS,OAAT,CAAV,CAAd;IACAH,WAAW,CAACI,KAAD,CAAX;EACD,CAHD;;EAKA,MAAME,WAAW,GAAG,YAAY;IAC9B,IAAI,CAACP,QAAL,EAAe;MACb,OAAOQ,OAAO,CAACC,OAAR,EAAP;IACD,CAFD,MAEO;MACL,OAAOD,OAAO,CAACE,MAAR,CAAe,gBAAf,CAAP;IACD;EACF,CAND;;EAQA,oBACE,6BAAC,UAAD,CAAM,IAAN;IACE,GAAG,EAAEd,KAAK,CAACC,IADb;IAEE,IAAI,EAAED,KAAK,CAACC,IAFd;IAGE,KAAK,EAAED,KAAK,CAACE,KAHf;IAIE,KAAK,EAAE,CACL;MAAEa,QAAQ,EAAEf,KAAK,CAACe,QAAlB;MAA4BC,OAAO,EAAG,MAAKhB,KAAK,CAACC,IAAK;IAAtD,CADK,EAEL;MAAEgB,SAAS,EAAEN;IAAb,CAFK;EAJT,gBASE,6BAAC,oCAAD;IACE,OAAO,EAAE,CADX;IAEE,QAAQ,EAAE,CAFZ;IAGE,QAAQ,EAAE,EAHZ;IAIE,WAAW,EAAE,KAJf;IAKE,eAAe,EAAE,KALnB;IAME,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"CodeEditorFormItem.js","names":["CodeEditorFormItem","props","name","label","rest","hasError","setHasError","useState","handleValidate","err","error","some","validatorFn","Promise","resolve","reject","required","message","validator"],"sources":["../../../../../src/visual-property-form/components/CodeEditor/CodeEditorFormItem.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { some } from \"lodash\";\nimport { Form } from \"antd\";\nimport { FormItemWrapperProps } from \"@next-libs/forms\";\nimport {\n CodeEditorProps,\n CodeEditorItem,\n Error,\n} from \"@next-libs/code-editor-components\";\n\ninterface CodeEditorItemProps extends CodeEditorProps, FormItemWrapperProps {}\n\nexport function CodeEditorFormItem(\n props: CodeEditorItemProps\n): React.ReactElement {\n const { name, label, ...rest } = props;\n const [hasError, setHasError] = useState(false);\n\n const handleValidate = (err: Error[\"err\"]): void => {\n const error = some(err, [\"type\", \"error\"]);\n setHasError(error);\n };\n\n const validatorFn = async () => {\n if (!hasError) {\n return Promise.resolve();\n } else {\n return Promise.reject(\"请填写正确的 yaml 语法\");\n }\n };\n\n return (\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[\n { required: props.required, message: `请输入${props.name}` },\n { validator: validatorFn },\n ]}\n >\n <CodeEditorItem\n tabSize={2}\n minLines={5}\n maxLines={12}\n printMargin={false}\n showLineNumbers={false}\n showCopyButton={true}\n showExpandButton={true}\n theme=\"tomorrow\"\n enableLiveAutocompletion={true}\n onValidate={handleValidate}\n {...rest}\n ></CodeEditorItem>\n </Form.Item>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAQO,SAASA,kBAAT,CACLC,KADK,EAEe;EACpB,MAAM;IAAEC,IAAF;IAAQC,KAAR;IAAe,GAAGC;EAAlB,IAA2BH,KAAjC;EACA,MAAM,CAACI,QAAD,EAAWC,WAAX,IAA0B,IAAAC,eAAA,EAAS,KAAT,CAAhC;;EAEA,MAAMC,cAAc,GAAIC,GAAD,IAA6B;IAClD,MAAMC,KAAK,GAAG,IAAAC,YAAA,EAAKF,GAAL,EAAU,CAAC,MAAD,EAAS,OAAT,CAAV,CAAd;IACAH,WAAW,CAACI,KAAD,CAAX;EACD,CAHD;;EAKA,MAAME,WAAW,GAAG,YAAY;IAC9B,IAAI,CAACP,QAAL,EAAe;MACb,OAAOQ,OAAO,CAACC,OAAR,EAAP;IACD,CAFD,MAEO;MACL,OAAOD,OAAO,CAACE,MAAR,CAAe,gBAAf,CAAP;IACD;EACF,CAND;;EAQA,oBACE,6BAAC,UAAD,CAAM,IAAN;IACE,GAAG,EAAEd,KAAK,CAACC,IADb;IAEE,IAAI,EAAED,KAAK,CAACC,IAFd;IAGE,KAAK,EAAED,KAAK,CAACE,KAHf;IAIE,KAAK,EAAE,CACL;MAAEa,QAAQ,EAAEf,KAAK,CAACe,QAAlB;MAA4BC,OAAO,EAAG,MAAKhB,KAAK,CAACC,IAAK;IAAtD,CADK,EAEL;MAAEgB,SAAS,EAAEN;IAAb,CAFK;EAJT,gBASE,6BAAC,oCAAD;IACE,OAAO,EAAE,CADX;IAEE,QAAQ,EAAE,CAFZ;IAGE,QAAQ,EAAE,EAHZ;IAIE,WAAW,EAAE,KAJf;IAKE,eAAe,EAAE,KALnB;IAME,cAAc,EAAE,IANlB;IAOE,gBAAgB,EAAE,IAPpB;IAQE,KAAK,EAAC,UARR;IASE,wBAAwB,EAAE,IAT5B;IAUE,UAAU,EAAEJ;EAVd,GAWMJ,IAXN,EATF,CADF;AAyBD"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.supportMenuType = exports.supportBasicType = exports.groupI18nMap = exports.
|
|
6
|
+
exports.supportMenuType = exports.supportBasicType = exports.groupI18nMap = exports.defaultCommonProps = exports.OTHER_FORM_ITEM_FIELD = void 0;
|
|
7
7
|
const groupI18nMap = {
|
|
8
8
|
basic: {
|
|
9
9
|
en: "Basic",
|
|
@@ -37,7 +37,7 @@ const supportMenuType = ["Menu", "SidebarSubMenu"];
|
|
|
37
37
|
exports.supportMenuType = supportMenuType;
|
|
38
38
|
const OTHER_FORM_ITEM_FIELD = "others";
|
|
39
39
|
exports.OTHER_FORM_ITEM_FIELD = OTHER_FORM_ITEM_FIELD;
|
|
40
|
-
const
|
|
40
|
+
const defaultCommonProps = [{
|
|
41
41
|
name: "id",
|
|
42
42
|
type: "string",
|
|
43
43
|
description: "构件 ID",
|
|
@@ -50,5 +50,5 @@ const commonProps = [{
|
|
|
50
50
|
group: "ui",
|
|
51
51
|
groupI18N: groupI18nMap
|
|
52
52
|
}];
|
|
53
|
-
exports.
|
|
53
|
+
exports.defaultCommonProps = defaultCommonProps;
|
|
54
54
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","names":["groupI18nMap","basic","en","zh","ui","advanced","basicFormItem","advancedFormItem","other","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","
|
|
1
|
+
{"version":3,"file":"constant.js","names":["groupI18nMap","basic","en","zh","ui","advanced","basicFormItem","advancedFormItem","other","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","defaultCommonProps","name","type","description","group","groupI18N"],"sources":["../../../src/visual-property-form/constant.ts"],"sourcesContent":["import { PropertyType } from \"../interfaces\";\n\nexport const groupI18nMap = {\n basic: {\n en: \"Basic\",\n zh: \"常用\",\n },\n ui: {\n en: \"UI\",\n zh: \"外观\",\n },\n advanced: {\n en: \"Advanced\",\n zh: \"高级\",\n },\n basicFormItem: {\n en: \"Basic Form Item\",\n zh: \"表单项常用\",\n },\n advancedFormItem: {\n en: \"Advanced Form Item\",\n zh: \"表单项高级\",\n },\n other: {\n en: \"Other\",\n zh: \"其他\",\n },\n};\n\nexport const supportBasicType = [\n \"boolean\",\n \"number\",\n \"string\",\n \"string[]\",\n \"MenuIcon\",\n \"Color\",\n];\n\nexport const supportMenuType = [\"Menu\", \"SidebarSubMenu\"];\n\nexport const OTHER_FORM_ITEM_FIELD = \"others\";\n\nexport const defaultCommonProps: PropertyType[] = [\n {\n name: \"id\",\n type: \"string\",\n description: \"构件 ID\",\n group: \"basic\",\n groupI18N: groupI18nMap,\n },\n {\n name: \"style\",\n type: \"Record<string, any>\",\n description: \"构件样式\",\n group: \"ui\",\n groupI18N: groupI18nMap,\n },\n];\n"],"mappings":";;;;;;AAEO,MAAMA,YAAY,GAAG;EAC1BC,KAAK,EAAE;IACLC,EAAE,EAAE,OADC;IAELC,EAAE,EAAE;EAFC,CADmB;EAK1BC,EAAE,EAAE;IACFF,EAAE,EAAE,IADF;IAEFC,EAAE,EAAE;EAFF,CALsB;EAS1BE,QAAQ,EAAE;IACRH,EAAE,EAAE,UADI;IAERC,EAAE,EAAE;EAFI,CATgB;EAa1BG,aAAa,EAAE;IACbJ,EAAE,EAAE,iBADS;IAEbC,EAAE,EAAE;EAFS,CAbW;EAiB1BI,gBAAgB,EAAE;IAChBL,EAAE,EAAE,oBADY;IAEhBC,EAAE,EAAE;EAFY,CAjBQ;EAqB1BK,KAAK,EAAE;IACLN,EAAE,EAAE,OADC;IAELC,EAAE,EAAE;EAFC;AArBmB,CAArB;;AA2BA,MAAMM,gBAAgB,GAAG,CAC9B,SAD8B,EAE9B,QAF8B,EAG9B,QAH8B,EAI9B,UAJ8B,EAK9B,UAL8B,EAM9B,OAN8B,CAAzB;;AASA,MAAMC,eAAe,GAAG,CAAC,MAAD,EAAS,gBAAT,CAAxB;;AAEA,MAAMC,qBAAqB,GAAG,QAA9B;;AAEA,MAAMC,kBAAkC,GAAG,CAChD;EACEC,IAAI,EAAE,IADR;EAEEC,IAAI,EAAE,QAFR;EAGEC,WAAW,EAAE,OAHf;EAIEC,KAAK,EAAE,OAJT;EAKEC,SAAS,EAAEjB;AALb,CADgD,EAQhD;EACEa,IAAI,EAAE,OADR;EAEEC,IAAI,EAAE,qBAFR;EAGEC,WAAW,EAAE,MAHf;EAIEC,KAAK,EAAE,IAJT;EAKEC,SAAS,EAAEjB;AALb,CARgD,CAA3C"}
|
|
@@ -197,8 +197,13 @@ function groupByType(typeList = []) {
|
|
|
197
197
|
}));
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
function extractCommonProps(typeList) {
|
|
200
|
+
function extractCommonProps(typeList, sharedPropertyList) {
|
|
201
201
|
if ((0, _lodash.isEmpty)(typeList)) return [];
|
|
202
|
-
|
|
202
|
+
|
|
203
|
+
if (sharedPropertyList) {
|
|
204
|
+
return sharedPropertyList.concat(typeList);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return _constant.defaultCommonProps.concat(typeList);
|
|
203
208
|
}
|
|
204
209
|
//# sourceMappingURL=processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","names":["isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","ItemModeType","Advanced","Normal","yamlStringify","indent","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","yaml","safeLoad","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","Object","entries","find","processValue","reduce","obj","v","undefined","supportBasicType","concat","supportMenuType","type","selected","typeItem","OTHER_FORM_ITEM_FIELD","isEmpty","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","omit","groupByType","normals","filter","group","others","groupBy","groupI18N","groupI18nMap","i18nData","i18nText","extractCommonProps","commonProps"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n commonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(typeList: PropertyType[]): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n return commonProps.concat(typeList);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor.js","names":["isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","ItemModeType","Advanced","Normal","yamlStringify","indent","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","yaml","safeLoad","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","Object","entries","find","processValue","reduce","obj","v","undefined","supportBasicType","concat","supportMenuType","type","selected","typeItem","OTHER_FORM_ITEM_FIELD","isEmpty","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","omit","groupByType","normals","filter","group","others","groupBy","groupI18N","groupI18nMap","i18nData","i18nText","extractCommonProps","sharedPropertyList","defaultCommonProps"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(\n typeList: PropertyType[],\n sharedPropertyList?: PropertyType[]\n): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n if (sharedPropertyList) {\n return sharedPropertyList.concat(typeList);\n }\n\n return defaultCommonProps.concat(typeList);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAZ;;WAAYA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAKZ,WAAYC,YAAZ;;WAAYA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,KAAAA,Y"}
|
|
1
|
+
{"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAZ;;WAAYA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAKZ,WAAYC,YAAZ;;WAAYA,Y;EAAAA,Y;EAAAA,Y;GAAAA,Y,KAAAA,Y"}
|
|
@@ -26,6 +26,7 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
26
26
|
brickProperties,
|
|
27
27
|
brickInfo,
|
|
28
28
|
emptyConfig,
|
|
29
|
+
hiddenPropsCategory,
|
|
29
30
|
menuSettingClick
|
|
30
31
|
} = props;
|
|
31
32
|
var [form] = Form.useForm();
|
|
@@ -87,6 +88,8 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
var renderEditorItem = (item, hideIcon) => {
|
|
91
|
+
var _item$editor;
|
|
92
|
+
|
|
90
93
|
return /*#__PURE__*/React.createElement(CodeEditorFormItem, {
|
|
91
94
|
key: item.name,
|
|
92
95
|
name: item.name,
|
|
@@ -95,7 +98,7 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
95
98
|
theme: theme === "dark-v2" ? "monokai" : "tomorrow",
|
|
96
99
|
jsonSchema: item === null || item === void 0 ? void 0 : item.jsonSchema,
|
|
97
100
|
schemaRef: item === null || item === void 0 ? void 0 : item.schemaRef,
|
|
98
|
-
mode: "brick_next_yaml"
|
|
101
|
+
mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml"
|
|
99
102
|
});
|
|
100
103
|
};
|
|
101
104
|
|
|
@@ -215,6 +218,15 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
215
218
|
}
|
|
216
219
|
};
|
|
217
220
|
|
|
221
|
+
var renderOthersItem = () => {
|
|
222
|
+
return /*#__PURE__*/React.createElement(CodeEditorFormItem, {
|
|
223
|
+
name: OTHER_FORM_ITEM_FIELD,
|
|
224
|
+
label: (brickInfo === null || brickInfo === void 0 ? void 0 : brickInfo.type) === "template" ? "other params" : "other properties",
|
|
225
|
+
mode: "brick_next_yaml",
|
|
226
|
+
maxLines: Infinity
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
|
|
218
230
|
return isEmpty(typeList) ? /*#__PURE__*/React.createElement(Empty, {
|
|
219
231
|
className: styles.empty,
|
|
220
232
|
description: emptyConfig === null || emptyConfig === void 0 ? void 0 : emptyConfig.description,
|
|
@@ -226,7 +238,7 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
226
238
|
form: form,
|
|
227
239
|
onValuesChange: props.onValuesChange,
|
|
228
240
|
initialValues: calculateValue(propertyTypeList, brickProperties, typeList)
|
|
229
|
-
}, /*#__PURE__*/React.createElement(Collapse, {
|
|
241
|
+
}, !hiddenPropsCategory ? /*#__PURE__*/React.createElement(Collapse, {
|
|
230
242
|
ghost: true,
|
|
231
243
|
defaultActiveKey: "0",
|
|
232
244
|
className: styles.panelContainer
|
|
@@ -242,12 +254,11 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
242
254
|
forceRender: true,
|
|
243
255
|
header: upperFirst(OTHER_FORM_ITEM_FIELD),
|
|
244
256
|
key: OTHER_FORM_ITEM_FIELD
|
|
245
|
-
}, /*#__PURE__*/React.createElement(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}))));
|
|
257
|
+
}, renderOthersItem())) : /*#__PURE__*/React.createElement(React.Fragment, null, typeList === null || typeList === void 0 ? void 0 : typeList.map(item => {
|
|
258
|
+
return getFormItem(item);
|
|
259
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
260
|
+
className: styles.otherPanel
|
|
261
|
+
}, renderOthersItem())));
|
|
251
262
|
}
|
|
252
263
|
export var VisualPropertyForm = /*#__PURE__*/React.forwardRef(LegacyVisualPropertyForm);
|
|
253
264
|
//# sourceMappingURL=VisualPropertyForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Radio","Select","Tooltip","Collapse","Empty","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","OTHER_FORM_ITEM_FIELD","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","menuSettingClick","form","useForm","typeList","setTypeList","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","newTypeList","newValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","Advanced","Normal","value","includes","type","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","getFormItem","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","onValuesChange","panelContainer","category","list","otherPanel","Infinity","VisualPropertyForm","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n Tooltip,\n Collapse,\n Empty,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport { isNil, pick, upperFirst, isEmpty } from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n} from \"./processor\";\nimport { OTHER_FORM_ITEM_FIELD, supportMenuType } from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n}\n\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n menuSettingClick,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n\n let value = selected.value;\n if (nextMode === ItemModeType.Normal) {\n if (supportMenuType.includes(selected.type as string)) {\n value = matchNoramlMenuValue(value);\n }\n } else if (isNil(selected.value)) {\n value = \"\";\n } else {\n value = yamlStringify(selected.value);\n }\n form.setFieldsValue({\n [name]: value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (item: UnionPropertyType, hideIcon?: boolean) => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode=\"brick_next_yaml\"\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group>\n <Radio value={true}>true</Radio>\n <Radio value={false}>false</Radio>\n </Radio.Group>\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n name=\"propertyForm\"\n layout=\"vertical\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n <Collapse ghost defaultActiveKey=\"0\" className={styles.panelContainer}>\n {groupByType(typeList)?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\"\n ? \"other params\"\n : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n </Collapse.Panel>\n </Collapse>\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Radio","Select","Tooltip","Collapse","Empty","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","OTHER_FORM_ITEM_FIELD","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","form","useForm","typeList","setTypeList","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","newTypeList","newValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","Advanced","Normal","value","includes","type","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","editor","model","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","getFormItem","renderOthersItem","Infinity","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","onValuesChange","panelContainer","category","list","otherPanel","VisualPropertyForm","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Radio,\n Select,\n Tooltip,\n Collapse,\n Empty,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport { isNil, pick, upperFirst, isEmpty } from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n} from \"./processor\";\nimport { OTHER_FORM_ITEM_FIELD, supportMenuType } from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n hiddenPropsCategory?: boolean;\n}\n\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n hiddenPropsCategory,\n menuSettingClick,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n\n let value = selected.value;\n if (nextMode === ItemModeType.Normal) {\n if (supportMenuType.includes(selected.type as string)) {\n value = matchNoramlMenuValue(value);\n }\n } else if (isNil(selected.value)) {\n value = \"\";\n } else {\n value = yamlStringify(selected.value);\n }\n form.setFieldsValue({\n [name]: value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode={item?.editor?.model || \"brick_next_yaml\"}\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group>\n <Radio value={true}>true</Radio>\n <Radio value={false}>false</Radio>\n </Radio.Group>\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n const renderOthersItem = (): React.ReactElement => {\n return (\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\" ? \"other params\" : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n );\n };\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n name=\"propertyForm\"\n layout=\"vertical\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n {!hiddenPropsCategory ? (\n <Collapse ghost defaultActiveKey=\"0\" className={styles.panelContainer}>\n {groupByType(typeList)?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n {renderOthersItem()}\n </Collapse.Panel>\n </Collapse>\n ) : (\n <>\n {typeList?.map((item) => {\n return getFormItem(item);\n })}\n <div className={styles.otherPanel}>{renderOthersItem()}</div>\n </>\n )}\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditorFormItem.js","names":["React","useState","some","Form","CodeEditorItem","CodeEditorFormItem","props","name","label","rest","hasError","setHasError","handleValidate","err","error","validatorFn","Promise","resolve","reject","required","message","validator"],"sources":["../../../../../src/visual-property-form/components/CodeEditor/CodeEditorFormItem.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { some } from \"lodash\";\nimport { Form } from \"antd\";\nimport { FormItemWrapperProps } from \"@next-libs/forms\";\nimport {\n CodeEditorProps,\n CodeEditorItem,\n Error,\n} from \"@next-libs/code-editor-components\";\n\ninterface CodeEditorItemProps extends CodeEditorProps, FormItemWrapperProps {}\n\nexport function CodeEditorFormItem(\n props: CodeEditorItemProps\n): React.ReactElement {\n const { name, label, ...rest } = props;\n const [hasError, setHasError] = useState(false);\n\n const handleValidate = (err: Error[\"err\"]): void => {\n const error = some(err, [\"type\", \"error\"]);\n setHasError(error);\n };\n\n const validatorFn = async () => {\n if (!hasError) {\n return Promise.resolve();\n } else {\n return Promise.reject(\"请填写正确的 yaml 语法\");\n }\n };\n\n return (\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[\n { required: props.required, message: `请输入${props.name}` },\n { validator: validatorFn },\n ]}\n >\n <CodeEditorItem\n tabSize={2}\n minLines={5}\n maxLines={12}\n printMargin={false}\n showLineNumbers={false}\n theme=\"tomorrow\"\n enableLiveAutocompletion={true}\n onValidate={handleValidate}\n {...rest}\n ></CodeEditorItem>\n </Form.Item>\n );\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,IAAT,QAAqB,QAArB;AACA,SAASC,IAAT,QAAqB,MAArB;AAEA,SAEEC,cAFF,QAIO,mCAJP;AAQA,OAAO,SAASC,kBAAT,CACLC,KADK,EAEe;EACpB,IAAM;IAAEC,IAAF;IAAQC;EAAR,IAA2BF,KAAjC;EAAA,IAAwBG,IAAxB,4BAAiCH,KAAjC;;EACA,IAAM,CAACI,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,KAAD,CAAxC;;EAEA,IAAMW,cAAc,GAAIC,GAAD,IAA6B;IAClD,IAAMC,KAAK,GAAGZ,IAAI,CAACW,GAAD,EAAM,CAAC,MAAD,EAAS,OAAT,CAAN,CAAlB;IACAF,WAAW,CAACG,KAAD,CAAX;EACD,CAHD;;EAKA,IAAMC,WAAW;IAAA,6BAAG,aAAY;MAC9B,IAAI,CAACL,QAAL,EAAe;QACb,OAAOM,OAAO,CAACC,OAAR,EAAP;MACD,CAFD,MAEO;QACL,OAAOD,OAAO,CAACE,MAAR,CAAe,gBAAf,CAAP;MACD;IACF,CANgB;;IAAA,gBAAXH,WAAW;MAAA;IAAA;EAAA,GAAjB;;EAQA,oBACE,oBAAC,IAAD,CAAM,IAAN;IACE,GAAG,EAAET,KAAK,CAACC,IADb;IAEE,IAAI,EAAED,KAAK,CAACC,IAFd;IAGE,KAAK,EAAED,KAAK,CAACE,KAHf;IAIE,KAAK,EAAE,CACL;MAAEW,QAAQ,EAAEb,KAAK,CAACa,QAAlB;MAA4BC,OAAO,8BAAQd,KAAK,CAACC,IAAd;IAAnC,CADK,EAEL;MAAEc,SAAS,EAAEN;IAAb,CAFK;EAJT,gBASE,oBAAC,cAAD;IACE,OAAO,EAAE,CADX;IAEE,QAAQ,EAAE,CAFZ;IAGE,QAAQ,EAAE,EAHZ;IAIE,WAAW,EAAE,KAJf;IAKE,eAAe,EAAE,KALnB;IAME,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"CodeEditorFormItem.js","names":["React","useState","some","Form","CodeEditorItem","CodeEditorFormItem","props","name","label","rest","hasError","setHasError","handleValidate","err","error","validatorFn","Promise","resolve","reject","required","message","validator"],"sources":["../../../../../src/visual-property-form/components/CodeEditor/CodeEditorFormItem.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { some } from \"lodash\";\nimport { Form } from \"antd\";\nimport { FormItemWrapperProps } from \"@next-libs/forms\";\nimport {\n CodeEditorProps,\n CodeEditorItem,\n Error,\n} from \"@next-libs/code-editor-components\";\n\ninterface CodeEditorItemProps extends CodeEditorProps, FormItemWrapperProps {}\n\nexport function CodeEditorFormItem(\n props: CodeEditorItemProps\n): React.ReactElement {\n const { name, label, ...rest } = props;\n const [hasError, setHasError] = useState(false);\n\n const handleValidate = (err: Error[\"err\"]): void => {\n const error = some(err, [\"type\", \"error\"]);\n setHasError(error);\n };\n\n const validatorFn = async () => {\n if (!hasError) {\n return Promise.resolve();\n } else {\n return Promise.reject(\"请填写正确的 yaml 语法\");\n }\n };\n\n return (\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[\n { required: props.required, message: `请输入${props.name}` },\n { validator: validatorFn },\n ]}\n >\n <CodeEditorItem\n tabSize={2}\n minLines={5}\n maxLines={12}\n printMargin={false}\n showLineNumbers={false}\n showCopyButton={true}\n showExpandButton={true}\n theme=\"tomorrow\"\n enableLiveAutocompletion={true}\n onValidate={handleValidate}\n {...rest}\n ></CodeEditorItem>\n </Form.Item>\n );\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,IAAT,QAAqB,QAArB;AACA,SAASC,IAAT,QAAqB,MAArB;AAEA,SAEEC,cAFF,QAIO,mCAJP;AAQA,OAAO,SAASC,kBAAT,CACLC,KADK,EAEe;EACpB,IAAM;IAAEC,IAAF;IAAQC;EAAR,IAA2BF,KAAjC;EAAA,IAAwBG,IAAxB,4BAAiCH,KAAjC;;EACA,IAAM,CAACI,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,KAAD,CAAxC;;EAEA,IAAMW,cAAc,GAAIC,GAAD,IAA6B;IAClD,IAAMC,KAAK,GAAGZ,IAAI,CAACW,GAAD,EAAM,CAAC,MAAD,EAAS,OAAT,CAAN,CAAlB;IACAF,WAAW,CAACG,KAAD,CAAX;EACD,CAHD;;EAKA,IAAMC,WAAW;IAAA,6BAAG,aAAY;MAC9B,IAAI,CAACL,QAAL,EAAe;QACb,OAAOM,OAAO,CAACC,OAAR,EAAP;MACD,CAFD,MAEO;QACL,OAAOD,OAAO,CAACE,MAAR,CAAe,gBAAf,CAAP;MACD;IACF,CANgB;;IAAA,gBAAXH,WAAW;MAAA;IAAA;EAAA,GAAjB;;EAQA,oBACE,oBAAC,IAAD,CAAM,IAAN;IACE,GAAG,EAAET,KAAK,CAACC,IADb;IAEE,IAAI,EAAED,KAAK,CAACC,IAFd;IAGE,KAAK,EAAED,KAAK,CAACE,KAHf;IAIE,KAAK,EAAE,CACL;MAAEW,QAAQ,EAAEb,KAAK,CAACa,QAAlB;MAA4BC,OAAO,8BAAQd,KAAK,CAACC,IAAd;IAAnC,CADK,EAEL;MAAEc,SAAS,EAAEN;IAAb,CAFK;EAJT,gBASE,oBAAC,cAAD;IACE,OAAO,EAAE,CADX;IAEE,QAAQ,EAAE,CAFZ;IAGE,QAAQ,EAAE,EAHZ;IAIE,WAAW,EAAE,KAJf;IAKE,eAAe,EAAE,KALnB;IAME,cAAc,EAAE,IANlB;IAOE,gBAAgB,EAAE,IAPpB;IAQE,KAAK,EAAC,UARR;IASE,wBAAwB,EAAE,IAT5B;IAUE,UAAU,EAAEH;EAVd,GAWMH,IAXN,EATF,CADF;AAyBD"}
|
|
@@ -27,7 +27,7 @@ export var groupI18nMap = {
|
|
|
27
27
|
export var supportBasicType = ["boolean", "number", "string", "string[]", "MenuIcon", "Color"];
|
|
28
28
|
export var supportMenuType = ["Menu", "SidebarSubMenu"];
|
|
29
29
|
export var OTHER_FORM_ITEM_FIELD = "others";
|
|
30
|
-
export var
|
|
30
|
+
export var defaultCommonProps = [{
|
|
31
31
|
name: "id",
|
|
32
32
|
type: "string",
|
|
33
33
|
description: "构件 ID",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","names":["groupI18nMap","basic","en","zh","ui","advanced","basicFormItem","advancedFormItem","other","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","
|
|
1
|
+
{"version":3,"file":"constant.js","names":["groupI18nMap","basic","en","zh","ui","advanced","basicFormItem","advancedFormItem","other","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","defaultCommonProps","name","type","description","group","groupI18N"],"sources":["../../../src/visual-property-form/constant.ts"],"sourcesContent":["import { PropertyType } from \"../interfaces\";\n\nexport const groupI18nMap = {\n basic: {\n en: \"Basic\",\n zh: \"常用\",\n },\n ui: {\n en: \"UI\",\n zh: \"外观\",\n },\n advanced: {\n en: \"Advanced\",\n zh: \"高级\",\n },\n basicFormItem: {\n en: \"Basic Form Item\",\n zh: \"表单项常用\",\n },\n advancedFormItem: {\n en: \"Advanced Form Item\",\n zh: \"表单项高级\",\n },\n other: {\n en: \"Other\",\n zh: \"其他\",\n },\n};\n\nexport const supportBasicType = [\n \"boolean\",\n \"number\",\n \"string\",\n \"string[]\",\n \"MenuIcon\",\n \"Color\",\n];\n\nexport const supportMenuType = [\"Menu\", \"SidebarSubMenu\"];\n\nexport const OTHER_FORM_ITEM_FIELD = \"others\";\n\nexport const defaultCommonProps: PropertyType[] = [\n {\n name: \"id\",\n type: \"string\",\n description: \"构件 ID\",\n group: \"basic\",\n groupI18N: groupI18nMap,\n },\n {\n name: \"style\",\n type: \"Record<string, any>\",\n description: \"构件样式\",\n group: \"ui\",\n groupI18N: groupI18nMap,\n },\n];\n"],"mappings":"AAEA,OAAO,IAAMA,YAAY,GAAG;EAC1BC,KAAK,EAAE;IACLC,EAAE,EAAE,OADC;IAELC,EAAE,EAAE;EAFC,CADmB;EAK1BC,EAAE,EAAE;IACFF,EAAE,EAAE,IADF;IAEFC,EAAE,EAAE;EAFF,CALsB;EAS1BE,QAAQ,EAAE;IACRH,EAAE,EAAE,UADI;IAERC,EAAE,EAAE;EAFI,CATgB;EAa1BG,aAAa,EAAE;IACbJ,EAAE,EAAE,iBADS;IAEbC,EAAE,EAAE;EAFS,CAbW;EAiB1BI,gBAAgB,EAAE;IAChBL,EAAE,EAAE,oBADY;IAEhBC,EAAE,EAAE;EAFY,CAjBQ;EAqB1BK,KAAK,EAAE;IACLN,EAAE,EAAE,OADC;IAELC,EAAE,EAAE;EAFC;AArBmB,CAArB;AA2BP,OAAO,IAAMM,gBAAgB,GAAG,CAC9B,SAD8B,EAE9B,QAF8B,EAG9B,QAH8B,EAI9B,UAJ8B,EAK9B,UAL8B,EAM9B,OAN8B,CAAzB;AASP,OAAO,IAAMC,eAAe,GAAG,CAAC,MAAD,EAAS,gBAAT,CAAxB;AAEP,OAAO,IAAMC,qBAAqB,GAAG,QAA9B;AAEP,OAAO,IAAMC,kBAAkC,GAAG,CAChD;EACEC,IAAI,EAAE,IADR;EAEEC,IAAI,EAAE,QAFR;EAGEC,WAAW,EAAE,OAHf;EAIEC,KAAK,EAAE,OAJT;EAKEC,SAAS,EAAEjB;AALb,CADgD,EAQhD;EACEa,IAAI,EAAE,OADR;EAEEC,IAAI,EAAE,qBAFR;EAGEC,WAAW,EAAE,MAHf;EAIEC,KAAK,EAAE,IAJT;EAKEC,SAAS,EAAEjB;AALb,CARgD,CAA3C"}
|
|
@@ -3,7 +3,7 @@ import { i18nText } from "@next-core/brick-kit";
|
|
|
3
3
|
import { ItemModeType } from "../interfaces";
|
|
4
4
|
import { safeDump, JSON_SCHEMA, safeLoad } from "js-yaml";
|
|
5
5
|
import { omit, isEmpty, groupBy } from "lodash";
|
|
6
|
-
import { supportBasicType, supportMenuType, OTHER_FORM_ITEM_FIELD,
|
|
6
|
+
import { supportBasicType, supportMenuType, OTHER_FORM_ITEM_FIELD, defaultCommonProps, groupI18nMap } from "./constant";
|
|
7
7
|
export function isAdvanceMode(value) {
|
|
8
8
|
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${"))) {
|
|
9
9
|
return true;
|
|
@@ -176,8 +176,13 @@ export function groupByType() {
|
|
|
176
176
|
return group;
|
|
177
177
|
}));
|
|
178
178
|
}
|
|
179
|
-
export function extractCommonProps(typeList) {
|
|
179
|
+
export function extractCommonProps(typeList, sharedPropertyList) {
|
|
180
180
|
if (isEmpty(typeList)) return [];
|
|
181
|
-
|
|
181
|
+
|
|
182
|
+
if (sharedPropertyList) {
|
|
183
|
+
return sharedPropertyList.concat(typeList);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return defaultCommonProps.concat(typeList);
|
|
182
187
|
}
|
|
183
188
|
//# sourceMappingURL=processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","names":["i18nText","ItemModeType","safeDump","JSON_SCHEMA","safeLoad","omit","isEmpty","groupBy","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","commonProps","groupI18nMap","isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","Advanced","Normal","yamlStringify","indent","schema","skipInvalid","noRefs","noCompatMode","yaml","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","find","Object","entries","processValue","reduce","obj","v","undefined","concat","type","selected","typeItem","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","groupByType","normals","filter","group","others","groupI18N","i18nData","extractCommonProps"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n commonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(typeList: PropertyType[]): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n return commonProps.concat(typeList);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor.js","names":["i18nText","ItemModeType","safeDump","JSON_SCHEMA","safeLoad","omit","isEmpty","groupBy","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","defaultCommonProps","groupI18nMap","isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","Advanced","Normal","yamlStringify","indent","schema","skipInvalid","noRefs","noCompatMode","yaml","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","find","Object","entries","processValue","reduce","obj","v","undefined","concat","type","selected","typeItem","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","groupByType","normals","filter","group","others","groupI18N","i18nData","extractCommonProps","sharedPropertyList"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(\n typeList: PropertyType[],\n sharedPropertyList?: PropertyType[]\n): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n if (sharedPropertyList) {\n return sharedPropertyList.concat(typeList);\n }\n\n return defaultCommonProps.concat(typeList);\n}\n"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export interface VisualPropertyFormProps {
|
|
|
17
17
|
};
|
|
18
18
|
emptyConfig?: EmptyProps;
|
|
19
19
|
menuSettingClick?: () => void;
|
|
20
|
+
hiddenPropsCategory?: boolean;
|
|
20
21
|
}
|
|
21
22
|
export declare function LegacyVisualPropertyForm(props: VisualPropertyFormProps, ref: React.Ref<visualFormUtils>): React.ReactElement;
|
|
22
23
|
export declare const VisualPropertyForm: React.ForwardRefExoticComponent<VisualPropertyFormProps & React.RefAttributes<visualFormUtils>>;
|
|
@@ -28,4 +28,4 @@ export declare const groupI18nMap: {
|
|
|
28
28
|
export declare const supportBasicType: string[];
|
|
29
29
|
export declare const supportMenuType: string[];
|
|
30
30
|
export declare const OTHER_FORM_ITEM_FIELD = "others";
|
|
31
|
-
export declare const
|
|
31
|
+
export declare const defaultCommonProps: PropertyType[];
|
|
@@ -24,4 +24,4 @@ export declare function isUseMenuParse(field: {
|
|
|
24
24
|
}, typeList: UnionPropertyType[]): boolean;
|
|
25
25
|
export declare function processFormValue(values: {}, typeList: UnionPropertyType[]): Record<string, any>;
|
|
26
26
|
export declare function groupByType(typeList?: UnionPropertyType[]): Array<[string, UnionPropertyType[]]>;
|
|
27
|
-
export declare function extractCommonProps(typeList: PropertyType[]): PropertyType[];
|
|
27
|
+
export declare function extractCommonProps(typeList: PropertyType[], sharedPropertyList?: PropertyType[]): PropertyType[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/visual-builder",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/visual-builder",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"@next-dll/ace": "*"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@next-libs/basic-components": "^3.
|
|
33
|
-
"@next-libs/code-editor-components": "^4.1.
|
|
34
|
-
"@next-libs/forms": "^3.2.
|
|
32
|
+
"@next-libs/basic-components": "^3.6.0",
|
|
33
|
+
"@next-libs/code-editor-components": "^4.1.4",
|
|
34
|
+
"@next-libs/forms": "^3.2.29",
|
|
35
35
|
"@types/react-color": "^3.0.6",
|
|
36
36
|
"react-color": "^2.19.3"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "afe1b92b0f4bb17540803ff89c4a9c6dce7a5a18"
|
|
39
39
|
}
|