@next-libs/visual-builder 1.9.0 → 1.10.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.
@@ -336,12 +336,13 @@ function LegacyVisualPropertyForm(props, ref) {
336
336
  return renderEditorItem(item, true);
337
337
  };
338
338
  const renderColorItem = item => {
339
- return /*#__PURE__*/_react.default.createElement(_ColorEditorItem.ColorEditorItem, {
339
+ var _item$editorProps6;
340
+ return /*#__PURE__*/_react.default.createElement(_ColorEditorItem.ColorEditorItem, (0, _extends2.default)({
340
341
  key: item.name,
341
342
  name: item.name,
342
343
  label: renderLabel(item, true),
343
344
  required: item.required === _interfaces.Required.True
344
- });
345
+ }, (_item$editorProps6 = item.editorProps) !== null && _item$editorProps6 !== void 0 ? _item$editorProps6 : {}));
345
346
  };
346
347
  const renderMenuItem = item => {
347
348
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_MenuEditorItem.MenuEditorItem, {
@@ -531,7 +532,7 @@ function LegacyVisualPropertyForm(props, ref) {
531
532
  }));
532
533
  };
533
534
  const renderSelectItem = item => {
534
- var _item$editorProps6;
535
+ var _item$editorProps7;
535
536
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
536
537
  key: item.name,
537
538
  label: renderLabel(item),
@@ -540,10 +541,10 @@ function LegacyVisualPropertyForm(props, ref) {
540
541
  required: item.required === _interfaces.Required.True,
541
542
  message: `请输入${item.name}`
542
543
  }]
543
- }, /*#__PURE__*/_react.default.createElement(_antd.Select, (_item$editorProps6 = item.editorProps) !== null && _item$editorProps6 !== void 0 ? _item$editorProps6 : {}));
544
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, (_item$editorProps7 = item.editorProps) !== null && _item$editorProps7 !== void 0 ? _item$editorProps7 : {}));
544
545
  };
545
546
  const renderCheckboxItem = item => {
546
- var _item$editorProps7;
547
+ var _item$editorProps8;
547
548
  return item.mode === _interfaces.ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
548
549
  key: item.name,
549
550
  label: renderLabel(item),
@@ -552,7 +553,7 @@ function LegacyVisualPropertyForm(props, ref) {
552
553
  required: item.required === _interfaces.Required.True,
553
554
  message: `请输入${item.name}`
554
555
  }]
555
- }, /*#__PURE__*/_react.default.createElement(_antd.Checkbox.Group, (_item$editorProps7 = item.editorProps) !== null && _item$editorProps7 !== void 0 ? _item$editorProps7 : {}));
556
+ }, /*#__PURE__*/_react.default.createElement(_antd.Checkbox.Group, (_item$editorProps8 = item.editorProps) !== null && _item$editorProps8 !== void 0 ? _item$editorProps8 : {}));
556
557
  };
