@next-libs/visual-builder 1.5.1 → 1.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n modeValueMap?: Record<string, any>;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":";;;;;;IASYA,QAAQ;AAAA;AAAA,WAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,wBAARA,QAAQ;AAAA,IAKRC,YAAY;AAAA;AAAA,WAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,4BAAZA,YAAY"}
1
+ {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?:\n | {\n model?: string;\n }\n | string;\n editorProps?: Record<string, any>;\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n modeValueMap?: Record<string, any>;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":";;;;;;IASYA,QAAQ;AAAA;AAAA,WAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,wBAARA,QAAQ;AAAA,IAKRC,YAAY;AAAA;AAAA,WAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,4BAAZA,YAAY"}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.LegacyVisualPropertyForm = LegacyVisualPropertyForm;
9
9
  exports.VisualPropertyForm = void 0;
10
10
  exports.typeMatched = typeMatched;
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _antd = require("antd");
13
14
  var _brickKit = require("@next-core/brick-kit");
@@ -24,6 +25,7 @@ var _emptyDark = require("./images/empty-dark.svg");
24
25
  var _processor = require("./processor");
25
26
  var _constant = require("./constant");
26
27
  var _interfaces = require("../interfaces");
28
+ var _MessageEditor = require("./components/MessageEditor/MessageEditor");
27
29
  const ButtonTypeEmun = ["link", "default", "primary", "ghost", "dashed", "icon", "text"];
28
30
  function typeMatched(actualValue, selectedValue) {
29
31
  if (typeof actualValue === selectedValue.type) {
@@ -137,7 +139,6 @@ function LegacyVisualPropertyForm(props, ref) {
137
139
  theme: theme === "dark-v2" ? "monokai" : "tomorrow",
138
140
  jsonSchema: item === null || item === void 0 ? void 0 : item.jsonSchema,
139
141
  schemaRef: item === null || item === void 0 ? void 0 : item.schemaRef,
140
- mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml",
141
142
  showLineNumbers: true,
142
143
  showGutter: true,
143
144
  labelCol: {
@@ -148,10 +149,12 @@ function LegacyVisualPropertyForm(props, ref) {
148
149
  },
149
150
  wrapperCol: {
150
151
  span: 24
151
- }
152
+ },
153
+ mode: typeof (item === null || item === void 0 ? void 0 : item.editor) !== "string" && (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml"
152
154
  });
153
155
  };
154
156
  const renderStringItem = item => {
157
+ var _item$editorProps;
155
158
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
156
159
  key: item.name,
157
160
  label: renderLabel(item),
@@ -160,9 +163,22 @@ function LegacyVisualPropertyForm(props, ref) {
160
163
  required: item.required === _interfaces.Required.True,
161
164
  message: `请输入${item.name}`
162
165
  }]
163
- }, /*#__PURE__*/_react.default.createElement(_antd.Input, null));
166
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, (_item$editorProps = item.editorProps) !== null && _item$editorProps !== void 0 ? _item$editorProps : {}));
167
+ };
168
+ const renderRadioItem = item => {
169
+ var _item$editorProps2;
170
+ return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
171
+ key: item.name,
172
+ label: renderLabel(item),
173
+ name: item.name,
174
+ rules: [{
175
+ required: item.required === _interfaces.Required.True,
176
+ message: `请输入${item.name}`
177
+ }]
178
+ }, /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, (_item$editorProps2 = item.editorProps) !== null && _item$editorProps2 !== void 0 ? _item$editorProps2 : {}));
164
179
  };
165
180
  const renderBooleanItem = item => {
181
+ var _item$editorProps3;
166
182
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
167
183
  key: item.name,
168
184
  label: renderLabel(item),
@@ -172,11 +188,12 @@ function LegacyVisualPropertyForm(props, ref) {
172
188
  message: `请输入${item.name}`
173
189
  }],
174
190
  valuePropName: "checked"
175
- }, /*#__PURE__*/_react.default.createElement(_antd.Switch, {
191
+ }, /*#__PURE__*/_react.default.createElement(_antd.Switch, (0, _extends2.default)({
176
192
  defaultChecked: props.brickProperties[item.name]
177
- }));
193
+ }, (_item$editorProps3 = item.editorProps) !== null && _item$editorProps3 !== void 0 ? _item$editorProps3 : {})));
178
194
  };
179
195
  const renderInputNumberItem = item => {
196
+ var _item$editorProps4;
180
197
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
181
198
  key: item.name,
182
199
  label: renderLabel(item),
@@ -185,9 +202,10 @@ function LegacyVisualPropertyForm(props, ref) {
185
202
  required: item.required === _interfaces.Required.True,
186
203
  message: `请输入${item.name}`
187
204
  }]
188
- }, /*#__PURE__*/_react.default.createElement(_antd.InputNumber, null));
205
+ }, /*#__PURE__*/_react.default.createElement(_antd.InputNumber, (_item$editorProps4 = item.editorProps) !== null && _item$editorProps4 !== void 0 ? _item$editorProps4 : {}));
189
206
  };
190
207
  const renderStringListItem = item => {
208
+ var _item$editorProps5;
191
209
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
192
210
  key: item.name,
193
211
  label: renderLabel(item),
@@ -196,9 +214,9 @@ function LegacyVisualPropertyForm(props, ref) {
196
214
  required: item.required === _interfaces.Required.True,
197
215
  message: `请输入${item.name}`
198
216
  }]
199
- }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
217
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, (0, _extends2.default)({
200
218
  mode: "tags"
201
- }));
219
+ }, (_item$editorProps5 = item.editorProps) !== null && _item$editorProps5 !== void 0 ? _item$editorProps5 : {})));
202
220
  };
203
221
  const renderIconItem = item => {
204
222
  return /*#__PURE__*/_react.default.createElement(_IconSelectFormItem.IconSelectFormItem, {
@@ -208,6 +226,22 @@ function LegacyVisualPropertyForm(props, ref) {
208
226
  required: item.required === _interfaces.Required.True
209
227
  });
210
228
  };
229
+ const renderMessageItem = item => {
230
+ return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_MessageEditor.MessageEditor, {
231
+ key: item.name,
232
+ name: item.name,
233
+ label: renderLabel(item),
234
+ value: item.value,
235
+ required: item.required === _interfaces.Required.True,
236
+ onChange: value => {
237
+ const changeValue = {
238
+ [item.name]: value
239
+ };
240
+ form.setFieldsValue(changeValue);
241
+ props.onValuesChange(changeValue, form.getFieldsValue());
242
+ }
243
+ });
244
+ };
211
245
  const renderCodeEditorItem = item => {
212
246
  return renderEditorItem(item, true);
213
247
  };
