@next-libs/visual-builder 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/visual-property-form/VisualPropertyForm.js +24 -14
- package/dist/cjs/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/cjs/visual-property-form/components/ListEditor/ListEditor.js +6 -0
- package/dist/cjs/visual-property-form/components/ListEditor/ListEditor.js.map +1 -1
- package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js +1 -1
- package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
- package/dist/cjs/visual-property-form/processor.js +3 -3
- package/dist/cjs/visual-property-form/processor.js.map +1 -1
- package/dist/esm/visual-property-form/VisualPropertyForm.js +24 -14
- package/dist/esm/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/esm/visual-property-form/VisualPropertyForm.module.css +5 -2
- package/dist/esm/visual-property-form/components/ListEditor/ListEditor.js +6 -1
- package/dist/esm/visual-property-form/components/ListEditor/ListEditor.js.map +1 -1
- package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js +1 -1
- package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
- package/dist/esm/visual-property-form/processor.js +3 -3
- package/dist/esm/visual-property-form/processor.js.map +1 -1
- package/package.json +4 -4
|
@@ -25,7 +25,6 @@ var _constant = require("./constant");
|
|
|
25
25
|
var _interfaces = require("../interfaces");
|
|
26
26
|
const ButtonTypeEmun = ["link", "default", "primary", "ghost", "dashed", "icon", "text"];
|
|
27
27
|
function LegacyVisualPropertyForm(props, ref) {
|
|
28
|
-
var _groupByType;
|
|
29
28
|
const theme = (0, _brickKit.useCurrentTheme)();
|
|
30
29
|
const {
|
|
31
30
|
projectId,
|
|
@@ -49,12 +48,14 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
49
48
|
},
|
|
50
49
|
getCurTypeList: () => {
|
|
51
50
|
return typeList === null || typeList === void 0 ? void 0 : typeList.map(item => (0, _lodash.pick)(item, ["name", "type", "mode"]));
|
|
52
|
-
}
|
|
51
|
+
},
|
|
52
|
+
getFieldsValue: form.getFieldsValue
|
|
53
53
|
}));
|
|
54
54
|
(0, _react.useEffect)(() => {
|
|
55
55
|
const newTypeList = (0, _processor.mergeProperties)(propertyTypeList, brickProperties);
|
|
56
56
|
setTypeList(newTypeList);
|
|
57
57
|
const newValue = (0, _processor.calculateValue)(propertyTypeList, brickProperties, newTypeList);
|
|
58
|
+
form.resetFields();
|
|
58
59
|
form.setFieldsValue(newValue);
|
|
59
60
|
}, [propertyTypeList, brickProperties]);
|
|
60
61
|
const handleLabelClick = name => {
|
|
@@ -125,7 +126,9 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
125
126
|
required: item.required === _interfaces.Required.True,
|
|
126
127
|
message: `请输入${item.name}`
|
|
127
128
|
}]
|
|
128
|
-
}, /*#__PURE__*/_react.default.createElement(_antd.Switch,
|
|
129
|
+
}, /*#__PURE__*/_react.default.createElement(_antd.Switch, {
|
|
130
|
+
defaultChecked: props.brickProperties[item.name]
|
|
131
|
+
}));
|
|
129
132
|
};
|
|
130
133
|
const renderInputNumberItem = item => {
|
|
131
134
|
return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
@@ -211,10 +214,11 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
211
214
|
value: value
|
|
212
215
|
}),
|
|
213
216
|
onChange: value => {
|
|
214
|
-
|
|
217
|
+
const changeValue = {
|
|
215
218
|
[item.name]: value
|
|
216
|
-
}
|
|
217
|
-
|
|
219
|
+
};
|
|
220
|
+
form.setFieldsValue(changeValue);
|
|
221
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
218
222
|
}
|
|
219
223
|
});
|
|
220
224
|
};
|
|
@@ -258,10 +262,11 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
258
262
|
}),
|
|
259
263
|
renderFormItem: renderFormItem,
|
|
260
264
|
onChange: value => {
|
|
261
|
-
|
|
265
|
+
const changeValue = {
|
|
262
266
|
[item.name]: value
|
|
263
|
-
}
|
|
264
|
-
|
|
267
|
+
};
|
|
268
|
+
form.setFieldsValue(changeValue);
|
|
269
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
265
270
|
}
|
|
266
271
|
});
|
|
267
272
|
};
|
|
@@ -331,10 +336,11 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
331
336
|
text: value
|
|
332
337
|
}),
|
|
333
338
|
onChange: value => {
|
|
334
|
-
|
|
339
|
+
const changeValue = {
|
|
335
340
|
[item.name]: value
|
|
336
|
-
}
|
|
337
|
-
|
|
341
|
+
};
|
|
342
|
+
form.setFieldsValue(changeValue);
|
|
343
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
338
344
|
}
|
|
339
345
|
});
|
|
340
346
|
};
|
|
@@ -398,6 +404,9 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
398
404
|
maxLines: Infinity
|
|
399
405
|
});
|
|
400
406
|
};
|
|
407
|
+
const gorupList = _react.default.useMemo(() => {
|
|
408
|
+
return (0, _processor.groupByType)(typeList);
|
|
409
|
+
}, [typeList]);
|
|
401
410
|
return (0, _lodash.isEmpty)(typeList) ? /*#__PURE__*/_react.default.createElement(_antd.Empty, {
|
|
402
411
|
className: _VisualPropertyFormModule.default.empty,
|
|
403
412
|
description: emptyConfig === null || emptyConfig === void 0 ? void 0 : emptyConfig.description,
|
|
@@ -413,14 +422,15 @@ function LegacyVisualPropertyForm(props, ref) {
|
|
|
413
422
|
minWidth: "120px"
|
|
414
423
|
}
|
|
415
424
|
},
|
|
425
|
+
size: "small",
|
|
416
426
|
form: form,
|
|
417
427
|
onValuesChange: props.onValuesChange,
|
|
418
428
|
initialValues: (0, _processor.calculateValue)(propertyTypeList, brickProperties, typeList)
|
|
419
429
|
}, !hiddenPropsCategory ? /*#__PURE__*/_react.default.createElement(_antd.Collapse, {
|
|
420
430
|
ghost: true,
|
|
421
|
-
defaultActiveKey:
|
|
431
|
+
defaultActiveKey: gorupList.map((_, index) => String(index)),
|
|
422
432
|
className: _VisualPropertyFormModule.default.panelContainer
|
|
423
|
-
},
|
|
433
|
+
}, gorupList === null || gorupList === void 0 ? void 0 : gorupList.map(([category, list], index) => {
|
|
424
434
|
return /*#__PURE__*/_react.default.createElement(_antd.Collapse.Panel, {
|
|
425
435
|
header: (0, _lodash.upperFirst)(category),
|
|
426
436
|
key: index,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualPropertyForm.js","names":["ButtonTypeEmun","LegacyVisualPropertyForm","props","ref","theme","useCurrentTheme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","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","renderGeneralOptipns","renderFormItem","label","disabled","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","OTHER_FORM_ITEM_FIELD","Infinity","isEmpty","empty","Empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","style","minWidth","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 Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\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 { ListEditor } from \"./components/ListEditor/ListEditor\";\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\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\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 childMountPointList?: string[];\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 childMountPointList,\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 <Switch />\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 renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\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\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\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 // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(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 className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"right\"\n labelCol={{\n style: {\n minWidth: \"120px\",\n },\n }}\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
|
+
{"version":3,"file":"VisualPropertyForm.js","names":["ButtonTypeEmun","LegacyVisualPropertyForm","props","ref","theme","useCurrentTheme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","form","Form","useForm","typeList","setTypeList","useState","mergeProperties","useImperativeHandle","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","pick","getFieldsValue","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","renderGeneralOptipns","renderFormItem","label","disabled","changeValue","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","OTHER_FORM_ITEM_FIELD","Infinity","gorupList","React","useMemo","groupByType","isEmpty","empty","Empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","style","minWidth","_","String","panelContainer","category","list","upperFirst","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 Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\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 { ListEditor } from \"./components/ListEditor/ListEditor\";\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\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\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 childMountPointList?: string[];\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 childMountPointList,\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 getFieldsValue: form.getFieldsValue,\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.resetFields();\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 <Switch defaultChecked={props.brickProperties[item.name]} />\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 renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\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\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\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 // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(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 const gorupList = React.useMemo(() => {\n return groupByType(typeList);\n }, [typeList]);\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 className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"right\"\n labelCol={{\n style: {\n minWidth: \"120px\",\n },\n }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n >\n {gorupList?.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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"}
|
|
@@ -26,6 +26,12 @@ function ListEditor({
|
|
|
26
26
|
...item,
|
|
27
27
|
[COLUMN_KEY]: ++key
|
|
28
28
|
})));
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
setList((value !== null && value !== void 0 ? value : []).map(item => ({
|
|
31
|
+
...item,
|
|
32
|
+
[COLUMN_KEY]: ++key
|
|
33
|
+
})));
|
|
34
|
+
}, [value]);
|
|
29
35
|
const handleRemoveItem = (0, _react.useCallback)((e, item) => {
|
|
30
36
|
e.stopPropagation();
|
|
31
37
|
const key = item[COLUMN_KEY];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListEditor.js","names":["COLUMN_KEY","Symbol","for","key","ListEditor","name","label","value","required","listItemKey","getDefaultItem","renderFormItem","onChange","list","setList","useState","map","item","handleRemoveItem","useCallback","e","stopPropagation","newList","filter","handleAddListItem","defaultValue","length","concat","renderListForm","handleOnValuesChange","changeValues","style","minWidth","renderListContent","useMemo","styles","listContent","index","zIndex","listItem","lib","category","icon","color","padding","border","borderRadius","listEmptyItem","listContainer","message","addListItem","marginRight"],"sources":["../../../../../src/visual-property-form/components/ListEditor/ListEditor.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo } from \"react\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { Form, Popover } from \"antd\";\nimport styles from \"./ListEditor.module.css\";\n\nconst COLUMN_KEY = Symbol.for(\"column_key\");\n\ninterface ListEditor {\n name?: string;\n label?: string | React.ReactElement;\n value?: any[];\n required?: boolean;\n listItemKey: string;\n getDefaultItem: (data: any) => Record<string, any>;\n renderFormItem?: (data: any) => React.ReactElement;\n onChange?: (data: any) => void;\n}\n\nlet key = 0;\n\nexport function ListEditor({\n name,\n label,\n value,\n required,\n listItemKey,\n getDefaultItem,\n renderFormItem,\n onChange,\n}: ListEditor): React.ReactElement {\n const [list, setList] = useState<any[]>(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n\n const handleRemoveItem = useCallback(\n (e: React.MouseEvent, item: any): void => {\n e.stopPropagation();\n const key = item[COLUMN_KEY];\n const newList = list.filter((item) => item[COLUMN_KEY] !== key);\n setList(newList);\n onChange(newList);\n },\n [list, onChange]\n );\n\n const handleAddListItem = (): void => {\n key++;\n const defaultValue = `newItem(${list.length})`;\n const newList = list.concat([\n { ...getDefaultItem(defaultValue), [COLUMN_KEY]: key },\n ]);\n setList(newList);\n onChange?.(newList);\n };\n\n const renderListForm = useCallback(\n (item: any): React.ReactElement => {\n const handleOnValuesChange = (changeValues: any): void => {\n const key = item[COLUMN_KEY];\n const newList = list.map((item) => {\n if (item[COLUMN_KEY] === key) {\n item = {\n ...item,\n ...changeValues,\n };\n }\n return item;\n });\n setList(newList);\n onChange?.(newList);\n };\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={handleOnValuesChange}\n >\n {renderFormItem(item)}\n </Form>\n );\n },\n [list, onChange, renderFormItem]\n );\n\n const renderListContent = useMemo((): React.ReactElement => {\n return (\n <div className={styles.listContent}>\n {list.length ? (\n list.map((item, index) => {\n return (\n <Popover\n key={index}\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderListForm(item)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.listItem}>\n <span>{item[listItemKey]}</span>\n <span onClick={(e) => handleRemoveItem(e, item)}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"out\",\n color: \"red\",\n }}\n style={{\n padding: \"2px\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n }}\n />\n </span>\n </div>\n </Popover>\n );\n })\n ) : (\n <div className={styles.listEmptyItem}>No data</div>\n )}\n </div>\n );\n }, [list, renderListForm, listItemKey, handleRemoveItem]);\n\n return (\n <div className={styles.listContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <div className={styles.listContent}>{renderListContent}</div>\n <span className={styles.addListItem} onClick={handleAddListItem}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"xin\",\n color: \"blue\",\n }}\n style={{\n marginRight: \"4px\",\n }}\n />\n 添加\n </span>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAEA,MAAMA,UAAU,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAa3C,IAAIC,GAAG,GAAG,CAAC;AAEJ,SAASC,UAAU,CAAC;EACzBC,IAAI;EACJC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC,WAAW;EACXC,cAAc;EACdC,cAAc;EACdC;AACU,CAAC,EAAsB;EACjC,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAC9B,CAACR,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAES,GAAG,CAAEC,IAAI,KAAM;IAC3B,GAAGA,IAAI;IACP,CAACjB,UAAU,GAAG,EAAEG;EAClB,CAAC,CAAC,CAAC,CACJ;EAED,
|
|
1
|
+
{"version":3,"file":"ListEditor.js","names":["COLUMN_KEY","Symbol","for","key","ListEditor","name","label","value","required","listItemKey","getDefaultItem","renderFormItem","onChange","list","setList","useState","map","item","useEffect","handleRemoveItem","useCallback","e","stopPropagation","newList","filter","handleAddListItem","defaultValue","length","concat","renderListForm","handleOnValuesChange","changeValues","style","minWidth","renderListContent","useMemo","styles","listContent","index","zIndex","listItem","lib","category","icon","color","padding","border","borderRadius","listEmptyItem","listContainer","message","addListItem","marginRight"],"sources":["../../../../../src/visual-property-form/components/ListEditor/ListEditor.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { Form, Popover } from \"antd\";\nimport styles from \"./ListEditor.module.css\";\n\nconst COLUMN_KEY = Symbol.for(\"column_key\");\n\ninterface ListEditor {\n name?: string;\n label?: string | React.ReactElement;\n value?: any[];\n required?: boolean;\n listItemKey: string;\n getDefaultItem: (data: any) => Record<string, any>;\n renderFormItem?: (data: any) => React.ReactElement;\n onChange?: (data: any) => void;\n}\n\nlet key = 0;\n\nexport function ListEditor({\n name,\n label,\n value,\n required,\n listItemKey,\n getDefaultItem,\n renderFormItem,\n onChange,\n}: ListEditor): React.ReactElement {\n const [list, setList] = useState<any[]>(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n\n useEffect(() => {\n setList(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n }, [value]);\n\n const handleRemoveItem = useCallback(\n (e: React.MouseEvent, item: any): void => {\n e.stopPropagation();\n const key = item[COLUMN_KEY];\n const newList = list.filter((item) => item[COLUMN_KEY] !== key);\n setList(newList);\n onChange(newList);\n },\n [list, onChange]\n );\n\n const handleAddListItem = (): void => {\n key++;\n const defaultValue = `newItem(${list.length})`;\n const newList = list.concat([\n { ...getDefaultItem(defaultValue), [COLUMN_KEY]: key },\n ]);\n setList(newList);\n onChange?.(newList);\n };\n\n const renderListForm = useCallback(\n (item: any): React.ReactElement => {\n const handleOnValuesChange = (changeValues: any): void => {\n const key = item[COLUMN_KEY];\n const newList = list.map((item) => {\n if (item[COLUMN_KEY] === key) {\n item = {\n ...item,\n ...changeValues,\n };\n }\n return item;\n });\n setList(newList);\n onChange?.(newList);\n };\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={handleOnValuesChange}\n >\n {renderFormItem(item)}\n </Form>\n );\n },\n [list, onChange, renderFormItem]\n );\n\n const renderListContent = useMemo((): React.ReactElement => {\n return (\n <div className={styles.listContent}>\n {list.length ? (\n list.map((item, index) => {\n return (\n <Popover\n key={index}\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderListForm(item)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.listItem}>\n <span>{item[listItemKey]}</span>\n <span onClick={(e) => handleRemoveItem(e, item)}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"out\",\n color: \"red\",\n }}\n style={{\n padding: \"2px\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n }}\n />\n </span>\n </div>\n </Popover>\n );\n })\n ) : (\n <div className={styles.listEmptyItem}>No data</div>\n )}\n </div>\n );\n }, [list, renderListForm, listItemKey, handleRemoveItem]);\n\n return (\n <div className={styles.listContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <div className={styles.listContent}>{renderListContent}</div>\n <span className={styles.addListItem} onClick={handleAddListItem}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"xin\",\n color: \"blue\",\n }}\n style={{\n marginRight: \"4px\",\n }}\n />\n 添加\n </span>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuEditorItem.js","names":["MenuEditorItem","props","options","setOptions","useState","getMenu","result","InstanceApi_getDetail","projectId","fields","menus","map","item","value","menuId","label","handleMenuSettingClick","menuSettingClick","useEffect","display","alignItems","name","required","message","width","input","option","toLocaleLowerCase","indexOf","fontSize","
|
|
1
|
+
{"version":3,"file":"MenuEditorItem.js","names":["MenuEditorItem","props","options","setOptions","useState","getMenu","result","InstanceApi_getDetail","projectId","fields","menus","map","item","value","menuId","label","handleMenuSettingClick","menuSettingClick","useEffect","display","alignItems","name","required","message","width","input","option","toLocaleLowerCase","indexOf","fontSize","marginBottom","marginLeft","cursor","category","color","icon","lib"],"sources":["../../../../../src/visual-property-form/components/MenuEditor/MenuEditorItem.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Form, Select, Tooltip } from \"antd\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { InstanceApi_getDetail } from \"@next-sdk/cmdb-sdk\";\n\ninterface MenuEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n value?: string;\n required?: boolean;\n projectId?: string;\n menuSettingClick?: () => void;\n}\n\nexport function MenuEditorItem(props: MenuEditorItemProps): React.ReactElement {\n const [options, setOptions] = useState([]);\n\n const getMenu = async () => {\n const result = await InstanceApi_getDetail(\n \"PROJECT_MICRO_APP\",\n props.projectId,\n {\n fields: \"menus.menuId\",\n }\n );\n\n const options = result.menus.map((item: Record<string, any>) => ({\n value: item.menuId,\n label: item.menuId,\n }));\n setOptions(options);\n };\n\n const handleMenuSettingClick = () => {\n props.menuSettingClick();\n };\n\n useEffect(() => {\n if (props.projectId) {\n getMenu();\n }\n }, []);\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[{ required: props.required, message: `请输入${props.name}` }]}\n >\n <Select\n style={{\n width: \"300px\",\n }}\n options={options}\n showSearch\n allowClear\n placeholder=\"Select a menu id\"\n filterOption={(input, option) =>\n (option.label as string)\n .toLocaleLowerCase()\n .indexOf(input.toLocaleLowerCase()) >= 0 ||\n (option.value as string)\n .toLocaleLowerCase()\n .indexOf(input.toLocaleLowerCase()) >= 0\n }\n />\n </Form.Item>\n <div\n style={{\n fontSize: \"18px\",\n marginBottom: \"8px\",\n marginLeft: \"10px\",\n cursor: \"pointer\",\n display: \"inline-block\",\n }}\n >\n <Tooltip title=\"配置菜单数据\">\n {\" \"}\n <GeneralIcon\n icon={{\n category: \"app\",\n color: \"blue\",\n icon: \"launchpad-setting\",\n lib: \"easyops\",\n }}\n onClick={handleMenuSettingClick}\n />\n </Tooltip>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAWO,SAASA,cAAc,CAACC,KAA0B,EAAsB;EAC7E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAE1C,MAAMC,OAAO,GAAG,YAAY;IAC1B,MAAMC,MAAM,GAAG,MAAM,IAAAC,8BAAqB,EACxC,mBAAmB,EACnBN,KAAK,CAACO,SAAS,EACf;MACEC,MAAM,EAAE;IACV,CAAC,CACF;IAED,MAAMP,OAAO,GAAGI,MAAM,CAACI,KAAK,CAACC,GAAG,CAAEC,IAAyB,KAAM;MAC/DC,KAAK,EAAED,IAAI,CAACE,MAAM;MAClBC,KAAK,EAAEH,IAAI,CAACE;IACd,CAAC,CAAC,CAAC;IACHX,UAAU,CAACD,OAAO,CAAC;EACrB,CAAC;EAED,MAAMc,sBAAsB,GAAG,MAAM;IACnCf,KAAK,CAACgB,gBAAgB,EAAE;EAC1B,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIjB,KAAK,CAACO,SAAS,EAAE;MACnBH,OAAO,EAAE;IACX;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE;IACE,KAAK,EAAE;MACLc,OAAO,EAAE,MAAM;MACfC,UAAU,EAAE;IACd;EAAE,gBAEF,6BAAC,UAAI,CAAC,IAAI;IACR,GAAG,EAAEnB,KAAK,CAACoB,IAAK;IAChB,IAAI,EAAEpB,KAAK,CAACoB,IAAK;IACjB,KAAK,EAAEpB,KAAK,CAACc,KAAM;IACnB,KAAK,EAAE,CAAC;MAAEO,QAAQ,EAAErB,KAAK,CAACqB,QAAQ;MAAEC,OAAO,EAAG,MAAKtB,KAAK,CAACoB,IAAK;IAAE,CAAC;EAAE,gBAEnE,6BAAC,YAAM;IACL,KAAK,EAAE;MACLG,KAAK,EAAE;IACT,CAAE;IACF,OAAO,EAAEtB,OAAQ;IACjB,UAAU;IACV,UAAU;IACV,WAAW,EAAC,kBAAkB;IAC9B,YAAY,EAAE,CAACuB,KAAK,EAAEC,MAAM,KACzBA,MAAM,CAACX,KAAK,CACVY,iBAAiB,EAAE,CACnBC,OAAO,CAACH,KAAK,CAACE,iBAAiB,EAAE,CAAC,IAAI,CAAC,IACzCD,MAAM,CAACb,KAAK,CACVc,iBAAiB,EAAE,CACnBC,OAAO,CAACH,KAAK,CAACE,iBAAiB,EAAE,CAAC,IAAI;EAC1C,EACD,CACQ,eACZ;IACE,KAAK,EAAE;MACLE,QAAQ,EAAE,MAAM;MAChBC,YAAY,EAAE,KAAK;MACnBC,UAAU,EAAE,MAAM;MAClBC,MAAM,EAAE,SAAS;MACjBb,OAAO,EAAE;IACX;EAAE,gBAEF,6BAAC,aAAO;IAAC,KAAK,EAAC;EAAQ,GACpB,GAAG,eACJ,6BAAC,4BAAW;IACV,IAAI,EAAE;MACJc,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAE,MAAM;MACbC,IAAI,EAAE,mBAAmB;MACzBC,GAAG,EAAE;IACP,CAAE;IACF,OAAO,EAAEpB;EAAuB,EAChC,CACM,CACN,CACF;AAEV"}
|
|
@@ -20,7 +20,7 @@ var _jsYaml = require("js-yaml");
|
|
|
20
20
|
var _lodash = require("lodash");
|
|
21
21
|
var _constant = require("./constant");
|
|
22
22
|
function isAdvanceMode(value) {
|
|
23
|
-
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${"))) {
|
|
23
|
+
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${")) || typeof value === "object") {
|
|
24
24
|
return true;
|
|
25
25
|
}
|
|
26
26
|
return false;
|
|
@@ -53,7 +53,7 @@ function matchNoramlMenuValue(value) {
|
|
|
53
53
|
const reg = /<% APP\.getMenu\((.*)\) %>/;
|
|
54
54
|
return ((_value$match = value.match(reg)) === null || _value$match === void 0 ? void 0 : (_value$match$ = _value$match[1]) === null || _value$match$ === void 0 ? void 0 : _value$match$.replace(/'|"/g, "")) || value;
|
|
55
55
|
}
|
|
56
|
-
return value;
|
|
56
|
+
return yamlStringify(value);
|
|
57
57
|
}
|
|
58
58
|
function calcMenuValue(value) {
|
|
59
59
|
if (typeof value === "string") {
|
|
@@ -82,7 +82,7 @@ function calculateValue(propertyList = [], brickProperties = {}, typeList = [])
|
|
|
82
82
|
if (_constant.supportMenuType.includes(item.type)) {
|
|
83
83
|
const selected = typeList.find(typeItem => typeItem.name === item.name);
|
|
84
84
|
if ((selected === null || selected === void 0 ? void 0 : selected.mode) === _interfaces.ItemModeType.Advanced) {
|
|
85
|
-
obj[item.name] = v;
|
|
85
|
+
obj[item.name] = yamlStringify(v);
|
|
86
86
|
} else {
|
|
87
87
|
obj[item.name] = matchNoramlMenuValue(v);
|
|
88
88
|
}
|
|
@@ -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","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
|
+
{"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 typeof value === \"object\"\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 yamlStringify(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] = yamlStringify(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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"}
|
|
@@ -18,7 +18,6 @@ import { matchNoramlMenuValue } from "./processor";
|
|
|
18
18
|
import { ItemModeType, Required } from "../interfaces";
|
|
19
19
|
var ButtonTypeEmun = ["link", "default", "primary", "ghost", "dashed", "icon", "text"];
|
|
20
20
|
export function LegacyVisualPropertyForm(props, ref) {
|
|
21
|
-
var _groupByType;
|
|
22
21
|
var theme = useCurrentTheme();
|
|
23
22
|
var {
|
|
24
23
|
projectId,
|
|
@@ -42,12 +41,14 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
42
41
|
},
|
|
43
42
|
getCurTypeList: () => {
|
|
44
43
|
return typeList === null || typeList === void 0 ? void 0 : typeList.map(item => pick(item, ["name", "type", "mode"]));
|
|
45
|
-
}
|
|
44
|
+
},
|
|
45
|
+
getFieldsValue: form.getFieldsValue
|
|
46
46
|
}));
|
|
47
47
|
useEffect(() => {
|
|
48
48
|
var newTypeList = mergeProperties(propertyTypeList, brickProperties);
|
|
49
49
|
setTypeList(newTypeList);
|
|
50
50
|
var newValue = calculateValue(propertyTypeList, brickProperties, newTypeList);
|
|
51
|
+
form.resetFields();
|
|
51
52
|
form.setFieldsValue(newValue);
|
|
52
53
|
}, [propertyTypeList, brickProperties]);
|
|
53
54
|
var handleLabelClick = name => {
|
|
@@ -117,7 +118,9 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
117
118
|
required: item.required === Required.True,
|
|
118
119
|
message: "\u8BF7\u8F93\u5165".concat(item.name)
|
|
119
120
|
}]
|
|
120
|
-
}, /*#__PURE__*/React.createElement(Switch,
|
|
121
|
+
}, /*#__PURE__*/React.createElement(Switch, {
|
|
122
|
+
defaultChecked: props.brickProperties[item.name]
|
|
123
|
+
}));
|
|
121
124
|
};
|
|
122
125
|
var renderInputNumberItem = item => {
|
|
123
126
|
return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
|
|
@@ -203,10 +206,11 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
203
206
|
value: value
|
|
204
207
|
}),
|
|
205
208
|
onChange: value => {
|
|
206
|
-
|
|
209
|
+
var changeValue = {
|
|
207
210
|
[item.name]: value
|
|
208
|
-
}
|
|
209
|
-
|
|
211
|
+
};
|
|
212
|
+
form.setFieldsValue(changeValue);
|
|
213
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
210
214
|
}
|
|
211
215
|
});
|
|
212
216
|
};
|
|
@@ -250,10 +254,11 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
250
254
|
}),
|
|
251
255
|
renderFormItem: renderFormItem,
|
|
252
256
|
onChange: value => {
|
|
253
|
-
|
|
257
|
+
var changeValue = {
|
|
254
258
|
[item.name]: value
|
|
255
|
-
}
|
|
256
|
-
|
|
259
|
+
};
|
|
260
|
+
form.setFieldsValue(changeValue);
|
|
261
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
257
262
|
}
|
|
258
263
|
});
|
|
259
264
|
};
|
|
@@ -323,10 +328,11 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
323
328
|
text: value
|
|
324
329
|
}),
|
|
325
330
|
onChange: value => {
|
|
326
|
-
|
|
331
|
+
var changeValue = {
|
|
327
332
|
[item.name]: value
|
|
328
|
-
}
|
|
329
|
-
|
|
333
|
+
};
|
|
334
|
+
form.setFieldsValue(changeValue);
|
|
335
|
+
props.onValuesChange(changeValue, form.getFieldsValue());
|
|
330
336
|
}
|
|
331
337
|
});
|
|
332
338
|
};
|
|
@@ -390,6 +396,9 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
390
396
|
maxLines: Infinity
|
|
391
397
|
});
|
|
392
398
|
};
|
|
399
|
+
var gorupList = React.useMemo(() => {
|
|
400
|
+
return groupByType(typeList);
|
|
401
|
+
}, [typeList]);
|
|
393
402
|
return isEmpty(typeList) ? /*#__PURE__*/React.createElement(Empty, {
|
|
394
403
|
className: styles.empty,
|
|
395
404
|
description: emptyConfig === null || emptyConfig === void 0 ? void 0 : emptyConfig.description,
|
|
@@ -405,14 +414,15 @@ export function LegacyVisualPropertyForm(props, ref) {
|
|
|
405
414
|
minWidth: "120px"
|
|
406
415
|
}
|
|
407
416
|
},
|
|
417
|
+
size: "small",
|
|
408
418
|
form: form,
|
|
409
419
|
onValuesChange: props.onValuesChange,
|
|
410
420
|
initialValues: calculateValue(propertyTypeList, brickProperties, typeList)
|
|
411
421
|
}, !hiddenPropsCategory ? /*#__PURE__*/React.createElement(Collapse, {
|
|
412
422
|
ghost: true,
|
|
413
|
-
defaultActiveKey:
|
|
423
|
+
defaultActiveKey: gorupList.map((_, index) => String(index)),
|
|
414
424
|
className: styles.panelContainer
|
|
415
|
-
},
|
|
425
|
+
}, gorupList === null || gorupList === void 0 ? void 0 : gorupList.map((_ref, index) => {
|
|
416
426
|
var [category, list] = _ref;
|
|
417
427
|
return /*#__PURE__*/React.createElement(Collapse.Panel, {
|
|
418
428
|
header: upperFirst(category),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","OTHER_FORM_ITEM_FIELD","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","ButtonTypeEmun","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","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","renderGeneralOptipns","renderFormItem","label","disabled","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","Infinity","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","style","minWidth","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 Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\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 { ListEditor } from \"./components/ListEditor/ListEditor\";\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\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\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 childMountPointList?: string[];\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 childMountPointList,\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 <Switch />\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 renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\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\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\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 // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(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 className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"right\"\n labelCol={{\n style: {\n minWidth: \"120px\",\n },\n }}\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
|
+
{"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","OTHER_FORM_ITEM_FIELD","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","ButtonTypeEmun","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","form","useForm","typeList","setTypeList","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","getFieldsValue","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","renderGeneralOptipns","renderFormItem","label","disabled","changeValue","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","Infinity","gorupList","useMemo","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","style","minWidth","_","String","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 Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\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 { ListEditor } from \"./components/ListEditor/ListEditor\";\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\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\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 childMountPointList?: string[];\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 childMountPointList,\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 getFieldsValue: form.getFieldsValue,\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.resetFields();\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 <Switch defaultChecked={props.brickProperties[item.name]} />\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 renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\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\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\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 // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(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 const gorupList = React.useMemo(() => {\n return groupByType(typeList);\n }, [typeList]);\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 className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"right\"\n labelCol={{\n style: {\n minWidth: \"120px\",\n },\n }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n >\n {gorupList?.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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"}
|
|
@@ -11,17 +11,20 @@
|
|
|
11
11
|
.panelContainer {
|
|
12
12
|
> :global(.ant-collapse-item) {
|
|
13
13
|
> :global(.ant-collapse-header) {
|
|
14
|
+
background: var(--color-fill-bg-base-2);
|
|
15
|
+
padding: 2px 6px;
|
|
16
|
+
padding-left: 40px;
|
|
14
17
|
font-size: 16px;
|
|
15
18
|
font-weight: 500;
|
|
16
19
|
> :global(.ant-collapse-arrow) {
|
|
17
|
-
top:
|
|
20
|
+
top: -4px;
|
|
18
21
|
color: var(--antd-btn-default-color);
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
> :global(.ant-collapse-content) {
|
|
23
26
|
> :global(.ant-collapse-content-box) {
|
|
24
|
-
padding:
|
|
27
|
+
padding: 4px 20px;
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
30
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import React, { useState, useCallback, useMemo } from "react";
|
|
2
|
+
import React, { useState, useEffect, useCallback, useMemo } from "react";
|
|
3
3
|
import { GeneralIcon } from "@next-libs/basic-components";
|
|
4
4
|
import { Form, Popover } from "antd";
|
|
5
5
|
import styles from "./ListEditor.module.css";
|
|
@@ -19,6 +19,11 @@ export function ListEditor(_ref) {
|
|
|
19
19
|
var [list, setList] = useState((value !== null && value !== void 0 ? value : []).map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
20
20
|
[COLUMN_KEY]: ++key
|
|
21
21
|
})));
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
setList((value !== null && value !== void 0 ? value : []).map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
24
|
+
[COLUMN_KEY]: ++key
|
|
25
|
+
})));
|
|
26
|
+
}, [value]);
|
|
22
27
|
var handleRemoveItem = useCallback((e, item) => {
|
|
23
28
|
e.stopPropagation();
|
|
24
29
|
var key = item[COLUMN_KEY];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListEditor.js","names":["React","useState","useCallback","useMemo","GeneralIcon","Form","Popover","styles","COLUMN_KEY","Symbol","for","key","ListEditor","name","label","value","required","listItemKey","getDefaultItem","renderFormItem","onChange","list","setList","map","item","handleRemoveItem","e","stopPropagation","newList","filter","handleAddListItem","defaultValue","length","concat","renderListForm","handleOnValuesChange","changeValues","style","minWidth","renderListContent","listContent","index","zIndex","listItem","lib","category","icon","color","padding","border","borderRadius","listEmptyItem","listContainer","message","addListItem","marginRight"],"sources":["../../../../../src/visual-property-form/components/ListEditor/ListEditor.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo } from \"react\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { Form, Popover } from \"antd\";\nimport styles from \"./ListEditor.module.css\";\n\nconst COLUMN_KEY = Symbol.for(\"column_key\");\n\ninterface ListEditor {\n name?: string;\n label?: string | React.ReactElement;\n value?: any[];\n required?: boolean;\n listItemKey: string;\n getDefaultItem: (data: any) => Record<string, any>;\n renderFormItem?: (data: any) => React.ReactElement;\n onChange?: (data: any) => void;\n}\n\nlet key = 0;\n\nexport function ListEditor({\n name,\n label,\n value,\n required,\n listItemKey,\n getDefaultItem,\n renderFormItem,\n onChange,\n}: ListEditor): React.ReactElement {\n const [list, setList] = useState<any[]>(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n\n const handleRemoveItem = useCallback(\n (e: React.MouseEvent, item: any): void => {\n e.stopPropagation();\n const key = item[COLUMN_KEY];\n const newList = list.filter((item) => item[COLUMN_KEY] !== key);\n setList(newList);\n onChange(newList);\n },\n [list, onChange]\n );\n\n const handleAddListItem = (): void => {\n key++;\n const defaultValue = `newItem(${list.length})`;\n const newList = list.concat([\n { ...getDefaultItem(defaultValue), [COLUMN_KEY]: key },\n ]);\n setList(newList);\n onChange?.(newList);\n };\n\n const renderListForm = useCallback(\n (item: any): React.ReactElement => {\n const handleOnValuesChange = (changeValues: any): void => {\n const key = item[COLUMN_KEY];\n const newList = list.map((item) => {\n if (item[COLUMN_KEY] === key) {\n item = {\n ...item,\n ...changeValues,\n };\n }\n return item;\n });\n setList(newList);\n onChange?.(newList);\n };\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={handleOnValuesChange}\n >\n {renderFormItem(item)}\n </Form>\n );\n },\n [list, onChange, renderFormItem]\n );\n\n const renderListContent = useMemo((): React.ReactElement => {\n return (\n <div className={styles.listContent}>\n {list.length ? (\n list.map((item, index) => {\n return (\n <Popover\n key={index}\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderListForm(item)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.listItem}>\n <span>{item[listItemKey]}</span>\n <span onClick={(e) => handleRemoveItem(e, item)}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"out\",\n color: \"red\",\n }}\n style={{\n padding: \"2px\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n }}\n />\n </span>\n </div>\n </Popover>\n );\n })\n ) : (\n <div className={styles.listEmptyItem}>No data</div>\n )}\n </div>\n );\n }, [list, renderListForm, listItemKey, handleRemoveItem]);\n\n return (\n <div className={styles.listContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <div className={styles.listContent}>{renderListContent}</div>\n <span className={styles.addListItem} onClick={handleAddListItem}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"xin\",\n color: \"blue\",\n }}\n style={{\n marginRight: \"4px\",\n }}\n />\n 添加\n </span>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"ListEditor.js","names":["React","useState","useEffect","useCallback","useMemo","GeneralIcon","Form","Popover","styles","COLUMN_KEY","Symbol","for","key","ListEditor","name","label","value","required","listItemKey","getDefaultItem","renderFormItem","onChange","list","setList","map","item","handleRemoveItem","e","stopPropagation","newList","filter","handleAddListItem","defaultValue","length","concat","renderListForm","handleOnValuesChange","changeValues","style","minWidth","renderListContent","listContent","index","zIndex","listItem","lib","category","icon","color","padding","border","borderRadius","listEmptyItem","listContainer","message","addListItem","marginRight"],"sources":["../../../../../src/visual-property-form/components/ListEditor/ListEditor.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { Form, Popover } from \"antd\";\nimport styles from \"./ListEditor.module.css\";\n\nconst COLUMN_KEY = Symbol.for(\"column_key\");\n\ninterface ListEditor {\n name?: string;\n label?: string | React.ReactElement;\n value?: any[];\n required?: boolean;\n listItemKey: string;\n getDefaultItem: (data: any) => Record<string, any>;\n renderFormItem?: (data: any) => React.ReactElement;\n onChange?: (data: any) => void;\n}\n\nlet key = 0;\n\nexport function ListEditor({\n name,\n label,\n value,\n required,\n listItemKey,\n getDefaultItem,\n renderFormItem,\n onChange,\n}: ListEditor): React.ReactElement {\n const [list, setList] = useState<any[]>(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n\n useEffect(() => {\n setList(\n (value ?? []).map((item) => ({\n ...item,\n [COLUMN_KEY]: ++key,\n }))\n );\n }, [value]);\n\n const handleRemoveItem = useCallback(\n (e: React.MouseEvent, item: any): void => {\n e.stopPropagation();\n const key = item[COLUMN_KEY];\n const newList = list.filter((item) => item[COLUMN_KEY] !== key);\n setList(newList);\n onChange(newList);\n },\n [list, onChange]\n );\n\n const handleAddListItem = (): void => {\n key++;\n const defaultValue = `newItem(${list.length})`;\n const newList = list.concat([\n { ...getDefaultItem(defaultValue), [COLUMN_KEY]: key },\n ]);\n setList(newList);\n onChange?.(newList);\n };\n\n const renderListForm = useCallback(\n (item: any): React.ReactElement => {\n const handleOnValuesChange = (changeValues: any): void => {\n const key = item[COLUMN_KEY];\n const newList = list.map((item) => {\n if (item[COLUMN_KEY] === key) {\n item = {\n ...item,\n ...changeValues,\n };\n }\n return item;\n });\n setList(newList);\n onChange?.(newList);\n };\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={handleOnValuesChange}\n >\n {renderFormItem(item)}\n </Form>\n );\n },\n [list, onChange, renderFormItem]\n );\n\n const renderListContent = useMemo((): React.ReactElement => {\n return (\n <div className={styles.listContent}>\n {list.length ? (\n list.map((item, index) => {\n return (\n <Popover\n key={index}\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderListForm(item)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.listItem}>\n <span>{item[listItemKey]}</span>\n <span onClick={(e) => handleRemoveItem(e, item)}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"out\",\n color: \"red\",\n }}\n style={{\n padding: \"2px\",\n border: \"1px solid\",\n borderRadius: \"50%\",\n }}\n />\n </span>\n </div>\n </Popover>\n );\n })\n ) : (\n <div className={styles.listEmptyItem}>No data</div>\n )}\n </div>\n );\n }, [list, renderListForm, listItemKey, handleRemoveItem]);\n\n return (\n <div className={styles.listContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <div className={styles.listContent}>{renderListContent}</div>\n <span className={styles.addListItem} onClick={handleAddListItem}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"assets-inventory\",\n icon: \"xin\",\n color: \"blue\",\n }}\n style={{\n marginRight: \"4px\",\n }}\n />\n 添加\n </span>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuEditorItem.js","names":["React","useState","useEffect","Form","Select","Tooltip","GeneralIcon","InstanceApi_getDetail","MenuEditorItem","props","options","setOptions","getMenu","result","projectId","fields","menus","map","item","value","menuId","label","handleMenuSettingClick","menuSettingClick","display","alignItems","name","required","message","width","input","option","toLocaleLowerCase","indexOf","fontSize","
|
|
1
|
+
{"version":3,"file":"MenuEditorItem.js","names":["React","useState","useEffect","Form","Select","Tooltip","GeneralIcon","InstanceApi_getDetail","MenuEditorItem","props","options","setOptions","getMenu","result","projectId","fields","menus","map","item","value","menuId","label","handleMenuSettingClick","menuSettingClick","display","alignItems","name","required","message","width","input","option","toLocaleLowerCase","indexOf","fontSize","marginBottom","marginLeft","cursor","category","color","icon","lib"],"sources":["../../../../../src/visual-property-form/components/MenuEditor/MenuEditorItem.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Form, Select, Tooltip } from \"antd\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { InstanceApi_getDetail } from \"@next-sdk/cmdb-sdk\";\n\ninterface MenuEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n value?: string;\n required?: boolean;\n projectId?: string;\n menuSettingClick?: () => void;\n}\n\nexport function MenuEditorItem(props: MenuEditorItemProps): React.ReactElement {\n const [options, setOptions] = useState([]);\n\n const getMenu = async () => {\n const result = await InstanceApi_getDetail(\n \"PROJECT_MICRO_APP\",\n props.projectId,\n {\n fields: \"menus.menuId\",\n }\n );\n\n const options = result.menus.map((item: Record<string, any>) => ({\n value: item.menuId,\n label: item.menuId,\n }));\n setOptions(options);\n };\n\n const handleMenuSettingClick = () => {\n props.menuSettingClick();\n };\n\n useEffect(() => {\n if (props.projectId) {\n getMenu();\n }\n }, []);\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Form.Item\n key={props.name}\n name={props.name}\n label={props.label}\n rules={[{ required: props.required, message: `请输入${props.name}` }]}\n >\n <Select\n style={{\n width: \"300px\",\n }}\n options={options}\n showSearch\n allowClear\n placeholder=\"Select a menu id\"\n filterOption={(input, option) =>\n (option.label as string)\n .toLocaleLowerCase()\n .indexOf(input.toLocaleLowerCase()) >= 0 ||\n (option.value as string)\n .toLocaleLowerCase()\n .indexOf(input.toLocaleLowerCase()) >= 0\n }\n />\n </Form.Item>\n <div\n style={{\n fontSize: \"18px\",\n marginBottom: \"8px\",\n marginLeft: \"10px\",\n cursor: \"pointer\",\n display: \"inline-block\",\n }}\n >\n <Tooltip title=\"配置菜单数据\">\n {\" \"}\n <GeneralIcon\n icon={{\n category: \"app\",\n color: \"blue\",\n icon: \"launchpad-setting\",\n lib: \"easyops\",\n }}\n onClick={handleMenuSettingClick}\n />\n </Tooltip>\n </div>\n </div>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SAASC,IAAI,EAAEC,MAAM,EAAEC,OAAO,QAAQ,MAAM;AAC5C,SAASC,WAAW,QAAQ,6BAA6B;AACzD,SAASC,qBAAqB,QAAQ,oBAAoB;AAW1D,OAAO,SAASC,cAAc,CAACC,KAA0B,EAAsB;EAC7E,IAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,EAAE,CAAC;EAE1C,IAAMW,OAAO;IAAA,6BAAG,aAAY;MAC1B,IAAMC,MAAM,SAASN,qBAAqB,CACxC,mBAAmB,EACnBE,KAAK,CAACK,SAAS,EACf;QACEC,MAAM,EAAE;MACV,CAAC,CACF;MAED,IAAML,OAAO,GAAGG,MAAM,CAACG,KAAK,CAACC,GAAG,CAAEC,IAAyB,KAAM;QAC/DC,KAAK,EAAED,IAAI,CAACE,MAAM;QAClBC,KAAK,EAAEH,IAAI,CAACE;MACd,CAAC,CAAC,CAAC;MACHT,UAAU,CAACD,OAAO,CAAC;IACrB,CAAC;IAAA,gBAdKE,OAAO;MAAA;IAAA;EAAA,GAcZ;EAED,IAAMU,sBAAsB,GAAG,MAAM;IACnCb,KAAK,CAACc,gBAAgB,EAAE;EAC1B,CAAC;EAEDrB,SAAS,CAAC,MAAM;IACd,IAAIO,KAAK,CAACK,SAAS,EAAE;MACnBF,OAAO,EAAE;IACX;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE;IACE,KAAK,EAAE;MACLY,OAAO,EAAE,MAAM;MACfC,UAAU,EAAE;IACd;EAAE,gBAEF,oBAAC,IAAI,CAAC,IAAI;IACR,GAAG,EAAEhB,KAAK,CAACiB,IAAK;IAChB,IAAI,EAAEjB,KAAK,CAACiB,IAAK;IACjB,KAAK,EAAEjB,KAAK,CAACY,KAAM;IACnB,KAAK,EAAE,CAAC;MAAEM,QAAQ,EAAElB,KAAK,CAACkB,QAAQ;MAAEC,OAAO,8BAAQnB,KAAK,CAACiB,IAAI;IAAG,CAAC;EAAE,gBAEnE,oBAAC,MAAM;IACL,KAAK,EAAE;MACLG,KAAK,EAAE;IACT,CAAE;IACF,OAAO,EAAEnB,OAAQ;IACjB,UAAU;IACV,UAAU;IACV,WAAW,EAAC,kBAAkB;IAC9B,YAAY,EAAE,CAACoB,KAAK,EAAEC,MAAM,KACzBA,MAAM,CAACV,KAAK,CACVW,iBAAiB,EAAE,CACnBC,OAAO,CAACH,KAAK,CAACE,iBAAiB,EAAE,CAAC,IAAI,CAAC,IACzCD,MAAM,CAACZ,KAAK,CACVa,iBAAiB,EAAE,CACnBC,OAAO,CAACH,KAAK,CAACE,iBAAiB,EAAE,CAAC,IAAI;EAC1C,EACD,CACQ,eACZ;IACE,KAAK,EAAE;MACLE,QAAQ,EAAE,MAAM;MAChBC,YAAY,EAAE,KAAK;MACnBC,UAAU,EAAE,MAAM;MAClBC,MAAM,EAAE,SAAS;MACjBb,OAAO,EAAE;IACX;EAAE,gBAEF,oBAAC,OAAO;IAAC,KAAK,EAAC;EAAQ,GACpB,GAAG,eACJ,oBAAC,WAAW;IACV,IAAI,EAAE;MACJc,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAE,MAAM;MACbC,IAAI,EAAE,mBAAmB;MACzBC,GAAG,EAAE;IACP,CAAE;IACF,OAAO,EAAEnB;EAAuB,EAChC,CACM,CACN,CACF;AAEV"}
|
|
@@ -5,7 +5,7 @@ import { safeDump, JSON_SCHEMA, safeLoad } from "js-yaml";
|
|
|
5
5
|
import { omit, isEmpty, groupBy } from "lodash";
|
|
6
6
|
import { supportBasicType, supportMenuType, OTHER_FORM_ITEM_FIELD, defaultCommonProps, groupI18nMap } from "./constant";
|
|
7
7
|
export function isAdvanceMode(value) {
|
|
8
|
-
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${"))) {
|
|
8
|
+
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${")) || typeof value === "object") {
|
|
9
9
|
return true;
|
|
10
10
|
}
|
|
11
11
|
return false;
|
|
@@ -40,7 +40,7 @@ export function matchNoramlMenuValue(value) {
|
|
|
40
40
|
var reg = /<% APP\.getMenu\((.*)\) %>/;
|
|
41
41
|
return ((_value$match = value.match(reg)) === null || _value$match === void 0 ? void 0 : (_value$match$ = _value$match[1]) === null || _value$match$ === void 0 ? void 0 : _value$match$.replace(/'|"/g, "")) || value;
|
|
42
42
|
}
|
|
43
|
-
return value;
|
|
43
|
+
return yamlStringify(value);
|
|
44
44
|
}
|
|
45
45
|
function calcMenuValue(value) {
|
|
46
46
|
if (typeof value === "string") {
|
|
@@ -75,7 +75,7 @@ export function calculateValue() {
|
|
|
75
75
|
if (supportMenuType.includes(item.type)) {
|
|
76
76
|
var selected = typeList.find(typeItem => typeItem.name === item.name);
|
|
77
77
|
if ((selected === null || selected === void 0 ? void 0 : selected.mode) === ItemModeType.Advanced) {
|
|
78
|
-
obj[item.name] = v;
|
|
78
|
+
obj[item.name] = yamlStringify(v);
|
|
79
79
|
} else {
|
|
80
80
|
obj[item.name] = matchNoramlMenuValue(v);
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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 typeof value === \"object\"\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 yamlStringify(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] = yamlStringify(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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/visual-builder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
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",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@next-libs/basic-components": "^5.2.0",
|
|
33
|
-
"@next-libs/code-editor-components": "^4.8.
|
|
34
|
-
"@next-libs/forms": "^3.3.
|
|
33
|
+
"@next-libs/code-editor-components": "^4.8.2",
|
|
34
|
+
"@next-libs/forms": "^3.3.7",
|
|
35
35
|
"@types/react-color": "^3.0.6",
|
|
36
36
|
"react-color": "^2.19.3"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "74d2ff0193033e7abc43e38702c941b40e94a2e4"
|
|
39
39
|
}
|