557
558
  const getFormItem = item => {
558
559
  // todo(sailor): update unit text
@@ -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","span","style","padding","editor","model","renderStringItem","message","editorProps","renderTextareaItem","renderSingleRadio","prop","handleRadioUncheck","e","target","formValue","changeValue","onValuesChange","options","icon","buttonIcon","mergedIcon","imgSrc","imgStyle","verticalAlign","fontSize","iconStyle","optionType","disabled","textAlign","flex","disableUnchek","label","paddingLeft","renderRadioItem","radioProps","omit","radioGroup","display","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","renderSelectItem","renderCheckboxItem","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 Checkbox,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon, SrcIcon } 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 omit,\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\";\nimport { options } from \"marked\";\nimport { GeneralOption } from \"@next-libs/forms\";\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 renderTextareaItem = (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.TextArea {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderSingleRadio = (item: UnionPropertyType) => {\n const { editorProps: prop, name } = item;\n\n const handleRadioUncheck = (e: any) => {\n const value = e?.target?.value;\n const formValue = form.getFieldsValue();\n const changeValue = {\n [name]: formValue[name] === value ? undefined : value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, formValue);\n };\n\n return prop.options?.map((item: any) => {\n const icon = item.icon;\n let buttonIcon: JSX.Element = null;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon = {\n imgSrc: icon.imgSrc,\n imgStyle: {\n verticalAlign: \"-0.125em\",\n ...icon.imgStyle,\n },\n };\n buttonIcon = <GeneralIcon icon={mergedIcon} size={14} />;\n } else {\n buttonIcon = (\n <GeneralIcon\n icon={icon}\n style={{\n fontSize: \"14px\",\n ...icon.iconStyle,\n }}\n />\n );\n }\n }\n if (prop.optionType === \"button\") {\n return (\n <Radio.Button\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={{ textAlign: \"center\", flex: \"1 1 0\", ...item.style }}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio.Button>\n );\n } else {\n return (\n <Radio\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={item.style}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio>\n );\n }\n });\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n const radioProps = omit(item.editorProps, \"options\");\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group\n className={styles.radioGroup}\n style={\n item.editorProps.optionType === \"button\" ? { display: \"flex\" } : {}\n }\n {...(radioProps ?? {})}\n >\n {renderSingleRadio(item)}\n </Radio.Group>\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 renderSelectItem = (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 <Select {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderCheckboxItem = (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 <Checkbox.Group {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\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 case \"number\":\n return renderInputNumberItem(item);\n case \"textarea\":\n return renderTextareaItem(item);\n case \"select\":\n return renderSelectItem(item);\n case \"checkbox\":\n return renderCheckboxItem(item);\n case \"code\":\n return renderCodeEditorItem(item);\n }\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","renderTextareaItem","renderSingleRadio","prop","handleRadioUncheck","e","target","formValue","changeValue","onValuesChange","options","icon","buttonIcon","mergedIcon","imgSrc","imgStyle","verticalAlign","fontSize","iconStyle","optionType","disabled","textAlign","flex","disableUnchek","label","paddingLeft","renderRadioItem","radioProps","omit","radioGroup","display","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","renderSelectItem","renderCheckboxItem","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 Checkbox,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon, SrcIcon } 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 omit,\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\";\nimport { options } from \"marked\";\nimport { GeneralOption } from \"@next-libs/forms\";\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 renderTextareaItem = (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.TextArea {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderSingleRadio = (item: UnionPropertyType) => {\n const { editorProps: prop, name } = item;\n\n const handleRadioUncheck = (e: any) => {\n const value = e?.target?.value;\n const formValue = form.getFieldsValue();\n const changeValue = {\n [name]: formValue[name] === value ? undefined : value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, formValue);\n };\n\n return prop.options?.map((item: any) => {\n const icon = item.icon;\n let buttonIcon: JSX.Element = null;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon = {\n imgSrc: icon.imgSrc,\n imgStyle: {\n verticalAlign: \"-0.125em\",\n ...icon.imgStyle,\n },\n };\n buttonIcon = <GeneralIcon icon={mergedIcon} size={14} />;\n } else {\n buttonIcon = (\n <GeneralIcon\n icon={icon}\n style={{\n fontSize: \"14px\",\n ...icon.iconStyle,\n }}\n />\n );\n }\n }\n if (prop.optionType === \"button\") {\n return (\n <Radio.Button\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={{ textAlign: \"center\", flex: \"1 1 0\", ...item.style }}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio.Button>\n );\n } else {\n return (\n <Radio\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={item.style}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio>\n );\n }\n });\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n const radioProps = omit(item.editorProps, \"options\");\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group\n className={styles.radioGroup}\n style={\n item.editorProps.optionType === \"button\" ? { display: \"flex\" } : {}\n }\n {...(radioProps ?? {})}\n >\n {renderSingleRadio(item)}\n </Radio.Group>\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 {...(item.editorProps ?? {})}\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 renderSelectItem = (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 <Select {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderCheckboxItem = (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 <Checkbox.Group {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\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 case \"number\":\n return renderInputNumberItem(item);\n case \"textarea\":\n return renderTextareaItem(item);\n case \"select\":\n return renderSelectItem(item);\n case \"checkbox\":\n return renderCheckboxItem(item);\n case \"code\":\n return renderCodeEditorItem(item);\n }\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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"}
@@ -8,27 +8,85 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.ColorEditorItem = ColorEditorItem;
9
9
  exports.ColorPick = void 0;
10
10
  exports.LegacyColorPick = LegacyColorPick;
11
- exports.getPresetColors = getPresetColors;
11
+ exports.getDefaultPresetColors = getDefaultPresetColors;
12
+ exports.processEditorPresetColors = exports.presetColorMap = void 0;
12
13
  var _reactColor = require("react-color");
13
14
  var _basicComponents = require("@next-libs/basic-components");
14
15
  var _antd = require("antd");
15
16
  var _react = _interopRequireWildcard(require("react"));
16
17
  var _ColorEditorModule = _interopRequireDefault(require("./ColorEditor.module.css"));