@@ -415,6 +449,20 @@ function LegacyVisualPropertyForm(props, ref) {
415
449
  const emunList = item.enums.replace(/"|'/g, "").split("|");
416
450
  return renderEnumItem(item, emunList);
417
451
  }
452
+ switch (item.editor) {
453
+ case "input":
454
+ return renderStringItem(item);
455
+ case "radio":
456
+ return renderRadioItem(item);
457
+ case "switch":
458
+ return renderBooleanItem(item);
459
+ case "color":
460
+ return renderColorItem(item);
461
+ case "icon":
462
+ return renderIconItem(item);
463
+ case "message":
464
+ return renderMessageItem(item);
465
+ }
418
466
  switch (item.type) {
419
467
  case "string":
420
468
  return renderStringItem(item);
@@ -1 +1 @@
1
- {"version":3,"file":"VisualPropertyForm.js","names":["ButtonTypeEmun","typeMatched","actualValue","selectedValue","type","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","getFieldValue","modeValueMap","isNil","supportMenuType","includes","matchNoramlMenuValue","supportBasicType","parsedValue","yaml","undefined","isString","yamlStringify","update","$splice","renderLabel","hideIcon","description","styles","iconContainer","advanced","normal","renderEditorItem","required","Required","True","jsonSchema","schemaRef","editor","model","span","style","padding","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","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 _, {\n isNil,\n pick,\n upperFirst,\n isEmpty,\n cloneDeep,\n isString,\n} 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 yaml,\n} from \"./processor\";\nimport {\n OTHER_FORM_ITEM_FIELD,\n supportBasicType,\n supportMenuType,\n} 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 typeMatched(\n actualValue: any,\n selectedValue: UnionPropertyType\n): boolean {\n if (typeof actualValue === (selectedValue.type as string)) {\n return true;\n }\n // TODO: 补充更多的类型检查,例如 enum 等\n return false;\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 selected.value = form.getFieldValue(selected.name);\n // 记录切换前的模式下的值\n selected.modeValueMap = {\n ...selected.modeValueMap,\n ...{ [selected.mode]: selected.value },\n };\n // let value = cloneDeep(selected.value);\n if (!isNil(selected.modeValueMap[nextMode])) {\n // 切换后的模式原本有值时,则用原本的值\n selected.value = selected.modeValueMap[nextMode];\n } else if (nextMode === ItemModeType.Normal) {\n // 切换到普通模式没有值时可以根据高级模式来更新值\n if (supportMenuType.includes(selected.type as string)) {\n selected.value = matchNoramlMenuValue(selected.value);\n } else if (supportBasicType.includes(selected.type as string)) {\n // yaml解析后检查下类型,不符合属性类型就不更新了\n const parsedValue = yaml(selected.value);\n if (typeMatched(parsedValue, selected)) {\n selected.value = parsedValue;\n } else {\n selected.value = undefined;\n }\n }\n } else {\n // 切换到高级模式没有值时可以根据普通模式来更新值\n if (isNil(selected.value)) {\n selected.value = \"\";\n } else if (isString(selected.value)) {\n // do nothing\n } else {\n selected.value = yamlStringify(selected.value);\n }\n }\n selected.modeValueMap[nextMode] = selected.value;\n form.setFieldsValue({\n [name]: selected.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 showLineNumbers={true}\n showGutter={true}\n labelCol={{\n span: 24,\n style: {\n padding: 0,\n },\n }}\n wrapperCol={{\n span: 24,\n }}\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 valuePropName=\"checked\"\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=\"left\"\n labelCol={{\n span: 8,\n style: {\n minWidth: \"120px\",\n },\n }}\n wrapperCol={{ span: 16 }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n colon={false}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n expandIconPosition=\"left\"\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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"}
1
+ {"version":3,"file":"VisualPropertyForm.js","names":["ButtonTypeEmun","typeMatched","actualValue","selectedValue","type","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","getFieldValue","modeValueMap","isNil","supportMenuType","includes","matchNoramlMenuValue","supportBasicType","parsedValue","yaml","undefined","isString","yamlStringify","update","$splice","renderLabel","hideIcon","description","styles","iconContainer","advanced","normal","renderEditorItem","required","Required","True","jsonSchema","schemaRef","span","style","padding","editor","model","renderStringItem","message","editorProps","renderRadioItem","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","changeValue","onValuesChange","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","label","disabled","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","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 Radio,\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 _, {\n isNil,\n pick,\n upperFirst,\n isEmpty,\n cloneDeep,\n isString,\n} 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 yaml,\n} from \"./processor\";\nimport {\n OTHER_FORM_ITEM_FIELD,\n supportBasicType,\n supportMenuType,\n} from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\nimport { MessageEditor } from \"./components/MessageEditor/MessageEditor\";\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 typeMatched(\n actualValue: any,\n selectedValue: UnionPropertyType\n): boolean {\n if (typeof actualValue === (selectedValue.type as string)) {\n return true;\n }\n // TODO: 补充更多的类型检查,例如 enum 等\n return false;\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 selected.value = form.getFieldValue(selected.name);\n // 记录切换前的模式下的值\n selected.modeValueMap = {\n ...selected.modeValueMap,\n ...{ [selected.mode]: selected.value },\n };\n // let value = cloneDeep(selected.value);\n if (!isNil(selected.modeValueMap[nextMode])) {\n // 切换后的模式原本有值时,则用原本的值\n selected.value = selected.modeValueMap[nextMode];\n } else if (nextMode === ItemModeType.Normal) {\n // 切换到普通模式没有值时可以根据高级模式来更新值\n if (supportMenuType.includes(selected.type as string)) {\n selected.value = matchNoramlMenuValue(selected.value);\n } else if (supportBasicType.includes(selected.type as string)) {\n // yaml解析后检查下类型,不符合属性类型就不更新了\n const parsedValue = yaml(selected.value);\n if (typeMatched(parsedValue, selected)) {\n selected.value = parsedValue;\n } else {\n selected.value = undefined;\n }\n }\n } else {\n // 切换到高级模式没有值时可以根据普通模式来更新值\n if (isNil(selected.value)) {\n selected.value = \"\";\n } else if (isString(selected.value)) {\n // do nothing\n } else {\n selected.value = yamlStringify(selected.value);\n }\n }\n selected.modeValueMap[nextMode] = selected.value;\n form.setFieldsValue({\n [name]: selected.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 showLineNumbers={true}\n showGutter={true}\n labelCol={{\n span: 24,\n style: {\n padding: 0,\n },\n }}\n wrapperCol={{\n span: 24,\n }}\n mode={\n (typeof item?.editor !== \"string\" && item?.editor?.model) ||\n \"brick_next_yaml\"\n }\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 {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group {...(item.editorProps ?? {})} />\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 valuePropName=\"checked\"\n >\n <Switch\n defaultChecked={props.brickProperties[item.name]}\n {...(item.editorProps ?? {})}\n />\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 {...(item.editorProps ?? {})} />\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\" {...(item.editorProps ?? {})} />\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 renderMessageItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MessageEditor\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n value={item.value}\n required={item.required === Required.True}\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 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.editor) {\n case \"input\":\n return renderStringItem(item);\n case \"radio\":\n return renderRadioItem(item);\n case \"switch\":\n return renderBooleanItem(item);\n case \"color\":\n return renderColorItem(item);\n case \"icon\":\n return renderIconItem(item);\n case \"message\":\n return renderMessageItem(item);\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=\"left\"\n labelCol={{\n span: 8,\n style: {\n minWidth: \"120px\",\n },\n }}\n wrapperCol={{ span: 16 }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n colon={false}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n expandIconPosition=\"left\"\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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"}
@@ -32,6 +32,7 @@ function getPresetColors(colorMap) {
32
32
  function LegacyColorPick(props, ref) {
33
33
  const [value, setValue] = (0, _react.useState)(props.value);
34
34
  const [visible, setVisible] = (0, _react.useState)(false);
35
+ const [pos, setPos] = (0, _react.useState)([0, 0]);
35
36
  (0, _react.useEffect)(() => {
36
37
  setValue(props.value);
37
38
  }, [props.value]);
@@ -39,7 +40,8 @@ function LegacyColorPick(props, ref) {
39
40
  setValue(color.hex);
40
41
  props.onChange(color.hex);
41
42
  };
42
- const handleClick = () => {
43
+ const handleClick = e => {
44
+ setPos([e.clientX, e.clientY]);
43
45
  setVisible(true);
44
46
  };
45
47
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -53,7 +55,10 @@ function LegacyColorPick(props, ref) {
53
55
  backgroundColor: value
54
56
  }
55
57
  })), visible && /*#__PURE__*/_react.default.createElement("div", {
56
- className: _ColorEditorModule.default.popover
58
+ className: _ColorEditorModule.default.popover,
59
+ style: {
60
+ top: pos[1] - 385 - 16
61
+ }
57
62
  }, /*#__PURE__*/_react.default.createElement("div", {
58
63
  className: _ColorEditorModule.default.cover,
59
64
  onClick: () => setVisible(false)
@@ -1 +1 @@
1
- {"version":3,"file":"ColorEditorItem.js","names":["getPresetColors","colorMap","colorList","group","Object","entries","forEach","name","result","match","colorHex","window","getComputedStyle","document","documentElement","getPropertyValue","trim","push","LegacyColorPick","props","ref","value","setValue","useState","visible","setVisible","useEffect","handleChangeComplete","color","hex","onChange","handleClick","styles","colorContainer","colorCube","colorContent","backgroundColor","popover","cover","COLORS_MAP","ColorPick","forwardRef","ColorEditorItem","label","required","message"],"sources":["../../../../../src/visual-property-form/components/ColorEditor/ColorEditorItem.tsx"],"sourcesContent":["import { ColorResult, SketchPicker } from \"react-color\";\nimport { COLORS_MAP, Colors } from \"@next-libs/basic-components\";\nimport { Form } from \"antd\";\nimport React, { useEffect, useState, forwardRef } from \"react\";\nimport styles from \"./ColorEditor.module.css\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n}\n\nexport function getPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): string[] {\n const colorList: string[] = [];\n for (const [, group] of Object.entries(colorMap)) {\n [\"color\", \"background\", \"borderColor\"].forEach((name) => {\n const result = (group as Record<string, any>)[name]?.match(\n /^var\\((.+)\\)/\n );\n if (result) {\n const colorHex = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(result[1])\n ?.trim();\n colorHex && colorList.push(colorHex);\n }\n });\n }\n\n return colorList;\n}\n\nexport function LegacyColorPick(\n props: ColorEditorItemProps,\n ref: React.Ref<any>\n) {\n const [value, setValue] = useState(props.value);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleChangeComplete = (color: ColorResult) => {\n setValue(color.hex);\n props.onChange(color.hex);\n };\n\n const handleClick = () => {\n setVisible(true);\n };\n\n return (\n <div className={styles.colorContainer}>\n <div className={styles.colorCube} onClick={handleClick}>\n <div\n className={styles.colorContent}\n style={{ backgroundColor: value }}\n />\n </div>\n {visible && (\n <div className={styles.popover}>\n <div className={styles.cover} onClick={() => setVisible(false)} />\n <SketchPicker\n width=\"230px\"\n ref={ref}\n color={value}\n onChangeComplete={handleChangeComplete}\n presetColors={getPresetColors(COLORS_MAP)}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const ColorPick = forwardRef(LegacyColorPick);\n\nexport function ColorEditorItem(props: ColorEditorItemProps) {\n return (\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 <ColorPick />\n </Form.Item>\n );\n}\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAUO,SAASA,eAAe,CAC7BC,QAOC,EACS;EACV,MAAMC,SAAmB,GAAG,EAAE;EAC9B,KAAK,MAAM,GAAGC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,QAAQ,CAAC,EAAE;IAChD,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAACK,OAAO,CAAEC,IAAI,IAAK;MAAA;MACvD,MAAMC,MAAM,YAAIL,KAAK,CAAyBI,IAAI,CAAC,0CAApC,MAAsCE,KAAK,CACxD,cAAc,CACf;MACD,IAAID,MAAM,EAAE;QAAA;QACV,MAAME,QAAQ,4BAAGC,MAAM,CACpBC,gBAAgB,CAACC,QAAQ,CAACC,eAAe,CAAC,CAC1CC,gBAAgB,CAACP,MAAM,CAAC,CAAC,CAAC,CAAC,0DAFb,sBAGbQ,IAAI,EAAE;QACVN,QAAQ,IAAIR,SAAS,CAACe,IAAI,CAACP,QAAQ,CAAC;MACtC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOR,SAAS;AAClB;AAEO,SAASgB,eAAe,CAC7BC,KAA2B,EAC3BC,GAAmB,EACnB;EACA,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAACJ,KAAK,CAACE,KAAK,CAAC;EAC/C,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAE7C,IAAAG,gBAAS,EAAC,MAAM;IACdJ,QAAQ,CAACH,KAAK,CAACE,KAAK,CAAC;EACvB,CAAC,EAAE,CAACF,KAAK,CAACE,KAAK,CAAC,CAAC;EAEjB,MAAMM,oBAAoB,GAAIC,KAAkB,IAAK;IACnDN,QAAQ,CAACM,KAAK,CAACC,GAAG,CAAC;IACnBV,KAAK,CAACW,QAAQ,CAACF,KAAK,CAACC,GAAG,CAAC;EAC3B,CAAC;EAED,MAAME,WAAW,GAAG,MAAM;IACxBN,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC;EAED,oBACE;IAAK,SAAS,EAAEO,0BAAM,CAACC;EAAe,gBACpC;IAAK,SAAS,EAAED,0BAAM,CAACE,SAAU;IAAC,OAAO,EAAEH;EAAY,gBACrD;IACE,SAAS,EAAEC,0BAAM,CAACG,YAAa;IAC/B,KAAK,EAAE;MAAEC,eAAe,EAAEf;IAAM;EAAE,EAClC,CACE,EACLG,OAAO,iBACN;IAAK,SAAS,EAAEQ,0BAAM,CAACK;EAAQ,gBAC7B;IAAK,SAAS,EAAEL,0BAAM,CAACM,KAAM;IAAC,OAAO,EAAE,MAAMb,UAAU,CAAC,KAAK;EAAE,EAAG,eAClE,6BAAC,wBAAY;IACX,KAAK,EAAC,OAAO;IACb,GAAG,EAAEL,GAAI;IACT,KAAK,EAAEC,KAAM;IACb,gBAAgB,EAAEM,oBAAqB;IACvC,YAAY,EAAE3B,eAAe,CAACuC,2BAAU;EAAE,EAC1C,CAEL,CACG;AAEV;AAEO,MAAMC,SAAS,gBAAG,IAAAC,iBAAU,EAACvB,eAAe,CAAC;AAAC;AAE9C,SAASwB,eAAe,CAACvB,KAA2B,EAAE;EAC3D,oBACE,6BAAC,UAAI,CAAC,IAAI;IACR,GAAG,EAAEA,KAAK,CAACZ,IAAK;IAChB,IAAI,EAAEY,KAAK,CAACZ,IAAK;IACjB,KAAK,EAAEY,KAAK,CAACwB,KAAM;IACnB,KAAK,EAAE,CAAC;MAAEC,QAAQ,EAAEzB,KAAK,CAACyB,QAAQ;MAAEC,OAAO,EAAG,MAAK1B,KAAK,CAACZ,IAAK;IAAE,CAAC;EAAE,gBAEnE,6BAAC,SAAS,OAAG,CACH;AAEhB"}
1
+ {"version":3,"file":"ColorEditorItem.js","names":["getPresetColors","colorMap","colorList","group","Object","entries","forEach","name","result","match","colorHex","window","getComputedStyle","document","documentElement","getPropertyValue","trim","push","LegacyColorPick","props","ref","value","setValue","useState","visible","setVisible","pos","setPos","useEffect","handleChangeComplete","color","hex","onChange","handleClick","e","clientX","clientY","styles","colorContainer","colorCube","colorContent","backgroundColor","popover","top","cover","COLORS_MAP","ColorPick","forwardRef","ColorEditorItem","label","required","message"],"sources":["../../../../../src/visual-property-form/components/ColorEditor/ColorEditorItem.tsx"],"sourcesContent":["import { ColorResult, SketchPicker } from \"react-color\";\nimport { COLORS_MAP, Colors } from \"@next-libs/basic-components\";\nimport { Form } from \"antd\";\nimport React, { useEffect, useState, forwardRef } from \"react\";\nimport styles from \"./ColorEditor.module.css\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n}\n\nexport function getPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): string[] {\n const colorList: string[] = [];\n for (const [, group] of Object.entries(colorMap)) {\n [\"color\", \"background\", \"borderColor\"].forEach((name) => {\n const result = (group as Record<string, any>)[name]?.match(\n /^var\\((.+)\\)/\n );\n if (result) {\n const colorHex = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(result[1])\n ?.trim();\n colorHex && colorList.push(colorHex);\n }\n });\n }\n\n return colorList;\n}\n\nexport function LegacyColorPick(\n props: ColorEditorItemProps,\n ref: React.Ref<any>\n) {\n const [value, setValue] = useState(props.value);\n const [visible, setVisible] = useState(false);\n const [pos, setPos] = useState([0, 0]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleChangeComplete = (color: ColorResult) => {\n setValue(color.hex);\n props.onChange(color.hex);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n setPos([e.clientX, e.clientY]);\n setVisible(true);\n };\n\n return (\n <div className={styles.colorContainer}>\n <div className={styles.colorCube} onClick={handleClick}>\n <div\n className={styles.colorContent}\n style={{ backgroundColor: value }}\n />\n </div>\n {visible && (\n <div\n className={styles.popover}\n style={{\n top: pos[1] - 385 - 16,\n }}\n >\n <div className={styles.cover} onClick={() => setVisible(false)} />\n <SketchPicker\n width=\"230px\"\n ref={ref}\n color={value}\n onChangeComplete={handleChangeComplete}\n presetColors={getPresetColors(COLORS_MAP)}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const ColorPick = forwardRef(LegacyColorPick);\n\nexport function ColorEditorItem(props: ColorEditorItemProps) {\n return (\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 <ColorPick />\n </Form.Item>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MessageEditor = MessageEditor;
8
+ var _antd = require("antd");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _MessageEditorModule = _interopRequireDefault(require("./MessageEditor.module.css"));
11
+ var _basicComponents = require("@next-libs/basic-components");
12
+ function MessageEditor({
13
+ name,
14
+ label,
15
+ value = {},
16
+ required,
17
+ onChange
18
+ }) {
19
+ const renderForm = value => {
20
+ return /*#__PURE__*/_react.default.createElement(_antd.Form, {
21
+ layout: "horizontal",
22
+ labelAlign: "left",
23
+ labelCol: {
24
+ style: {
25
+ minWidth: "112px"
26
+ }
27
+ },
28
+ onValuesChange: onChange
29
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
30
+ name: "pattern",
31
+ label: "pattern"
32
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
33
+ defaultValue: value.pattern
34
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
35
+ name: "required",
36
+ label: "required"
37
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
38
+ defaultValue: value.required
39
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
40
+ name: "max",
41
+ label: "max"
42
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
43
+ defaultValue: value.max
44
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
45
+ name: "min",
46
+ label: "min"
47
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
48
+ defaultValue: value.min
49
+ })));
50
+ };
51
+ return /*#__PURE__*/_react.default.createElement("div", {
52
+ className: _MessageEditorModule.default.messageEditorContainer
53
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
54
+ key: name,
55
+ name: name,
56
+ label: label,
57
+ rules: [{
58
+ required: required,
59
+ message: `请输入${name}`
60
+ }]
61
+ }, /*#__PURE__*/_react.default.createElement(_antd.Popover, {
62
+ overlayStyle: {
63
+ zIndex: 999
64
+ },
65
+ content: renderForm(value),
66
+ title: "Detail",
67
+ trigger: "click",
68
+ placement: "left"
69
+ }, /*#__PURE__*/_react.default.createElement("div", {
70
+ className: _MessageEditorModule.default.editBtn
71
+ }, /*#__PURE__*/_react.default.createElement(_basicComponents.GeneralIcon, {
72
+ icon: {
73
+ lib: "easyops",
74
+ category: "default",
75
+ icon: "edit",
76
+ color: "gray"
77
+ },
78
+ style: {
79
+ padding: 4
80
+ }
81
+ })))));
82
+ }
83
+ //# sourceMappingURL=MessageEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageEditor.js","names":["MessageEditor","name","label","value","required","onChange","renderForm","style","minWidth","pattern","max","min","styles","messageEditorContainer","message","zIndex","editBtn","lib","category","icon","color","padding"],"sources":["../../../../../src/visual-property-form/components/MessageEditor/MessageEditor.tsx"],"sourcesContent":["import { Form, Input, Popover } from \"antd\";\nimport React from \"react\";\nimport styles from \"./MessageEditor.module.css\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\n\ninterface MessageEditorProps {\n name?: string;\n label?: string | React.ReactElement;\n value?: Record<string, any>;\n required?: boolean;\n onChange?: (data: any) => void;\n}\n\nexport function MessageEditor({\n name,\n label,\n value = {},\n required,\n onChange,\n}: MessageEditorProps): React.ReactElement {\n const renderForm = (value: Record<string, any>) => {\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={onChange}\n >\n <Form.Item name=\"pattern\" label=\"pattern\">\n <Input defaultValue={value.pattern} />\n </Form.Item>\n <Form.Item name=\"required\" label=\"required\">\n <Input defaultValue={value.required} />\n </Form.Item>\n <Form.Item name=\"max\" label=\"max\">\n <Input defaultValue={value.max} />\n </Form.Item>\n <Form.Item name=\"min\" label=\"min\">\n <Input defaultValue={value.min} />\n </Form.Item>\n </Form>\n );\n };\n\n return (\n <div className={styles.messageEditorContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <Popover\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderForm(value)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.editBtn}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"edit\",\n color: \"gray\",\n }}\n style={{\n padding: 4,\n }}\n />\n </div>\n </Popover>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAUO,SAASA,aAAa,CAAC;EAC5BC,IAAI;EACJC,KAAK;EACLC,KAAK,GAAG,CAAC,CAAC;EACVC,QAAQ;EACRC;AACkB,CAAC,EAAsB;EACzC,MAAMC,UAAU,GAAIH,KAA0B,IAAK;IACjD,oBACE,6BAAC,UAAI;MACH,MAAM,EAAC,YAAY;MACnB,UAAU,EAAC,MAAM;MACjB,QAAQ,EAAE;QACRI,KAAK,EAAE;UACLC,QAAQ,EAAE;QACZ;MACF,CAAE;MACF,cAAc,EAAEH;IAAS,gBAEzB,6BAAC,UAAI,CAAC,IAAI;MAAC,IAAI,EAAC,SAAS;MAAC,KAAK,EAAC;IAAS,gBACvC,6BAAC,WAAK;MAAC,YAAY,EAAEF,KAAK,CAACM;IAAQ,EAAG,CAC5B,eACZ,6BAAC,UAAI,CAAC,IAAI;MAAC,IAAI,EAAC,UAAU;MAAC,KAAK,EAAC;IAAU,gBACzC,6BAAC,WAAK;MAAC,YAAY,EAAEN,KAAK,CAACC;IAAS,EAAG,CAC7B,eACZ,6BAAC,UAAI,CAAC,IAAI;MAAC,IAAI,EAAC,KAAK;MAAC,KAAK,EAAC;IAAK,gBAC/B,6BAAC,WAAK;MAAC,YAAY,EAAED,KAAK,CAACO;IAAI,EAAG,CACxB,eACZ,6BAAC,UAAI,CAAC,IAAI;MAAC,IAAI,EAAC,KAAK;MAAC,KAAK,EAAC;IAAK,gBAC/B,6BAAC,WAAK;MAAC,YAAY,EAAEP,KAAK,CAACQ;IAAI,EAAG,CACxB,CACP;EAEX,CAAC;EAED,oBACE;IAAK,SAAS,EAAEC,4BAAM,CAACC;EAAuB,gBAC5C,6BAAC,UAAI,CAAC,IAAI;IACR,GAAG,EAAEZ,IAAK;IACV,IAAI,EAAEA,IAAK;IACX,KAAK,EAAEC,KAAM;IACb,KAAK,EAAE,CAAC;MAAEE,QAAQ,EAAEA,QAAQ;MAAEU,OAAO,EAAG,MAAKb,IAAK;IAAE,CAAC;EAAE,gBAEvD,6BAAC,aAAO;IACN,YAAY,EAAE;MACZc,MAAM,EAAE;IACV,CAAE;IACF,OAAO,EAAET,UAAU,CAACH,KAAK,CAAE;IAC3B,KAAK,EAAC,QAAQ;IACd,OAAO,EAAC,OAAO;IACf,SAAS,EAAC;EAAM,gBAEhB;IAAK,SAAS,EAAES,4BAAM,CAACI;EAAQ,gBAC7B,6BAAC,4BAAW;IACV,IAAI,EAAE;MACJC,GAAG,EAAE,SAAS;MACdC,QAAQ,EAAE,SAAS;MACnBC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE;IACT,CAAE;IACF,KAAK,EAAE;MACLC,OAAO,EAAE;IACX;EAAE,EACF,CACE,CACE,CACA,CACR;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n modeValueMap?: Record<string, any>;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAQ;AAGnB,WAHWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ;AAKpB,WAAYC,YAAY;AAGvB,WAHWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
1
+ {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?:\n | {\n model?: string;\n }\n | string;\n editorProps?: Record<string, any>;\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n modeValueMap?: Record<string, any>;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAQ;AAGnB,WAHWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ;AAKpB,WAAYC,YAAY;AAGvB,WAHWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
@@ -1,6 +1,7 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
3
  import React, { useEffect, useImperativeHandle, useState } from "react";
3
- import { Form, Input, InputNumber, Select, Tooltip, Collapse, Empty, Switch, AutoComplete } from "antd";
4
+ import { Form, Input, InputNumber, Select, Tooltip, Collapse, Empty, Switch, AutoComplete, Radio } from "antd";
4
5
  import { useCurrentTheme } from "@next-core/brick-kit";
5
6
  import { GeneralIcon } from "@next-libs/basic-components";
6
7
  import update from "immutability-helper";
@@ -16,6 +17,7 @@ import { mergeProperties, calculateValue, groupByType, yamlStringify, yaml } fro
16
17
  import { OTHER_FORM_ITEM_FIELD, supportBasicType, supportMenuType } from "./constant";
17
18
  import { matchNoramlMenuValue } from "./processor";
18
19
  import { ItemModeType, Required } from "../interfaces";
20
+ import { MessageEditor } from "./components/MessageEditor/MessageEditor";
19
21
  var ButtonTypeEmun = ["link", "default", "primary", "ghost", "dashed", "icon", "text"];
20
22
  export function typeMatched(actualValue, selectedValue) {
21
23
  if (typeof actualValue === selectedValue.type) {
@@ -125,7 +127,6 @@ export function LegacyVisualPropertyForm(props, ref) {
125
127
  theme: theme === "dark-v2" ? "monokai" : "tomorrow",
126
128
  jsonSchema: item === null || item === void 0 ? void 0 : item.jsonSchema,
127
129
  schemaRef: item === null || item === void 0 ? void 0 : item.schemaRef,
128
- mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml",
129
130
  showLineNumbers: true,
130
131
  showGutter: true,
131
132
  labelCol: {
@@ -136,10 +137,24 @@ export function LegacyVisualPropertyForm(props, ref) {
136
137
  },
137
138
  wrapperCol: {
138
139
  span: 24
139
- }
140
+ },
141
+ mode: typeof (item === null || item === void 0 ? void 0 : item.editor) !== "string" && (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml"
140
142
  });
141
143
  };
142
144
  var renderStringItem = item => {
145
+ var _item$editorProps;
146
+ return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
147
+ key: item.name,
148
+ label: renderLabel(item),
149
+ name: item.name,
150
+ rules: [{
151
+ required: item.required === Required.True,
152
+ message: "\u8BF7\u8F93\u5165".concat(item.name)
153
+ }]
154
+ }, /*#__PURE__*/React.createElement(Input, (_item$editorProps = item.editorProps) !== null && _item$editorProps !== void 0 ? _item$editorProps : {}));
155
+ };
156
+ var renderRadioItem = item => {
157
+ var _item$editorProps2;
143
158
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
144
159
  key: item.name,
145
160
  label: renderLabel(item),
@@ -148,9 +163,10 @@ export function LegacyVisualPropertyForm(props, ref) {
148
163
  required: item.required === Required.True,
149
164
  message: "\u8BF7\u8F93\u5165".concat(item.name)
150
165
  }]
151
- }, /*#__PURE__*/React.createElement(Input, null));
166
+ }, /*#__PURE__*/React.createElement(Radio.Group, (_item$editorProps2 = item.editorProps) !== null && _item$editorProps2 !== void 0 ? _item$editorProps2 : {}));
152
167
  };
153
168
  var renderBooleanItem = item => {
169
+ var _item$editorProps3;
154
170
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
155
171
  key: item.name,
156
172
  label: renderLabel(item),
@@ -160,11 +176,12 @@ export function LegacyVisualPropertyForm(props, ref) {
160
176
  message: "\u8BF7\u8F93\u5165".concat(item.name)
161
177
  }],
162
178
  valuePropName: "checked"
163
- }, /*#__PURE__*/React.createElement(Switch, {
179
+ }, /*#__PURE__*/React.createElement(Switch, _extends({
164
180
  defaultChecked: props.brickProperties[item.name]
165
- }));
181
+ }, (_item$editorProps3 = item.editorProps) !== null && _item$editorProps3 !== void 0 ? _item$editorProps3 : {})));
166
182
  };