17
- function getPresetColors(colorMap) {
18
+ var _lodash = require("lodash");
19
+ const presetColorMap = {};
20
+ exports.presetColorMap = presetColorMap;
21
+ const getComputedColor = key => {
22
+ var _window$getComputedSt;
23
+ return (_window$getComputedSt = window.getComputedStyle(document.documentElement).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();
24
+ };
25
+ function getDefaultPresetColors(colorMap) {
18
26
  const colorList = [];
19
27
  for (const [, group] of Object.entries(colorMap)) {
20
28
  ["color", "background", "borderColor"].forEach(name => {
21
29
  var _name;
22
30
  const result = (_name = group[name]) === null || _name === void 0 ? void 0 : _name.match(/^var\((.+)\)/);
23
31
  if (result) {
24
- var _window$getComputedSt;
25
- const colorHex = (_window$getComputedSt = window.getComputedStyle(document.documentElement).getPropertyValue(result[1])) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();
26
- colorHex && colorList.push(colorHex);
32
+ const colorHex = getComputedColor(result[1]);
33
+ if (colorHex) {
34
+ colorList.push({
35
+ color: colorHex,
36
+ title: result[0]
37
+ });
38
+ if (!presetColorMap[colorHex]) {
39
+ presetColorMap[colorHex] = result[0];
40
+ }
41
+ }
27
42
  }
28
43
  });
29
44
  }
30
45
  return colorList;
31
46
  }
47
+ const processEditorPresetColors = editorPresetColors => {
48
+ const res = [];
49
+ editorPresetColors === null || editorPresetColors === void 0 ? void 0 : editorPresetColors.forEach(item => {
50
+ if (typeof item === "string") {
51
+ // css变量字符串或颜色字符串的情况
52
+ const matchArr = item.match(/^var\((.+)\)/);
53
+ if ((0, _lodash.isArray)(matchArr) && (matchArr === null || matchArr === void 0 ? void 0 : matchArr.length) > 0) {
54
+ const color = getComputedColor(matchArr[1]);
55
+ if (color) {
56
+ res.push({
57
+ title: matchArr[0],
58
+ color
59
+ });
60
+ if (!presetColorMap[color]) {
61
+ presetColorMap[color] = matchArr[0];
62
+ }
63
+ }
64
+ } else {
65
+ res.push(item);
66
+ }
67
+ } else if ((0, _lodash.isObject)(item)) {
68
+ var _item$color;
69
+ // { title:..., color:... } 的情况, color也会分为css变量字符串或颜色字符串
70
+ const matchArr = item === null || item === void 0 ? void 0 : (_item$color = item.color) === null || _item$color === void 0 ? void 0 : _item$color.match(/^var\((.+)\)/);
71
+ if ((0, _lodash.isArray)(matchArr) && (matchArr === null || matchArr === void 0 ? void 0 : matchArr.length) > 0) {
72
+ const color = getComputedColor(matchArr[1]);
73
+ if (color) {
74
+ res.push({
75
+ ...item,
76
+ color
77
+ });
78
+ if (!presetColorMap[color]) {
79
+ presetColorMap[color] = matchArr[0];
80
+ }
81
+ }
82
+ } else {
83
+ res.push(item);
84
+ }
85
+ }
86
+ });
87
+ return res;
88
+ };
89
+ exports.processEditorPresetColors = processEditorPresetColors;
32
90
  function LegacyColorPick(props, ref) {
33
91
  const [value, setValue] = (0, _react.useState)(props.value);
34
92
  const [visible, setVisible] = (0, _react.useState)(false);
@@ -37,13 +95,21 @@ function LegacyColorPick(props, ref) {
37
95
  setValue(props.value);
38
96
  }, [props.value]);
39
97
  const handleChangeComplete = color => {
40
- setValue(color.hex);
41
- props.onChange(color.hex);
98
+ var _ref, _ref2, _presetColorMap$rgba;
99
+ const rgba = `rgba( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}, ${color.rgb.a})`;
100
+ const rgb = `rgb( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b})`;
101
+ // 优先使用变量作为value
102
+ const res = (_ref = (_ref2 = (_presetColorMap$rgba = presetColorMap[rgba]) !== null && _presetColorMap$rgba !== void 0 ? _presetColorMap$rgba : presetColorMap[rgb]) !== null && _ref2 !== void 0 ? _ref2 : presetColorMap[color.hex]) !== null && _ref !== void 0 ? _ref : rgba;
103
+ setValue(res);
104
+ props.onChange(res);
42
105
  };
43
106
  const handleClick = e => {
44
107
  setPos([e.clientX, e.clientY]);
45
108
  setVisible(true);
46
109
  };
110
+ const getPickerColor = () => {
111
+ return value !== null && value !== void 0 && value.match(/^var\((.+)\)/) ? getComputedColor(value === null || value === void 0 ? void 0 : value.match(/^var\((.+)\)/)[1]) : value;
112
+ };
47
113
  return /*#__PURE__*/_react.default.createElement("div", {
48
114
  className: _ColorEditorModule.default.colorContainer
49
115
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -65,9 +131,9 @@ function LegacyColorPick(props, ref) {
65
131
  }), /*#__PURE__*/_react.default.createElement(_reactColor.SketchPicker, {
66
132
  width: "230px",
67
133
  ref: ref,
68
- color: value,
134
+ color: getPickerColor(),
69
135
  onChangeComplete: handleChangeComplete,
70
- presetColors: getPresetColors(_basicComponents.COLORS_MAP)
136
+ presetColors: getDefaultPresetColors(_basicComponents.COLORS_MAP).concat(processEditorPresetColors(props === null || props === void 0 ? void 0 : props.editorPresetColors))
71
137
  })));
72
138
  }
73
139
  const ColorPick = /*#__PURE__*/(0, _react.forwardRef)(LegacyColorPick);
@@ -81,6 +147,8 @@ function ColorEditorItem(props) {
81
147
  required: props.required,
82
148
  message: `请输入${props.name}`
83
149
  }]
84
- }, /*#__PURE__*/_react.default.createElement(ColorPick, null));
150
+ }, /*#__PURE__*/_react.default.createElement(ColorPick, {
151
+ editorPresetColors: props === null || props === void 0 ? void 0 : props.editorPresetColors
152
+ }));
85
153
  }
86
154
  //# sourceMappingURL=ColorEditorItem.js.map
@@ -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","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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"}
1
+ {"version":3,"file":"ColorEditorItem.js","names":["presetColorMap","getComputedColor","key","window","getComputedStyle","document","documentElement","getPropertyValue","trim","getDefaultPresetColors","colorMap","colorList","group","Object","entries","forEach","name","result","match","colorHex","push","color","title","processEditorPresetColors","editorPresetColors","res","item","matchArr","isArray","length","isObject","LegacyColorPick","props","ref","value","setValue","useState","visible","setVisible","pos","setPos","useEffect","handleChangeComplete","rgba","rgb","r","g","b","a","hex","onChange","handleClick","e","clientX","clientY","getPickerColor","styles","colorContainer","colorCube","colorContent","backgroundColor","popover","top","cover","COLORS_MAP","concat","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\";\nimport { isArray, isObject } from \"lodash\";\nimport { PresetColor } from \"react-color/lib/components/sketch/Sketch\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n editorPresetColors?: PresetColor[];\n}\n\nexport const presetColorMap: Record<string, string> = {};\n\nconst getComputedColor = (key: string) => {\n return window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(key)\n ?.trim();\n};\n\nexport function getDefaultPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): PresetColor[] {\n const colorList: PresetColor[] = [];\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 = getComputedColor(result[1]);\n if (colorHex) {\n colorList.push({ color: colorHex, title: result[0] });\n if (!presetColorMap[colorHex]) {\n presetColorMap[colorHex] = result[0];\n }\n }\n }\n });\n }\n\n return colorList;\n}\n\nexport const processEditorPresetColors = (\n editorPresetColors: PresetColor[]\n) => {\n const res: PresetColor[] = [];\n\n editorPresetColors?.forEach((item) => {\n if (typeof item === \"string\") {\n // css变量字符串或颜色字符串的情况\n const matchArr = item.match(/^var\\((.+)\\)/);\n if (isArray(matchArr) && matchArr?.length > 0) {\n const color = getComputedColor(matchArr[1]);\n if (color) {\n res.push({ title: matchArr[0], color });\n if (!presetColorMap[color]) {\n presetColorMap[color] = matchArr[0];\n }\n }\n } else {\n res.push(item);\n }\n } else if (isObject(item)) {\n // { title:..., color:... } 的情况, color也会分为css变量字符串或颜色字符串\n const matchArr = item?.color?.match(/^var\\((.+)\\)/);\n if (isArray(matchArr) && matchArr?.length > 0) {\n const color = getComputedColor(matchArr[1]);\n if (color) {\n res.push({ ...item, color });\n if (!presetColorMap[color]) {\n presetColorMap[color] = matchArr[0];\n }\n }\n } else {\n res.push(item);\n }\n }\n });\n return res;\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 const rgba = `rgba( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}, ${color.rgb.a})`;\n const rgb = `rgb( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b})`;\n // 优先使用变量作为value\n const res =\n presetColorMap[rgba] ??\n presetColorMap[rgb] ??\n presetColorMap[color.hex] ??\n rgba;\n setValue(res);\n props.onChange(res);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n setPos([e.clientX, e.clientY]);\n setVisible(true);\n };\n\n const getPickerColor = () => {\n return value?.match(/^var\\((.+)\\)/)\n ? getComputedColor(value?.match(/^var\\((.+)\\)/)[1])\n : value;\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={getPickerColor()}\n onChangeComplete={handleChangeComplete}\n presetColors={getDefaultPresetColors(COLORS_MAP).concat(\n processEditorPresetColors(props?.editorPresetColors)\n )}\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 editorPresetColors={props?.editorPresetColors} />\n </Form.Item>\n );\n}\n"],"mappings":"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"}
@@ -321,12 +321,13 @@ export function LegacyVisualPropertyForm(props, ref) {
321
321
  return renderEditorItem(item, true);
322
322
  };
323
323
  var renderColorItem = item => {
324
- return /*#__PURE__*/React.createElement(ColorEditorItem, {
324
+ var _item$editorProps6;
325
+ return /*#__PURE__*/React.createElement(ColorEditorItem, _extends({
325
326
  key: item.name,
326
327
  name: item.name,
327
328
  label: renderLabel(item, true),
328
329
  required: item.required === Required.True
329
- });
330
+ }, (_item$editorProps6 = item.editorProps) !== null && _item$editorProps6 !== void 0 ? _item$editorProps6 : {}));
330
331
  };
331
332
  var renderMenuItem = item => {
332
333
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(MenuEditorItem, {
@@ -516,7 +517,7 @@ export function LegacyVisualPropertyForm(props, ref) {
516
517
  }));
517
518
  };