167
183
  var renderInputNumberItem = item => {
184
+ var _item$editorProps4;
168
185
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
169
186
  key: item.name,
170
187
  label: renderLabel(item),
@@ -173,9 +190,10 @@ export function LegacyVisualPropertyForm(props, ref) {
173
190
  required: item.required === Required.True,
174
191
  message: "\u8BF7\u8F93\u5165".concat(item.name)
175
192
  }]
176
- }, /*#__PURE__*/React.createElement(InputNumber, null));
193
+ }, /*#__PURE__*/React.createElement(InputNumber, (_item$editorProps4 = item.editorProps) !== null && _item$editorProps4 !== void 0 ? _item$editorProps4 : {}));
177
194
  };
178
195
  var renderStringListItem = item => {
196
+ var _item$editorProps5;
179
197
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
180
198
  key: item.name,
181
199
  label: renderLabel(item),
@@ -184,9 +202,9 @@ export function LegacyVisualPropertyForm(props, ref) {
184
202
  required: item.required === Required.True,
185
203
  message: "\u8BF7\u8F93\u5165".concat(item.name)
186
204
  }]
187
- }, /*#__PURE__*/React.createElement(Select, {
205
+ }, /*#__PURE__*/React.createElement(Select, _extends({
188
206
  mode: "tags"
189
- }));
207
+ }, (_item$editorProps5 = item.editorProps) !== null && _item$editorProps5 !== void 0 ? _item$editorProps5 : {})));
190
208
  };