518
519
  var renderSelectItem = item => {
519
- var _item$editorProps6;
520
+ var _item$editorProps7;
520
521
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
521
522
  key: item.name,
522
523
  label: renderLabel(item),
@@ -525,10 +526,10 @@ export function LegacyVisualPropertyForm(props, ref) {
525
526
  required: item.required === Required.True,
526
527
  message: "\u8BF7\u8F93\u5165".concat(item.name)
527
528
  }]
528
- }, /*#__PURE__*/React.createElement(Select, (_item$editorProps6 = item.editorProps) !== null && _item$editorProps6 !== void 0 ? _item$editorProps6 : {}));
529
+ }, /*#__PURE__*/React.createElement(Select, (_item$editorProps7 = item.editorProps) !== null && _item$editorProps7 !== void 0 ? _item$editorProps7 : {}));
529
530
  };
530
531
  var renderCheckboxItem = item => {
531
- var _item$editorProps7;
532
+ var _item$editorProps8;
532
533
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
533
534
  key: item.name,
534
535
  label: renderLabel(item),
@@ -537,7 +538,7 @@ export function LegacyVisualPropertyForm(props, ref) {
537
538
  required: item.required === Required.True,
538
539
  message: "\u8BF7\u8F93\u5165".concat(item.name)
539
540
  }]
540
- }, /*#__PURE__*/React.createElement(Checkbox.Group, (_item$editorProps7 = item.editorProps) !== null && _item$editorProps7 !== void 0 ? _item$editorProps7 : {}));
541
+ }, /*#__PURE__*/React.createElement(Checkbox.Group, (_item$editorProps8 = item.editorProps) !== null && _item$editorProps8 !== void 0 ? _item$editorProps8 : {}));
541
542
  };