191
209
  var renderIconItem = item => {
192
210
  return /*#__PURE__*/React.createElement(IconSelectFormItem, {
@@ -196,6 +214,22 @@ export function LegacyVisualPropertyForm(props, ref) {
196
214
  required: item.required === Required.True
197
215
  });
198
216
  };
217
+ var renderMessageItem = item => {
218
+ return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(MessageEditor, {
219
+ key: item.name,
220
+ name: item.name,
221
+ label: renderLabel(item),
222
+ value: item.value,
223
+ required: item.required === Required.True,
224
+ onChange: value => {
225
+ var changeValue = {
226
+ [item.name]: value
227
+ };
228
+ form.setFieldsValue(changeValue);
229
+ props.onValuesChange(changeValue, form.getFieldsValue());
230
+ }
231
+ });
232
+ };
199
233
  var renderCodeEditorItem = item => {
200
234
  return renderEditorItem(item, true);
201
235
  };
@@ -403,6 +437,20 @@ export function LegacyVisualPropertyForm(props, ref) {
403
437
  var emunList = item.enums.replace(/"|'/g, "").split("|");
404
438
  return renderEnumItem(item, emunList);
405
439
  }
440
+ switch (item.editor) {
441
+ case "input":
442
+ return renderStringItem(item);
443
+ case "radio":
444
+ return renderRadioItem(item);
445
+ case "switch":
446
+ return renderBooleanItem(item);
447
+ case "color":
448
+ return renderColorItem(item);
449
+ case "icon":
450
+ return renderIconItem(item);
451
+ case "message":
452
+ return renderMessageItem(item);
453
+ }
406
454
  switch (item.type) {
407
455
  case "string":
408
456
  return renderStringItem(item);
@@ -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","isString","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","yaml","OTHER_FORM_ITEM_FIELD","supportBasicType","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","ButtonTypeEmun","typeMatched","actualValue","selectedValue","type","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","getFieldValue","modeValueMap","includes","parsedValue","undefined","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","editor","model","span","style","padding","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","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 _, {\n isNil,\n pick,\n upperFirst,\n isEmpty,\n cloneDeep,\n isString,\n} 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 yaml,\n} from \"./processor\";\nimport {\n OTHER_FORM_ITEM_FIELD,\n supportBasicType,\n supportMenuType,\n} 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 typeMatched(\n actualValue: any,\n selectedValue: UnionPropertyType\n): boolean {\n if (typeof actualValue === (selectedValue.type as string)) {\n return true;\n }\n // TODO: 补充更多的类型检查,例如 enum 等\n return false;\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 selected.value = form.getFieldValue(selected.name);\n // 记录切换前的模式下的值\n selected.modeValueMap = {\n ...selected.modeValueMap,\n ...{ [selected.mode]: selected.value },\n };\n // let value = cloneDeep(selected.value);\n if (!isNil(selected.modeValueMap[nextMode])) {\n // 切换后的模式原本有值时,则用原本的值\n selected.value = selected.modeValueMap[nextMode];\n } else if (nextMode === ItemModeType.Normal) {\n // 切换到普通模式没有值时可以根据高级模式来更新值\n if (supportMenuType.includes(selected.type as string)) {\n selected.value = matchNoramlMenuValue(selected.value);\n } else if (supportBasicType.includes(selected.type as string)) {\n // yaml解析后检查下类型,不符合属性类型就不更新了\n const parsedValue = yaml(selected.value);\n if (typeMatched(parsedValue, selected)) {\n selected.value = parsedValue;\n } else {\n selected.value = undefined;\n }\n }\n } else {\n // 切换到高级模式没有值时可以根据普通模式来更新值\n if (isNil(selected.value)) {\n selected.value = \"\";\n } else if (isString(selected.value)) {\n // do nothing\n } else {\n selected.value = yamlStringify(selected.value);\n }\n }\n selected.modeValueMap[nextMode] = selected.value;\n form.setFieldsValue({\n [name]: selected.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 showLineNumbers={true}\n showGutter={true}\n labelCol={{\n span: 24,\n style: {\n padding: 0,\n },\n }}\n wrapperCol={{\n span: 24,\n }}\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 valuePropName=\"checked\"\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=\"left\"\n labelCol={{\n span: 8,\n style: {\n minWidth: \"120px\",\n },\n }}\n wrapperCol={{ span: 16 }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n colon={false}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n expandIconPosition=\"left\"\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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"}
1
+ {"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","Radio","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","isString","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","yaml","OTHER_FORM_ITEM_FIELD","supportBasicType","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","MessageEditor","ButtonTypeEmun","typeMatched","actualValue","selectedValue","type","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","getFieldValue","modeValueMap","includes","parsedValue","undefined","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","span","style","padding","editor","model","renderStringItem","message","editorProps","renderRadioItem","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","changeValue","onValuesChange","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","label","disabled","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","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 Radio,\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 _, {\n isNil,\n pick,\n upperFirst,\n isEmpty,\n cloneDeep,\n isString,\n} 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 yaml,\n} from \"./processor\";\nimport {\n OTHER_FORM_ITEM_FIELD,\n supportBasicType,\n supportMenuType,\n} from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\nimport { MessageEditor } from \"./components/MessageEditor/MessageEditor\";\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 typeMatched(\n actualValue: any,\n selectedValue: UnionPropertyType\n): boolean {\n if (typeof actualValue === (selectedValue.type as string)) {\n return true;\n }\n // TODO: 补充更多的类型检查,例如 enum 等\n return false;\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 selected.value = form.getFieldValue(selected.name);\n // 记录切换前的模式下的值\n selected.modeValueMap = {\n ...selected.modeValueMap,\n ...{ [selected.mode]: selected.value },\n };\n // let value = cloneDeep(selected.value);\n if (!isNil(selected.modeValueMap[nextMode])) {\n // 切换后的模式原本有值时,则用原本的值\n selected.value = selected.modeValueMap[nextMode];\n } else if (nextMode === ItemModeType.Normal) {\n // 切换到普通模式没有值时可以根据高级模式来更新值\n if (supportMenuType.includes(selected.type as string)) {\n selected.value = matchNoramlMenuValue(selected.value);\n } else if (supportBasicType.includes(selected.type as string)) {\n // yaml解析后检查下类型,不符合属性类型就不更新了\n const parsedValue = yaml(selected.value);\n if (typeMatched(parsedValue, selected)) {\n selected.value = parsedValue;\n } else {\n selected.value = undefined;\n }\n }\n } else {\n // 切换到高级模式没有值时可以根据普通模式来更新值\n if (isNil(selected.value)) {\n selected.value = \"\";\n } else if (isString(selected.value)) {\n // do nothing\n } else {\n selected.value = yamlStringify(selected.value);\n }\n }\n selected.modeValueMap[nextMode] = selected.value;\n form.setFieldsValue({\n [name]: selected.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 showLineNumbers={true}\n showGutter={true}\n labelCol={{\n span: 24,\n style: {\n padding: 0,\n },\n }}\n wrapperCol={{\n span: 24,\n }}\n mode={\n (typeof item?.editor !== \"string\" && item?.editor?.model) ||\n \"brick_next_yaml\"\n }\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 {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group {...(item.editorProps ?? {})} />\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 valuePropName=\"checked\"\n >\n <Switch\n defaultChecked={props.brickProperties[item.name]}\n {...(item.editorProps ?? {})}\n />\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 {...(item.editorProps ?? {})} />\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\" {...(item.editorProps ?? {})} />\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 renderMessageItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MessageEditor\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n value={item.value}\n required={item.required === Required.True}\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 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.editor) {\n case \"input\":\n return renderStringItem(item);\n case \"radio\":\n return renderRadioItem(item);\n case \"switch\":\n return renderBooleanItem(item);\n case \"color\":\n return renderColorItem(item);\n case \"icon\":\n return renderIconItem(item);\n case \"message\":\n return renderMessageItem(item);\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=\"left\"\n labelCol={{\n span: 8,\n style: {\n minWidth: \"120px\",\n },\n }}\n wrapperCol={{ span: 16 }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n colon={false}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n expandIconPosition=\"left\"\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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"}
@@ -1,25 +1,25 @@
1
1
  .colorContainer {
2
2
  position: relative;
3
+ display: flex;
3
4
 
4
5
  > .colorCube {
5
6
  display: inline-block;
7
+ width: 100%;
6
8
  padding: 5px;
7
9
  border-radius: 1px;
10
+ border: 2px solid var(--antd-btn-default-border);
8
11
  box-shadow: rgb(0 0 0 / 10%) 0px 0px 0px 1px;
9
12
  cursor: pointer;
10
13
 
11
14
  > .colorContent {
12
- width: 36px;
13
15
  height: 14px;
14
16
  border-radius: 2px;
15
17
  }
16
18
  }
17
19
 
18
20
  > .popover {
19
- position: absolute;
20
- z-index: 2;
21
- left: 55px;
22
- top: -130px;
21
+ position: fixed;
22
+ z-index: 1000;
23
23
 
24
24
  > .cover {
25
25
  position: fixed;
@@ -24,6 +24,7 @@ export function getPresetColors(colorMap) {
24
24
  export function LegacyColorPick(props, ref) {
25
25
  var [value, setValue] = useState(props.value);
26
26
  var [visible, setVisible] = useState(false);
27
+ var [pos, setPos] = useState([0, 0]);
27
28
  useEffect(() => {
28
29
  setValue(props.value);
29
30
  }, [props.value]);
@@ -31,7 +32,8 @@ export function LegacyColorPick(props, ref) {
31
32
  setValue(color.hex);
32
33
  props.onChange(color.hex);
33
34
  };
34
- var handleClick = () => {
35
+ var handleClick = e => {
36
+ setPos([e.clientX, e.clientY]);
35
37
  setVisible(true);
36
38
  };
37
39
  return /*#__PURE__*/React.createElement("div", {
@@ -45,7 +47,10 @@ export function LegacyColorPick(props, ref) {
45
47
  backgroundColor: value
46
48
  }
47
49
  })), visible && /*#__PURE__*/React.createElement("div", {
48
- className: styles.popover
50
+ className: styles.popover,
51
+ style: {
52
+ top: pos[1] - 385 - 16
53
+ }
49
54
  }, /*#__PURE__*/React.createElement("div", {
50
55
  className: styles.cover,
51
56
  onClick: () => setVisible(false)
@@ -1 +1 @@
1
- {"version":3,"file":"ColorEditorItem.js","names":["SketchPicker","COLORS_MAP","Form","React","useEffect","useState","forwardRef","styles","getPresetColors","colorMap","colorList","group","forEach","name","result","match","colorHex","window","getComputedStyle","document","documentElement","getPropertyValue","trim","push","Object","entries","LegacyColorPick","props","ref","value","setValue","visible","setVisible","handleChangeComplete","color","hex","onChange","handleClick","colorContainer","colorCube","colorContent","backgroundColor","popover","cover","ColorPick","ColorEditorItem","label","required","message"],"sources":["../../../../../src/visual-property-form/components/ColorEditor/ColorEditorItem.tsx"],"sourcesContent":["import { ColorResult, SketchPicker } from \"react-color\";\nimport { COLORS_MAP, Colors } from \"@next-libs/basic-components\";\nimport { Form } from \"antd\";\nimport React, { useEffect, useState, forwardRef } from \"react\";\nimport styles from \"./ColorEditor.module.css\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n}\n\nexport function getPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): string[] {\n const colorList: string[] = [];\n for (const [, group] of Object.entries(colorMap)) {\n [\"color\", \"background\", \"borderColor\"].forEach((name) => {\n const result = (group as Record<string, any>)[name]?.match(\n /^var\\((.+)\\)/\n );\n if (result) {\n const colorHex = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(result[1])\n ?.trim();\n colorHex && colorList.push(colorHex);\n }\n });\n }\n\n return colorList;\n}\n\nexport function LegacyColorPick(\n props: ColorEditorItemProps,\n ref: React.Ref<any>\n) {\n const [value, setValue] = useState(props.value);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleChangeComplete = (color: ColorResult) => {\n setValue(color.hex);\n props.onChange(color.hex);\n };\n\n const handleClick = () => {\n setVisible(true);\n };\n\n return (\n <div className={styles.colorContainer}>\n <div className={styles.colorCube} onClick={handleClick}>\n <div\n className={styles.colorContent}\n style={{ backgroundColor: value }}\n />\n </div>\n {visible && (\n <div className={styles.popover}>\n <div className={styles.cover} onClick={() => setVisible(false)} />\n <SketchPicker\n width=\"230px\"\n ref={ref}\n color={value}\n onChangeComplete={handleChangeComplete}\n presetColors={getPresetColors(COLORS_MAP)}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const ColorPick = forwardRef(LegacyColorPick);\n\nexport function ColorEditorItem(props: ColorEditorItemProps) {\n return (\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 <ColorPick />\n </Form.Item>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColorEditorItem.js","names":["SketchPicker","COLORS_MAP","Form","React","useEffect","useState","forwardRef","styles","getPresetColors","colorMap","colorList","group","forEach","name","result","match","colorHex","window","getComputedStyle","document","documentElement","getPropertyValue","trim","push","Object","entries","LegacyColorPick","props","ref","value","setValue","visible","setVisible","pos","setPos","handleChangeComplete","color","hex","onChange","handleClick","e","clientX","clientY","colorContainer","colorCube","colorContent","backgroundColor","popover","top","cover","ColorPick","ColorEditorItem","label","required","message"],"sources":["../../../../../src/visual-property-form/components/ColorEditor/ColorEditorItem.tsx"],"sourcesContent":["import { ColorResult, SketchPicker } from \"react-color\";\nimport { COLORS_MAP, Colors } from \"@next-libs/basic-components\";\nimport { Form } from \"antd\";\nimport React, { useEffect, useState, forwardRef } from \"react\";\nimport styles from \"./ColorEditor.module.css\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n}\n\nexport function getPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): string[] {\n const colorList: string[] = [];\n for (const [, group] of Object.entries(colorMap)) {\n [\"color\", \"background\", \"borderColor\"].forEach((name) => {\n const result = (group as Record<string, any>)[name]?.match(\n /^var\\((.+)\\)/\n );\n if (result) {\n const colorHex = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(result[1])\n ?.trim();\n colorHex && colorList.push(colorHex);\n }\n });\n }\n\n return colorList;\n}\n\nexport function LegacyColorPick(\n props: ColorEditorItemProps,\n ref: React.Ref<any>\n) {\n const [value, setValue] = useState(props.value);\n const [visible, setVisible] = useState(false);\n const [pos, setPos] = useState([0, 0]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleChangeComplete = (color: ColorResult) => {\n setValue(color.hex);\n props.onChange(color.hex);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n setPos([e.clientX, e.clientY]);\n setVisible(true);\n };\n\n return (\n <div className={styles.colorContainer}>\n <div className={styles.colorCube} onClick={handleClick}>\n <div\n className={styles.colorContent}\n style={{ backgroundColor: value }}\n />\n </div>\n {visible && (\n <div\n className={styles.popover}\n style={{\n top: pos[1] - 385 - 16,\n }}\n >\n <div className={styles.cover} onClick={() => setVisible(false)} />\n <SketchPicker\n width=\"230px\"\n ref={ref}\n color={value}\n onChangeComplete={handleChangeComplete}\n presetColors={getPresetColors(COLORS_MAP)}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const ColorPick = forwardRef(LegacyColorPick);\n\nexport function ColorEditorItem(props: ColorEditorItemProps) {\n return (\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 <ColorPick />\n </Form.Item>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { Form, Input, Popover } from "antd";
2
+ import React from "react";
3
+ import styles from "./MessageEditor.module.css";
4
+ import { GeneralIcon } from "@next-libs/basic-components";
5
+ export function MessageEditor(_ref) {
6
+ var {
7
+ name,
8
+ label,
9
+ value = {},
10
+ required,
11
+ onChange
12
+ } = _ref;
13
+ var renderForm = value => {
14
+ return /*#__PURE__*/React.createElement(Form, {
15
+ layout: "horizontal",
16
+ labelAlign: "left",
17
+ labelCol: {
18
+ style: {
19
+ minWidth: "112px"
20
+ }
21
+ },
22
+ onValuesChange: onChange
23
+ }, /*#__PURE__*/React.createElement(Form.Item, {
24
+ name: "pattern",
25
+ label: "pattern"
26
+ }, /*#__PURE__*/React.createElement(Input, {
27
+ defaultValue: value.pattern
28
+ })), /*#__PURE__*/React.createElement(Form.Item, {
29
+ name: "required",
30
+ label: "required"
31
+ }, /*#__PURE__*/React.createElement(Input, {
32
+ defaultValue: value.required
33
+ })), /*#__PURE__*/React.createElement(Form.Item, {
34
+ name: "max",
35
+ label: "max"
36
+ }, /*#__PURE__*/React.createElement(Input, {
37
+ defaultValue: value.max
38
+ })), /*#__PURE__*/React.createElement(Form.Item, {
39
+ name: "min",
40
+ label: "min"
41
+ }, /*#__PURE__*/React.createElement(Input, {
42
+ defaultValue: value.min
43
+ })));
44
+ };
45
+ return /*#__PURE__*/React.createElement("div", {
46
+ className: styles.messageEditorContainer
47
+ }, /*#__PURE__*/React.createElement(Form.Item, {
48
+ key: name,
49
+ name: name,
50
+ label: label,
51
+ rules: [{
52
+ required: required,
53
+ message: "\u8BF7\u8F93\u5165".concat(name)
54
+ }]
55
+ }, /*#__PURE__*/React.createElement(Popover, {
56
+ overlayStyle: {
57
+ zIndex: 999
58
+ },
59
+ content: renderForm(value),
60
+ title: "Detail",
61
+ trigger: "click",
62
+ placement: "left"
63
+ }, /*#__PURE__*/React.createElement("div", {
64
+ className: styles.editBtn
65
+ }, /*#__PURE__*/React.createElement(GeneralIcon, {
66
+ icon: {
67
+ lib: "easyops",
68
+ category: "default",
69
+ icon: "edit",
70
+ color: "gray"
71
+ },
72
+ style: {
73
+ padding: 4
74
+ }
75
+ })))));
76
+ }
77
+ //# sourceMappingURL=MessageEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageEditor.js","names":["Form","Input","Popover","React","styles","GeneralIcon","MessageEditor","name","label","value","required","onChange","renderForm","style","minWidth","pattern","max","min","messageEditorContainer","message","zIndex","editBtn","lib","category","icon","color","padding"],"sources":["../../../../../src/visual-property-form/components/MessageEditor/MessageEditor.tsx"],"sourcesContent":["import { Form, Input, Popover } from \"antd\";\nimport React from \"react\";\nimport styles from \"./MessageEditor.module.css\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\n\ninterface MessageEditorProps {\n name?: string;\n label?: string | React.ReactElement;\n value?: Record<string, any>;\n required?: boolean;\n onChange?: (data: any) => void;\n}\n\nexport function MessageEditor({\n name,\n label,\n value = {},\n required,\n onChange,\n}: MessageEditorProps): React.ReactElement {\n const renderForm = (value: Record<string, any>) => {\n return (\n <Form\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n style: {\n minWidth: \"112px\",\n },\n }}\n onValuesChange={onChange}\n >\n <Form.Item name=\"pattern\" label=\"pattern\">\n <Input defaultValue={value.pattern} />\n </Form.Item>\n <Form.Item name=\"required\" label=\"required\">\n <Input defaultValue={value.required} />\n </Form.Item>\n <Form.Item name=\"max\" label=\"max\">\n <Input defaultValue={value.max} />\n </Form.Item>\n <Form.Item name=\"min\" label=\"min\">\n <Input defaultValue={value.min} />\n </Form.Item>\n </Form>\n );\n };\n\n return (\n <div className={styles.messageEditorContainer}>\n <Form.Item\n key={name}\n name={name}\n label={label}\n rules={[{ required: required, message: `请输入${name}` }]}\n >\n <Popover\n overlayStyle={{\n zIndex: 999,\n }}\n content={renderForm(value)}\n title=\"Detail\"\n trigger=\"click\"\n placement=\"left\"\n >\n <div className={styles.editBtn}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"edit\",\n color: \"gray\",\n }}\n style={{\n padding: 4,\n }}\n />\n </div>\n </Popover>\n </Form.Item>\n </div>\n );\n}\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,KAAK,EAAEC,OAAO,QAAQ,MAAM;AAC3C,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,4BAA4B;AAC/C,SAASC,WAAW,QAAQ,6BAA6B;AAUzD,OAAO,SAASC,aAAa,OAMc;EAAA,IANb;IAC5BC,IAAI;IACJC,KAAK;IACLC,KAAK,GAAG,CAAC,CAAC;IACVC,QAAQ;IACRC;EACkB,CAAC;EACnB,IAAMC,UAAU,GAAIH,KAA0B,IAAK;IACjD,oBACE,oBAAC,IAAI;MACH,MAAM,EAAC,YAAY;MACnB,UAAU,EAAC,MAAM;MACjB,QAAQ,EAAE;QACRI,KAAK,EAAE;UACLC,QAAQ,EAAE;QACZ;MACF,CAAE;MACF,cAAc,EAAEH;IAAS,gBAEzB,oBAAC,IAAI,CAAC,IAAI;MAAC,IAAI,EAAC,SAAS;MAAC,KAAK,EAAC;IAAS,gBACvC,oBAAC,KAAK;MAAC,YAAY,EAAEF,KAAK,CAACM;IAAQ,EAAG,CAC5B,eACZ,oBAAC,IAAI,CAAC,IAAI;MAAC,IAAI,EAAC,UAAU;MAAC,KAAK,EAAC;IAAU,gBACzC,oBAAC,KAAK;MAAC,YAAY,EAAEN,KAAK,CAACC;IAAS,EAAG,CAC7B,eACZ,oBAAC,IAAI,CAAC,IAAI;MAAC,IAAI,EAAC,KAAK;MAAC,KAAK,EAAC;IAAK,gBAC/B,oBAAC,KAAK;MAAC,YAAY,EAAED,KAAK,CAACO;IAAI,EAAG,CACxB,eACZ,oBAAC,IAAI,CAAC,IAAI;MAAC,IAAI,EAAC,KAAK;MAAC,KAAK,EAAC;IAAK,gBAC/B,oBAAC,KAAK;MAAC,YAAY,EAAEP,KAAK,CAACQ;IAAI,EAAG,CACxB,CACP;EAEX,CAAC;EAED,oBACE;IAAK,SAAS,EAAEb,MAAM,CAACc;EAAuB,gBAC5C,oBAAC,IAAI,CAAC,IAAI;IACR,GAAG,EAAEX,IAAK;IACV,IAAI,EAAEA,IAAK;IACX,KAAK,EAAEC,KAAM;IACb,KAAK,EAAE,CAAC;MAAEE,QAAQ,EAAEA,QAAQ;MAAES,OAAO,8BAAQZ,IAAI;IAAG,CAAC;EAAE,gBAEvD,oBAAC,OAAO;IACN,YAAY,EAAE;MACZa,MAAM,EAAE;IACV,CAAE;IACF,OAAO,EAAER,UAAU,CAACH,KAAK,CAAE;IAC3B,KAAK,EAAC,QAAQ;IACd,OAAO,EAAC,OAAO;IACf,SAAS,EAAC;EAAM,gBAEhB;IAAK,SAAS,EAAEL,MAAM,CAACiB;EAAQ,gBAC7B,oBAAC,WAAW;IACV,IAAI,EAAE;MACJC,GAAG,EAAE,SAAS;MACdC,QAAQ,EAAE,SAAS;MACnBC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE;IACT,CAAE;IACF,KAAK,EAAE;MACLC,OAAO,EAAE;IACX;EAAE,EACF,CACE,CACE,CACA,CACR;AAEV"}
@@ -0,0 +1,19 @@
1
+ .messageEditorContainer {
2
+ display: "flex";
3
+ align-items: "center";
4
+ }
5
+
6
+ .editBtn {
7
+ display: flex;
8
+ justify-content: center;
9
+ padding: 4px;
10
+ outline-width: 1px;
11
+ outline-style: solid;
12
+ outline-offset: -1px;
13
+ outline-color: var(--antd-input-border-color);
14
+ }
15
+
16
+ .editBtn:hover {
17
+ cursor: pointer;
18
+ background: rgba(0, 0, 0, 0.5);
19
+ }
@@ -13,7 +13,8 @@ export interface PropertyType {
13
13
  name: string;
14
14
  editor?: {
15
15
  model?: string;
16
- };
16
+ } | string;
17
+ editorProps?: Record<string, any>;
17
18
  required?: Required;
18
19
  description?: string;
19
20
  default?: string;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ interface MessageEditorProps {
3
+ name?: string;
4
+ label?: string | React.ReactElement;
5
+ value?: Record<string, any>;
6
+ required?: boolean;
7
+ onChange?: (data: any) => void;
8
+ }
9
+ export declare function MessageEditor({ name, label, value, required, onChange, }: MessageEditorProps): React.ReactElement;
10
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/visual-builder",
3
- "version": "1.5.1",
3
+ "version": "1.6.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.2",
34
- "@next-libs/forms": "^3.3.7",
33
+ "@next-libs/code-editor-components": "^4.8.3",
34
+ "@next-libs/forms": "^3.3.8",
35
35
  "@types/react-color": "^3.0.6",
36
36
  "react-color": "^2.19.3"
37
37
  },
38
- "gitHead": "2b5be5f780a4c3fed974d62553f2385624207e9d"
38
+ "gitHead": "ddc9de66026d09aa5b7b3c6e71fa0ce33178abc0"
39
39
  }