542
543
  var getFormItem = item => {
543
544
  // todo(sailor): update unit text
@@ -1 +1 @@
1
- {"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","Radio","Checkbox","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","isString","omit","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","renderTextareaItem","renderSingleRadio","prop","handleRadioUncheck","e","target","formValue","changeValue","onValuesChange","options","icon","buttonIcon","mergedIcon","imgSrc","imgStyle","verticalAlign","fontSize","iconStyle","optionType","disabled","textAlign","flex","disableUnchek","label","paddingLeft","renderRadioItem","radioProps","radioGroup","display","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","renderSelectItem","renderCheckboxItem","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 Checkbox,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon, SrcIcon } 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 omit,\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\";\nimport { options } from \"marked\";\nimport { GeneralOption } from \"@next-libs/forms\";\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 renderTextareaItem = (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.TextArea {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderSingleRadio = (item: UnionPropertyType) => {\n const { editorProps: prop, name } = item;\n\n const handleRadioUncheck = (e: any) => {\n const value = e?.target?.value;\n const formValue = form.getFieldsValue();\n const changeValue = {\n [name]: formValue[name] === value ? undefined : value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, formValue);\n };\n\n return prop.options?.map((item: any) => {\n const icon = item.icon;\n let buttonIcon: JSX.Element = null;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon = {\n imgSrc: icon.imgSrc,\n imgStyle: {\n verticalAlign: \"-0.125em\",\n ...icon.imgStyle,\n },\n };\n buttonIcon = <GeneralIcon icon={mergedIcon} size={14} />;\n } else {\n buttonIcon = (\n <GeneralIcon\n icon={icon}\n style={{\n fontSize: \"14px\",\n ...icon.iconStyle,\n }}\n />\n );\n }\n }\n if (prop.optionType === \"button\") {\n return (\n <Radio.Button\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={{ textAlign: \"center\", flex: \"1 1 0\", ...item.style }}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio.Button>\n );\n } else {\n return (\n <Radio\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={item.style}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio>\n );\n }\n });\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n const radioProps = omit(item.editorProps, \"options\");\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group\n className={styles.radioGroup}\n style={\n item.editorProps.optionType === \"button\" ? { display: \"flex\" } : {}\n }\n {...(radioProps ?? {})}\n >\n {renderSingleRadio(item)}\n </Radio.Group>\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 renderSelectItem = (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 <Select {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderCheckboxItem = (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 <Checkbox.Group {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\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 case \"number\":\n return renderInputNumberItem(item);\n case \"textarea\":\n return renderTextareaItem(item);\n case \"select\":\n return renderSelectItem(item);\n case \"checkbox\":\n return renderCheckboxItem(item);\n case \"code\":\n return renderCodeEditorItem(item);\n }\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","Checkbox","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","isString","omit","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","renderTextareaItem","renderSingleRadio","prop","handleRadioUncheck","e","target","formValue","changeValue","onValuesChange","options","icon","buttonIcon","mergedIcon","imgSrc","imgStyle","verticalAlign","fontSize","iconStyle","optionType","disabled","textAlign","flex","disableUnchek","label","paddingLeft","renderRadioItem","radioProps","radioGroup","display","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderMessageItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","renderSelectItem","renderCheckboxItem","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 Checkbox,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon, SrcIcon } 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 omit,\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\";\nimport { options } from \"marked\";\nimport { GeneralOption } from \"@next-libs/forms\";\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 renderTextareaItem = (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.TextArea {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderSingleRadio = (item: UnionPropertyType) => {\n const { editorProps: prop, name } = item;\n\n const handleRadioUncheck = (e: any) => {\n const value = e?.target?.value;\n const formValue = form.getFieldsValue();\n const changeValue = {\n [name]: formValue[name] === value ? undefined : value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, formValue);\n };\n\n return prop.options?.map((item: any) => {\n const icon = item.icon;\n let buttonIcon: JSX.Element = null;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon = {\n imgSrc: icon.imgSrc,\n imgStyle: {\n verticalAlign: \"-0.125em\",\n ...icon.imgStyle,\n },\n };\n buttonIcon = <GeneralIcon icon={mergedIcon} size={14} />;\n } else {\n buttonIcon = (\n <GeneralIcon\n icon={icon}\n style={{\n fontSize: \"14px\",\n ...icon.iconStyle,\n }}\n />\n );\n }\n }\n if (prop.optionType === \"button\") {\n return (\n <Radio.Button\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={{ textAlign: \"center\", flex: \"1 1 0\", ...item.style }}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio.Button>\n );\n } else {\n return (\n <Radio\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n style={item.style}\n onClick={!prop?.disableUnchek ? handleRadioUncheck : () => null}\n >\n {buttonIcon}\n {item.label && (\n <span style={{ paddingLeft: \"5px\" }}>{item.label}</span>\n )}\n </Radio>\n );\n }\n });\n };\n\n const renderRadioItem = (item: UnionPropertyType): React.ReactElement => {\n const radioProps = omit(item.editorProps, \"options\");\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Radio.Group\n className={styles.radioGroup}\n style={\n item.editorProps.optionType === \"button\" ? { display: \"flex\" } : {}\n }\n {...(radioProps ?? {})}\n >\n {renderSingleRadio(item)}\n </Radio.Group>\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 {...(item.editorProps ?? {})}\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 renderSelectItem = (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 <Select {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const renderCheckboxItem = (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 <Checkbox.Group {...(item.editorProps ?? {})} />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\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 case \"number\":\n return renderInputNumberItem(item);\n case \"textarea\":\n return renderTextareaItem(item);\n case \"select\":\n return renderSelectItem(item);\n case \"checkbox\":\n return renderCheckboxItem(item);\n case \"code\":\n return renderCodeEditorItem(item);\n }\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,18 +1,32 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
1
2
  import { SketchPicker } from "react-color";
2
3
  import { COLORS_MAP } from "@next-libs/basic-components";
3
4
  import { Form } from "antd";
4
5
  import React, { useEffect, useState, forwardRef } from "react";
5
6
  import styles from "./ColorEditor.module.css";
6
- export function getPresetColors(colorMap) {
7
+ import { isArray, isObject } from "lodash";
8
+ export var presetColorMap = {};
9
+ var getComputedColor = key => {
10
+ var _window$getComputedSt;
11
+ return (_window$getComputedSt = window.getComputedStyle(document.documentElement).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();
12
+ };
13
+ export function getDefaultPresetColors(colorMap) {
7
14
  var colorList = [];
8
15
  var _loop = function (group) {
9
16
  ["color", "background", "borderColor"].forEach(name => {
10
17
  var _name;
11
18
  var result = (_name = group[name]) === null || _name === void 0 ? void 0 : _name.match(/^var\((.+)\)/);
12
19
  if (result) {
13
- var _window$getComputedSt;
14
- var colorHex = (_window$getComputedSt = window.getComputedStyle(document.documentElement).getPropertyValue(result[1])) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();
15
- colorHex && colorList.push(colorHex);
20
+ var colorHex = getComputedColor(result[1]);
21
+ if (colorHex) {
22
+ colorList.push({
23
+ color: colorHex,
24
+ title: result[0]
25
+ });
26
+ if (!presetColorMap[colorHex]) {
27
+ presetColorMap[colorHex] = result[0];
28
+ }
29
+ }
16
30
  }
17
31
  });
18
32
  };
@@ -21,6 +35,47 @@ export function getPresetColors(colorMap) {
21
35
  }
22
36
  return colorList;
23
37
  }
38
+ export var processEditorPresetColors = editorPresetColors => {
39
+ var res = [];
40
+ editorPresetColors === null || editorPresetColors === void 0 ? void 0 : editorPresetColors.forEach(item => {
41
+ if (typeof item === "string") {
42
+ // css变量字符串或颜色字符串的情况
43
+ var matchArr = item.match(/^var\((.+)\)/);
44
+ if (isArray(matchArr) && (matchArr === null || matchArr === void 0 ? void 0 : matchArr.length) > 0) {
45
+ var color = getComputedColor(matchArr[1]);
46
+ if (color) {
47
+ res.push({
48
+ title: matchArr[0],
49
+ color
50
+ });
51
+ if (!presetColorMap[color]) {
52
+ presetColorMap[color] = matchArr[0];
53
+ }
54
+ }
55
+ } else {
56
+ res.push(item);
57
+ }
58
+ } else if (isObject(item)) {
59
+ var _item$color;
60
+ // { title:..., color:... } 的情况, color也会分为css变量字符串或颜色字符串
61
+ var _matchArr = item === null || item === void 0 ? void 0 : (_item$color = item.color) === null || _item$color === void 0 ? void 0 : _item$color.match(/^var\((.+)\)/);
62
+ if (isArray(_matchArr) && (_matchArr === null || _matchArr === void 0 ? void 0 : _matchArr.length) > 0) {
63
+ var _color = getComputedColor(_matchArr[1]);
64
+ if (_color) {
65
+ res.push(_objectSpread(_objectSpread({}, item), {}, {
66
+ color: _color
67
+ }));
68
+ if (!presetColorMap[_color]) {
69
+ presetColorMap[_color] = _matchArr[0];
70
+ }
71
+ }
72
+ } else {
73
+ res.push(item);
74
+ }
75
+ }
76
+ });
77
+ return res;
78
+ };
24
79
  export function LegacyColorPick(props, ref) {
25
80
  var [value, setValue] = useState(props.value);
26
81
  var [visible, setVisible] = useState(false);
@@ -29,13 +84,21 @@ export function LegacyColorPick(props, ref) {
29
84
  setValue(props.value);
30
85
  }, [props.value]);
31
86
  var handleChangeComplete = color => {
32
- setValue(color.hex);
33
- props.onChange(color.hex);
87
+ var _ref, _ref2, _presetColorMap$rgba;
88
+ var rgba = "rgba( ".concat(color.rgb.r, ", ").concat(color.rgb.g, ", ").concat(color.rgb.b, ", ").concat(color.rgb.a, ")");
89
+ var rgb = "rgb( ".concat(color.rgb.r, ", ").concat(color.rgb.g, ", ").concat(color.rgb.b, ")");
90
+ // 优先使用变量作为value
91
+ var res = (_ref = (_ref2 = (_presetColorMap$rgba = presetColorMap[rgba]) !== null && _presetColorMap$rgba !== void 0 ? _presetColorMap$rgba : presetColorMap[rgb]) !== null && _ref2 !== void 0 ? _ref2 : presetColorMap[color.hex]) !== null && _ref !== void 0 ? _ref : rgba;
92
+ setValue(res);
93
+ props.onChange(res);
34
94
  };
35
95
  var handleClick = e => {
36
96
  setPos([e.clientX, e.clientY]);
37
97
  setVisible(true);
38
98
  };
99
+ var getPickerColor = () => {
100
+ return value !== null && value !== void 0 && value.match(/^var\((.+)\)/) ? getComputedColor(value === null || value === void 0 ? void 0 : value.match(/^var\((.+)\)/)[1]) : value;
101
+ };
39
102
  return /*#__PURE__*/React.createElement("div", {
40
103
  className: styles.colorContainer
41
104
  }, /*#__PURE__*/React.createElement("div", {
@@ -57,9 +120,9 @@ export function LegacyColorPick(props, ref) {
57
120
  }), /*#__PURE__*/React.createElement(SketchPicker, {
58
121
  width: "230px",
59
122
  ref: ref,
60
- color: value,
123
+ color: getPickerColor(),
61
124
  onChangeComplete: handleChangeComplete,
62
- presetColors: getPresetColors(COLORS_MAP)
125
+ presetColors: getDefaultPresetColors(COLORS_MAP).concat(processEditorPresetColors(props === null || props === void 0 ? void 0 : props.editorPresetColors))
63
126
  })));
64
127
  }
65
128
  export var ColorPick = /*#__PURE__*/forwardRef(LegacyColorPick);
@@ -72,6 +135,8 @@ export function ColorEditorItem(props) {
72
135
  required: props.required,
73
136
  message: "\u8BF7\u8F93\u5165".concat(props.name)
74
137
  }]
75
- }, /*#__PURE__*/React.createElement(ColorPick, null));
138
+ }, /*#__PURE__*/React.createElement(ColorPick, {
139
+ editorPresetColors: props === null || props === void 0 ? void 0 : props.editorPresetColors
140
+ }));
76
141
  }
77
142
  //# sourceMappingURL=ColorEditorItem.js.map
@@ -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","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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"}
1
+ {"version":3,"file":"ColorEditorItem.js","names":["SketchPicker","COLORS_MAP","Form","React","useEffect","useState","forwardRef","styles","isArray","isObject","presetColorMap","getComputedColor","key","window","getComputedStyle","document","documentElement","getPropertyValue","trim","getDefaultPresetColors","colorMap","colorList","group","forEach","name","result","match","colorHex","push","color","title","Object","entries","processEditorPresetColors","editorPresetColors","res","item","matchArr","length","LegacyColorPick","props","ref","value","setValue","visible","setVisible","pos","setPos","handleChangeComplete","rgba","rgb","r","g","b","a","hex","onChange","handleClick","e","clientX","clientY","getPickerColor","colorContainer","colorCube","colorContent","backgroundColor","popover","top","cover","concat","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\";\nimport { isArray, isObject } from \"lodash\";\nimport { PresetColor } from \"react-color/lib/components/sketch/Sketch\";\n\nexport interface ColorEditorItemProps {\n name?: string;\n label?: string | React.ReactElement;\n required?: boolean;\n value?: any;\n onChange?: (value: string) => void;\n editorPresetColors?: PresetColor[];\n}\n\nexport const presetColorMap: Record<string, string> = {};\n\nconst getComputedColor = (key: string) => {\n return window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(key)\n ?.trim();\n};\n\nexport function getDefaultPresetColors(\n colorMap: Record<\n Colors,\n {\n color: string;\n background: string;\n borderColor: string;\n }\n >\n): PresetColor[] {\n const colorList: PresetColor[] = [];\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 = getComputedColor(result[1]);\n if (colorHex) {\n colorList.push({ color: colorHex, title: result[0] });\n if (!presetColorMap[colorHex]) {\n presetColorMap[colorHex] = result[0];\n }\n }\n }\n });\n }\n\n return colorList;\n}\n\nexport const processEditorPresetColors = (\n editorPresetColors: PresetColor[]\n) => {\n const res: PresetColor[] = [];\n\n editorPresetColors?.forEach((item) => {\n if (typeof item === \"string\") {\n // css变量字符串或颜色字符串的情况\n const matchArr = item.match(/^var\\((.+)\\)/);\n if (isArray(matchArr) && matchArr?.length > 0) {\n const color = getComputedColor(matchArr[1]);\n if (color) {\n res.push({ title: matchArr[0], color });\n if (!presetColorMap[color]) {\n presetColorMap[color] = matchArr[0];\n }\n }\n } else {\n res.push(item);\n }\n } else if (isObject(item)) {\n // { title:..., color:... } 的情况, color也会分为css变量字符串或颜色字符串\n const matchArr = item?.color?.match(/^var\\((.+)\\)/);\n if (isArray(matchArr) && matchArr?.length > 0) {\n const color = getComputedColor(matchArr[1]);\n if (color) {\n res.push({ ...item, color });\n if (!presetColorMap[color]) {\n presetColorMap[color] = matchArr[0];\n }\n }\n } else {\n res.push(item);\n }\n }\n });\n return res;\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 const rgba = `rgba( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}, ${color.rgb.a})`;\n const rgb = `rgb( ${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b})`;\n // 优先使用变量作为value\n const res =\n presetColorMap[rgba] ??\n presetColorMap[rgb] ??\n presetColorMap[color.hex] ??\n rgba;\n setValue(res);\n props.onChange(res);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n setPos([e.clientX, e.clientY]);\n setVisible(true);\n };\n\n const getPickerColor = () => {\n return value?.match(/^var\\((.+)\\)/)\n ? getComputedColor(value?.match(/^var\\((.+)\\)/)[1])\n : value;\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={getPickerColor()}\n onChangeComplete={handleChangeComplete}\n presetColors={getDefaultPresetColors(COLORS_MAP).concat(\n processEditorPresetColors(props?.editorPresetColors)\n )}\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 editorPresetColors={props?.editorPresetColors} />\n </Form.Item>\n );\n}\n"],"mappings":"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"}
@@ -1,17 +1,21 @@
1
1
  import { Colors } from "@next-libs/basic-components";
2
2
  import React from "react";
3
+ import { PresetColor } from "react-color/lib/components/sketch/Sketch";
3
4
  export interface ColorEditorItemProps {
4
5
  name?: string;
5
6
  label?: string | React.ReactElement;
6
7
  required?: boolean;
7
8
  value?: any;
8
9
  onChange?: (value: string) => void;
10
+ editorPresetColors?: PresetColor[];
9
11
  }
10
- export declare function getPresetColors(colorMap: Record<Colors, {
12
+ export declare const presetColorMap: Record<string, string>;
13
+ export declare function getDefaultPresetColors(colorMap: Record<Colors, {
11
14
  color: string;
12
15
  background: string;
13
16
  borderColor: string;
14
- }>): string[];
17
+ }>): PresetColor[];
18
+ export declare const processEditorPresetColors: (editorPresetColors: PresetColor[]) => PresetColor[];
15
19
  export declare function LegacyColorPick(props: ColorEditorItemProps, ref: React.Ref<any>): JSX.Element;
16
20
  export declare const ColorPick: React.ForwardRefExoticComponent<ColorEditorItemProps & React.RefAttributes<any>>;
17
21
  export declare function ColorEditorItem(props: ColorEditorItemProps): JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/visual-builder",
3
- "version": "1.9.0",
3
+ "version": "1.10.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",
@@ -35,5 +35,5 @@
35
35
  "@types/react-color": "^3.0.6",
36
36
  "react-color": "^2.19.3"
37
37
  },
38
- "gitHead": "776f6a8b6a17da59a519c3d333f132048166e3d3"
38
+ "gitHead": "5f7ba8d0c6562a6a1ad6a13fba968294beb5fa4a"
39
39
  }