@next-libs/visual-builder 1.4.1 → 1.5.1

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.
Files changed (27) hide show
  1. package/dist/cjs/interfaces/brick-visualization.js.map +1 -1
  2. package/dist/cjs/visual-property-form/VisualPropertyForm.js +88 -26
  3. package/dist/cjs/visual-property-form/VisualPropertyForm.js.map +1 -1
  4. package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +5 -2
  5. package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
  6. package/dist/cjs/visual-property-form/components/ListEditor/ListEditor.js +6 -0
  7. package/dist/cjs/visual-property-form/components/ListEditor/ListEditor.js.map +1 -1
  8. package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js +1 -1
  9. package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
  10. package/dist/cjs/visual-property-form/processor.js +29 -11
  11. package/dist/cjs/visual-property-form/processor.js.map +1 -1
  12. package/dist/esm/interfaces/brick-visualization.js.map +1 -1
  13. package/dist/esm/visual-property-form/VisualPropertyForm.js +87 -29
  14. package/dist/esm/visual-property-form/VisualPropertyForm.js.map +1 -1
  15. package/dist/esm/visual-property-form/VisualPropertyForm.module.css +15 -4
  16. package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +5 -2
  17. package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
  18. package/dist/esm/visual-property-form/components/ListEditor/ListEditor.js +6 -1
  19. package/dist/esm/visual-property-form/components/ListEditor/ListEditor.js.map +1 -1
  20. package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js +1 -1
  21. package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
  22. package/dist/esm/visual-property-form/processor.js +27 -10
  23. package/dist/esm/visual-property-form/processor.js.map +1 -1
  24. package/dist/types/interfaces/brick-visualization.d.ts +1 -0
  25. package/dist/types/visual-property-form/VisualPropertyForm.d.ts +2 -1
  26. package/dist/types/visual-property-form/processor.d.ts +1 -0
  27. package/package.json +2 -2
@@ -20,17 +20,27 @@ var _jsYaml = require("js-yaml");
20
20
  var _lodash = require("lodash");
21
21
  var _constant = require("./constant");
22
22
  function isAdvanceMode(value) {
23
- if (typeof value === "string" && (value.startsWith("<%") || value.includes("${"))) {
23
+ if (typeof value === "string" && (value.startsWith("<%") || value.includes("${")) || typeof value === "object") {
24
24
  return true;
25
25
  }
26
26
  return false;
27
27
  }
28
28
  function mergeProperties(propertyList = [], brickProperties = {}) {
29
- return propertyList === null || propertyList === void 0 ? void 0 : propertyList.map(item => ({
30
- ...item,
31
- value: brickProperties === null || brickProperties === void 0 ? void 0 : brickProperties[item.name],
32
- mode: isAdvanceMode(brickProperties === null || brickProperties === void 0 ? void 0 : brickProperties[item.name]) ? _interfaces.ItemModeType.Advanced : _interfaces.ItemModeType.Normal
33
- }));
29
+ return propertyList === null || propertyList === void 0 ? void 0 : propertyList.map(item => {
30
+ if (isAdvanceMode(brickProperties === null || brickProperties === void 0 ? void 0 : brickProperties[item.name])) {
31
+ return {
32
+ ...item,
33
+ mode: _interfaces.ItemModeType.Advanced,
34
+ value: yamlStringify(brickProperties === null || brickProperties === void 0 ? void 0 : brickProperties[item.name])
35
+ };
36
+ } else {
37
+ return {
38
+ ...item,
39
+ mode: _interfaces.ItemModeType.Normal,
40
+ value: brickProperties === null || brickProperties === void 0 ? void 0 : brickProperties[item.name]
41
+ };
42
+ }
43
+ });
34
44
  }
35
45
  function yamlStringify(value, indent = 2) {
36
46
  return (0, _jsYaml.safeDump)(value, {
@@ -39,7 +49,7 @@ function yamlStringify(value, indent = 2) {
39
49
  skipInvalid: true,
40
50
  noRefs: true,
41
51
  noCompatMode: true
42
- });
52
+ }).replace(/[\n\r]+$/, "");
43
53
  }
44
54
  function yaml(value) {
45
55
  return (0, _jsYaml.safeLoad)(value, {
@@ -53,7 +63,7 @@ function matchNoramlMenuValue(value) {
53
63
  const reg = /<% APP\.getMenu\((.*)\) %>/;
54
64
  return ((_value$match = value.match(reg)) === null || _value$match === void 0 ? void 0 : (_value$match$ = _value$match[1]) === null || _value$match$ === void 0 ? void 0 : _value$match$.replace(/'|"/g, "")) || value;
55
65
  }
56
- return value;
66
+ return yamlStringify(value);
57
67
  }
58
68
  function calcMenuValue(value) {
59
69
  if (typeof value === "string") {
@@ -76,13 +86,16 @@ function calculateValue(propertyList = [], brickProperties = {}, typeList = [])
76
86
  const v = brickProperties[item.name];
77
87
  obj[item.name] = v;
78
88
  if (v !== undefined) {
79
- if (!_constant.supportBasicType.concat(_constant.supportMenuType).includes(item.type)) {
89
+ if (!_constant.supportBasicType.concat(_constant.supportMenuType).includes(item.type) ||
90
+ // 非已知类型
91
+ typeof v === "object" // 值为object
92
+ ) {
80
93
  obj[item.name] = yamlStringify(v);
81
94
  }
82
95
  if (_constant.supportMenuType.includes(item.type)) {
83
96
  const selected = typeList.find(typeItem => typeItem.name === item.name);
84
97
  if ((selected === null || selected === void 0 ? void 0 : selected.mode) === _interfaces.ItemModeType.Advanced) {
85
- obj[item.name] = v;
98
+ obj[item.name] = yamlStringify(v);
86
99
  } else {
87
100
  obj[item.name] = matchNoramlMenuValue(v);
88
101
  }
@@ -101,13 +114,18 @@ function calculateValue(propertyList = [], brickProperties = {}, typeList = [])
101
114
  * 1. 当前属性的类型不是内置支持的类型
102
115
  * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑
103
116
  * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中
117
+ * 4. 表达式也不需要解析成 JSON 模式
104
118
  * @param field 字段值
105
119
  * @param typeList 属性列表包含每个属性的类型和当前编辑模式
106
120
  * @return boolean
107
121
  */
108
122
 
109
123
  function isUseYamlParse(field, typeList) {
110
- if (typeof field.value !== "string") return false;
124
+ if (typeof field.value !== "string") {
125
+ return false;
126
+ } else if (field.value.startsWith("<%") || field.value.includes("${")) {
127
+ return false;
128
+ }
111
129
  if (field.key === _constant.OTHER_FORM_ITEM_FIELD) return true;
112
130
  const find = typeList === null || typeList === void 0 ? void 0 : typeList.find(item => item.name === field.key);
113
131
  if (find) {
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","names":["isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","ItemModeType","Advanced","Normal","yamlStringify","indent","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","yaml","safeLoad","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","Object","entries","find","processValue","reduce","obj","v","undefined","supportBasicType","concat","supportMenuType","type","selected","typeItem","OTHER_FORM_ITEM_FIELD","isEmpty","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","omit","groupByType","normals","filter","group","others","groupBy","groupI18N","groupI18nMap","i18nData","i18nText","extractCommonProps","sharedPropertyList","defaultCommonProps"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(\n typeList: PropertyType[],\n sharedPropertyList?: PropertyType[]\n): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n if (sharedPropertyList) {\n return sharedPropertyList.concat(typeList);\n }\n\n return defaultCommonProps.concat(typeList);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","names":["isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","ItemModeType","Advanced","yamlStringify","Normal","indent","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","replace","yaml","safeLoad","json","matchNoramlMenuValue","reg","match","calcMenuValue","calculateValue","typeList","othersValue","key","Object","entries","find","processValue","reduce","obj","v","undefined","supportBasicType","concat","supportMenuType","type","selected","typeItem","OTHER_FORM_ITEM_FIELD","isEmpty","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","omit","groupByType","normals","filter","group","others","groupBy","groupI18N","groupI18nMap","i18nData","i18nText","extractCommonProps","sharedPropertyList","defaultCommonProps"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n (typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))) ||\n typeof value === \"object\"\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => {\n if (isAdvanceMode(brickProperties?.[item.name])) {\n return {\n ...item,\n mode: ItemModeType.Advanced,\n value: yamlStringify(brickProperties?.[item.name]),\n };\n } else {\n return {\n ...item,\n mode: ItemModeType.Normal,\n value: brickProperties?.[item.name],\n };\n }\n });\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }).replace(/[\\n\\r]+$/, \"\");\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return yamlStringify(value);\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType\n .concat(supportMenuType)\n .includes(item.type as string) || // 非已知类型\n typeof v === \"object\" // 值为object\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = yamlStringify(v);\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * 4. 表达式也不需要解析成 JSON 模式\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") {\n return false;\n } else if (field.value.startsWith(\"<%\") || field.value.includes(\"${\")) {\n return false;\n }\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(\n typeList: PropertyType[],\n sharedPropertyList?: PropertyType[]\n): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n if (sharedPropertyList) {\n return sharedPropertyList.concat(typeList);\n }\n\n return defaultCommonProps.concat(typeList);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAMA;AACA;AACA;AAQO,SAASA,aAAa,CAACC,KAAc,EAAW;EACrD,IACG,OAAOA,KAAK,KAAK,QAAQ,KACvBA,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC,IAAID,KAAK,CAACE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAClD,OAAOF,KAAK,KAAK,QAAQ,EACzB;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEO,SAASG,eAAe,CAC7BC,YAA4B,GAAG,EAAE,EACjCC,eAAgC,GAAG,CAAC,CAAC,EAChB;EACrB,OAAOD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,GAAG,CAAEC,IAAI,IAAK;IACjC,IAAIR,aAAa,CAACM,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGE,IAAI,CAACC,IAAI,CAAC,CAAC,EAAE;MAC/C,OAAO;QACL,GAAGD,IAAI;QACPE,IAAI,EAAEC,wBAAY,CAACC,QAAQ;QAC3BX,KAAK,EAAEY,aAAa,CAACP,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGE,IAAI,CAACC,IAAI,CAAC;MACnD,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACL,GAAGD,IAAI;QACPE,IAAI,EAAEC,wBAAY,CAACG,MAAM;QACzBb,KAAK,EAAEK,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGE,IAAI,CAACC,IAAI;MACpC,CAAC;IACH;EACF,CAAC,CAAC;AACJ;AAEO,SAASI,aAAa,CAACZ,KAAc,EAAEc,MAAM,GAAG,CAAC,EAAU;EAChE,OAAO,IAAAC,gBAAQ,EAACf,KAAK,EAAE;IACrBc,MAAM;IACNE,MAAM,EAAEC,mBAAW;IACnBC,WAAW,EAAE,IAAI;IACjBC,MAAM,EAAE,IAAI;IACZC,YAAY,EAAE;EAChB,CAAC,CAAC,CAACC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC5B;AAEO,SAASC,IAAI,CAACtB,KAAa,EAAO;EACvC,OAAO,IAAAuB,gBAAQ,EAACvB,KAAK,EAAE;IAAEgB,MAAM,EAAEC,mBAAW;IAAEO,IAAI,EAAE;EAAK,CAAC,CAAC;AAC7D;AAEO,SAASC,oBAAoB,CAACzB,KAAc,EAAW;EAC5D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAAA;IAC7B,MAAM0B,GAAG,GAAG,4BAA4B;IACxC,OAAO,iBAAA1B,KAAK,CAAC2B,KAAK,CAACD,GAAG,CAAC,kEAAhB,aAAmB,CAAC,CAAC,kDAArB,cAAuBL,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAIrB,KAAK;EAC5D;EACA,OAAOY,aAAa,CAACZ,KAAK,CAAC;AAC7B;AAEA,SAAS4B,aAAa,CAAC5B,KAAa,EAAU;EAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,IAAIA,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC,EAAE;MAC1B,OAAOD,KAAK;IACd;IACA,OAAQ,mBAAkBA,KAAM,OAAM;EACxC;EACA,OAAOA,KAAK;AACd;AAEO,SAAS6B,cAAc,CAC5BzB,YAA4B,GAAG,EAAE,EACjCC,eAAgC,GAAG,CAAC,CAAC,EACrCyB,QAA6B,GAAG,EAAE,EACb;EACrB,MAAMC,WAAgC,GAAG,CAAC,CAAC;EAC3C,KAAK,MAAM,CAACC,GAAG,EAAEhC,KAAK,CAAC,IAAIiC,MAAM,CAACC,OAAO,CAAC7B,eAAe,CAAC,EAAE;IAC1D,MAAM8B,IAAI,GAAG/B,YAAY,CAAC+B,IAAI,CAAE5B,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKwB,GAAG,CAAC;IAC3D,IAAI,CAACG,IAAI,EAAE;MACTJ,WAAW,CAACC,GAAG,CAAC,GAAGhC,KAAK;IAC1B;EACF;EAEA,MAAMoC,YAAY,GAAGhC,YAAY,CAACiC,MAAM,CAAC,CAACC,GAAQ,EAAE/B,IAAI,KAAK;IAC3D,MAAMgC,CAAC,GAAGlC,eAAe,CAACE,IAAI,CAACC,IAAI,CAAC;IACpC8B,GAAG,CAAC/B,IAAI,CAACC,IAAI,CAAC,GAAG+B,CAAC;IAClB,IAAIA,CAAC,KAAKC,SAAS,EAAE;MACnB,IACE,CAACC,0BAAgB,CACdC,MAAM,CAACC,yBAAe,CAAC,CACvBzC,QAAQ,CAACK,IAAI,CAACqC,IAAI,CAAW;MAAI;MACpC,OAAOL,CAAC,KAAK,QAAQ,CAAC;MAAA,EACtB;QACAD,GAAG,CAAC/B,IAAI,CAACC,IAAI,CAAC,GAAGI,aAAa,CAAC2B,CAAC,CAAC;MACnC;MAEA,IAAII,yBAAe,CAACzC,QAAQ,CAACK,IAAI,CAACqC,IAAI,CAAW,EAAE;QACjD,MAAMC,QAAQ,GAAGf,QAAQ,CAACK,IAAI,CAC3BW,QAAQ,IAAKA,QAAQ,CAACtC,IAAI,KAAKD,IAAI,CAACC,IAAI,CAC1C;QACD,IAAI,CAAAqC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEpC,IAAI,MAAKC,wBAAY,CAACC,QAAQ,EAAE;UAC5C2B,GAAG,CAAC/B,IAAI,CAACC,IAAI,CAAC,GAAGI,aAAa,CAAC2B,CAAC,CAAC;QACnC,CAAC,MAAM;UACLD,GAAG,CAAC/B,IAAI,CAACC,IAAI,CAAC,GAAGiB,oBAAoB,CAACc,CAAC,CAAC;QAC1C;MACF;IACF;IACA,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,OAAO;IACL,GAAGF,YAAY;IACf,CAACW,+BAAqB,GAAG,IAAAC,eAAO,EAACjB,WAAW,CAAC,GACzC,EAAE,GACFnB,aAAa,CAACmB,WAAW;EAC/B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASkB,cAAc,CAC5BC,KAAkC,EAClCpB,QAA6B,EACpB;EACT,IAAI,OAAOoB,KAAK,CAAClD,KAAK,KAAK,QAAQ,EAAE;IACnC,OAAO,KAAK;EACd,CAAC,MAAM,IAAIkD,KAAK,CAAClD,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC,IAAIiD,KAAK,CAAClD,KAAK,CAACE,QAAQ,CAAC,IAAI,CAAC,EAAE;IACrE,OAAO,KAAK;EACd;EAEA,IAAIgD,KAAK,CAAClB,GAAG,KAAKe,+BAAqB,EAAE,OAAO,IAAI;EAEpD,MAAMZ,IAAI,GAAGL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,IAAI,CAAE5B,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAK0C,KAAK,CAAClB,GAAG,CAAC;EAE9D,IAAIG,IAAI,EAAE;IACR,IACEQ,yBAAe,CAACzC,QAAQ,CAACiC,IAAI,CAACS,IAAI,CAAW,IAC7CT,IAAI,CAAC1B,IAAI,KAAKC,wBAAY,CAACC,QAAQ,EAEnC,OAAO,KAAK;IAEd,MAAMwC,WAAW,GAAGV,0BAAgB,CAACvC,QAAQ,CAACiC,IAAI,CAACS,IAAI,CAAW;IAElE,IAAIO,WAAW,IAAIhB,IAAI,CAAC1B,IAAI,KAAKC,wBAAY,CAACC,QAAQ,EAAE,OAAO,IAAI;IAEnE,IAAI,CAACwC,WAAW,EAAE,OAAO,IAAI;EAC/B;EAEA,OAAO,KAAK;AACd;AAEO,SAASC,cAAc,CAC5BF,KAAkC,EAClCpB,QAA6B,EACpB;EACT,MAAMvB,IAAI,GAAGuB,QAAQ,CAACK,IAAI,CAAE5B,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAK0C,KAAK,CAAClB,GAAG,CAAC;EAC7D,IAAIW,yBAAe,CAACzC,QAAQ,CAACK,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqC,IAAI,CAAW,EAAE;IAClD,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd;AAEO,SAASS,gBAAgB,CAC9BC,MAAM,GAAG,CAAC,CAAC,EACXxB,QAA6B,EACR;EACrB,MAAMyB,QAA6B,GAAG,CAAC,CAAC;EACxC,KAAK,MAAM,CAACvB,GAAG,EAAEhC,KAAK,CAAC,IAAIiC,MAAM,CAACC,OAAO,CAACoB,MAAM,CAAC,EAAE;IACjD,IAAIL,cAAc,CAAC;MAAEjB,GAAG;MAAEhC;IAAM,CAAC,EAAE8B,QAAQ,CAAC,EAAE;MAC5CyB,QAAQ,CAACvB,GAAG,CAAC,GAAGV,IAAI,CAACtB,KAAK,CAAQ;IACpC,CAAC,MAAM,IAAIoD,cAAc,CAAC;MAAEpB,GAAG;MAAEhC;IAAM,CAAC,EAAE8B,QAAQ,CAAC,EAAE;MACnDyB,QAAQ,CAACvB,GAAG,CAAC,GAAGJ,aAAa,CAAC5B,KAAK,CAAW;IAChD,CAAC,MAAM;MACLuD,QAAQ,CAACvB,GAAG,CAAC,GAAGhC,KAAK;IACvB;EACF;EAEA,OAAO;IACL,GAAG,IAAAwD,YAAI,EAACD,QAAQ,EAAER,+BAAqB,CAAC;IACxC,IAAI,IAAAC,eAAO,EAACO,QAAQ,CAACR,+BAAqB,CAAC,CAAC,GACxC,CAAC,CAAC,GACFQ,QAAQ,CAACR,+BAAqB,CAAC;EACrC,CAAC;AACH;AAEO,SAASU,WAAW,CACzB3B,QAA6B,GAAG,EAAE,EACI;EACtC,MAAM4B,OAAO,GAAG5B,QAAQ,CAAC6B,MAAM,CAAEpD,IAAI,IAAKA,IAAI,CAACqD,KAAK,KAAK,OAAO,CAAC;EACjE,MAAMC,MAAM,GAAG/B,QAAQ,CAAC6B,MAAM,CAAEpD,IAAI,IAAKA,IAAI,CAACqD,KAAK,KAAK,OAAO,CAAC;EAEhE,OAAO3B,MAAM,CAACC,OAAO,CACnB,IAAA4B,eAAO,EAACJ,OAAO,CAAChB,MAAM,CAACmB,MAAM,CAAC,EAAGtD,IAAI,IAAK;IACxC,MAAMqD,KAAK,GAAGrD,IAAI,CAACqD,KAAK,IAAI,OAAO;IACnC,MAAMG,SAA8B,GAAG;MACrC,GAAGC,sBAAY;MACf,GAAGzD,IAAI,CAACwD;IACV,CAAC;IACD,MAAME,QAAQ,GAAGF,SAAS,IAAIA,SAAS,CAACH,KAAK,CAAC;IAC9C,IAAIK,QAAQ,EAAE;MACZ,OAAO,IAAAC,kBAAQ,EAACD,QAAQ,CAAC;IAC3B;IAEA,OAAOL,KAAK;EACd,CAAC,CAAC,CACH;AACH;AAEO,SAASO,kBAAkB,CAChCrC,QAAwB,EACxBsC,kBAAmC,EACnB;EAChB,IAAI,IAAApB,eAAO,EAAClB,QAAQ,CAAC,EAAE,OAAO,EAAE;EAEhC,IAAIsC,kBAAkB,EAAE;IACtB,OAAOA,kBAAkB,CAAC1B,MAAM,CAACZ,QAAQ,CAAC;EAC5C;EAEA,OAAOuC,4BAAkB,CAAC3B,MAAM,CAACZ,QAAQ,CAAC;AAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAQ;AAGnB,WAHWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ;AAKpB,WAAYC,YAAY;AAGvB,WAHWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
1
+ {"version":3,"file":"brick-visualization.js","names":["Required","ItemModeType"],"sources":["../../../src/interfaces/brick-visualization.ts"],"sourcesContent":["import { FormInstance } from \"antd/lib/form\";\n\nexport type FormItemType =\n | boolean\n | string\n | string[]\n | number\n | Record<string, any>;\n\nexport enum Required {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum ItemModeType {\n Normal = \"normal\",\n Advanced = \"advanced\",\n}\n\nexport interface PropertyType {\n type: FormItemType;\n name: string;\n editor?: {\n model?: string;\n };\n required?: Required;\n description?: string;\n default?: string;\n group?: string;\n groupI18N?: Record<string, { [language: string]: string }>;\n enums?: string;\n}\n\nexport interface UnionPropertyType extends PropertyType {\n mode?: ItemModeType;\n value?: any;\n jsonSchema?: Record<string, any>;\n schemaRef?: string;\n modeValueMap?: Record<string, any>;\n}\n\nexport type BrickProperties = Record<string, any>;\n\nexport interface visualFormUtils extends Partial<FormInstance> {\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => void;\n getCurTypeList: () => UnionPropertyType[];\n}\n"],"mappings":"AASA,WAAYA,QAAQ;AAGnB,WAHWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ;AAKpB,WAAYC,YAAY;AAGvB,WAHWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
@@ -4,7 +4,7 @@ import { Form, Input, InputNumber, Select, Tooltip, Collapse, Empty, Switch, Aut
4
4
  import { useCurrentTheme } from "@next-core/brick-kit";
5
5
  import { GeneralIcon } from "@next-libs/basic-components";
6
6
  import update from "immutability-helper";
7
- import { isNil, pick, upperFirst, isEmpty } from "lodash";
7
+ import { isNil, pick, upperFirst, isEmpty, isString } from "lodash";
8
8
  import styles from "./VisualPropertyForm.module.css";
9
9
  import { CodeEditorFormItem } from "./components/CodeEditor/CodeEditorFormItem";
10
10
  import { IconSelectFormItem } from "./components/IconSelect/IconSelectFormItem";
@@ -12,13 +12,19 @@ import { ColorEditorItem } from "./components/ColorEditor/ColorEditorItem";
12
12
  import { MenuEditorItem } from "./components/MenuEditor/MenuEditorItem";
13
13
  import { ListEditor } from "./components/ListEditor/ListEditor";
14
14
  import { ReactComponent as DarkEmpty } from "./images/empty-dark.svg";
15
- import { mergeProperties, calculateValue, groupByType, yamlStringify } from "./processor";
16
- import { OTHER_FORM_ITEM_FIELD, supportMenuType } from "./constant";
15
+ import { mergeProperties, calculateValue, groupByType, yamlStringify, yaml } from "./processor";
16
+ import { OTHER_FORM_ITEM_FIELD, supportBasicType, supportMenuType } from "./constant";
17
17
  import { matchNoramlMenuValue } from "./processor";
18
18
  import { ItemModeType, Required } from "../interfaces";
19
19
  var ButtonTypeEmun = ["link", "default", "primary", "ghost", "dashed", "icon", "text"];
20
+ export function typeMatched(actualValue, selectedValue) {
21
+ if (typeof actualValue === selectedValue.type) {
22
+ return true;
23
+ }
24
+ // TODO: 补充更多的类型检查,例如 enum 等
25
+ return false;
26
+ }
20
27
  export function LegacyVisualPropertyForm(props, ref) {
21
- var _groupByType;
22
28
  var theme = useCurrentTheme();
23
29
  var {
24
30
  projectId,
@@ -42,30 +48,55 @@ export function LegacyVisualPropertyForm(props, ref) {
42
48
  },
43
49
  getCurTypeList: () => {
44
50
  return typeList === null || typeList === void 0 ? void 0 : typeList.map(item => pick(item, ["name", "type", "mode"]));
45
- }
51
+ },
52
+ getFieldsValue: form.getFieldsValue
46
53
  }));
47
54
  useEffect(() => {
48
55
  var newTypeList = mergeProperties(propertyTypeList, brickProperties);
49
56
  setTypeList(newTypeList);
50
57
  var newValue = calculateValue(propertyTypeList, brickProperties, newTypeList);
58
+ form.resetFields();
51
59
  form.setFieldsValue(newValue);
52
60
  }, [propertyTypeList, brickProperties]);
53
61
  var handleLabelClick = name => {
54
62
  var selected = typeList.find(item => item.name === name);
55
63
  var index = typeList.findIndex(item => item.name === name);
56
64
  var nextMode = selected.mode === ItemModeType.Advanced ? ItemModeType.Normal : ItemModeType.Advanced;
57
- var value = selected.value;
58
- if (nextMode === ItemModeType.Normal) {
65
+ selected.value = form.getFieldValue(selected.name);
66
+ // 记录切换前的模式下的值
67
+ selected.modeValueMap = _objectSpread(_objectSpread({}, selected.modeValueMap), {
68
+ [selected.mode]: selected.value
69
+ });
70
+ // let value = cloneDeep(selected.value);
71
+ if (!isNil(selected.modeValueMap[nextMode])) {
72
+ // 切换后的模式原本有值时,则用原本的值
73
+ selected.value = selected.modeValueMap[nextMode];
74
+ } else if (nextMode === ItemModeType.Normal) {
75
+ // 切换到普通模式没有值时可以根据高级模式来更新值
59
76
  if (supportMenuType.includes(selected.type)) {
60
- value = matchNoramlMenuValue(value);
77
+ selected.value = matchNoramlMenuValue(selected.value);
78
+ } else if (supportBasicType.includes(selected.type)) {
79
+ // yaml解析后检查下类型,不符合属性类型就不更新了
80
+ var parsedValue = yaml(selected.value);
81
+ if (typeMatched(parsedValue, selected)) {
82
+ selected.value = parsedValue;
83
+ } else {
84
+ selected.value = undefined;
85
+ }
61
86
  }
62
- } else if (isNil(selected.value)) {
63
- value = "";
64
87
  } else {
65
- value = yamlStringify(selected.value);
88
+ // 切换到高级模式没有值时可以根据普通模式来更新值
89
+ if (isNil(selected.value)) {
90
+ selected.value = "";
91
+ } else if (isString(selected.value)) {
92
+ // do nothing
93
+ } else {
94
+ selected.value = yamlStringify(selected.value);
95
+ }
66
96
  }
97
+ selected.modeValueMap[nextMode] = selected.value;
67
98
  form.setFieldsValue({
68
- [name]: value
99
+ [name]: selected.value
69
100
  });
70
101
  var newTypeList = update(typeList, {
71
102
  $splice: [[index, 1, _objectSpread(_objectSpread({}, selected), {}, {
@@ -94,7 +125,18 @@ export function LegacyVisualPropertyForm(props, ref) {
94
125
  theme: theme === "dark-v2" ? "monokai" : "tomorrow",
95
126
  jsonSchema: item === null || item === void 0 ? void 0 : item.jsonSchema,
96
127
  schemaRef: item === null || item === void 0 ? void 0 : item.schemaRef,
97
- mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml"
128
+ mode: (item === null || item === void 0 ? void 0 : (_item$editor = item.editor) === null || _item$editor === void 0 ? void 0 : _item$editor.model) || "brick_next_yaml",
129
+ showLineNumbers: true,
130
+ showGutter: true,
131
+ labelCol: {
132
+ span: 24,
133
+ style: {
134
+ padding: 0
135
+ }
136
+ },
137
+ wrapperCol: {
138
+ span: 24
139
+ }
98
140
  });
99
141
  };
100
142
  var renderStringItem = item => {
@@ -116,8 +158,11 @@ export function LegacyVisualPropertyForm(props, ref) {
116
158
  rules: [{
117
159
  required: item.required === Required.True,
118
160
  message: "\u8BF7\u8F93\u5165".concat(item.name)
119
- }]
120
- }, /*#__PURE__*/React.createElement(Switch, null));
161
+ }],
162
+ valuePropName: "checked"
163
+ }, /*#__PURE__*/React.createElement(Switch, {
164
+ defaultChecked: props.brickProperties[item.name]
165
+ }));
121
166
  };
122
167
  var renderInputNumberItem = item => {
123
168
  return item.mode === ItemModeType.Advanced ? renderEditorItem(item) : /*#__PURE__*/React.createElement(Form.Item, {
@@ -203,10 +248,11 @@ export function LegacyVisualPropertyForm(props, ref) {
203
248
  value: value
204
249
  }),
205
250
  onChange: value => {
206
- form.setFieldsValue({
251
+ var changeValue = {
207
252
  [item.name]: value
208
- });
209
- props.onValuesChange(value, value);
253
+ };
254
+ form.setFieldsValue(changeValue);
255
+ props.onValuesChange(changeValue, form.getFieldsValue());
210
256
  }
211
257
  });
212
258
  };
@@ -250,10 +296,11 @@ export function LegacyVisualPropertyForm(props, ref) {
250
296
  }),
251
297
  renderFormItem: renderFormItem,
252
298
  onChange: value => {
253
- form.setFieldsValue({
299
+ var changeValue = {
254
300
  [item.name]: value
255
- });
256
- props.onValuesChange(value, value);
301
+ };
302
+ form.setFieldsValue(changeValue);
303
+ props.onValuesChange(changeValue, form.getFieldsValue());
257
304
  }
258
305
  });
259
306
  };
@@ -323,10 +370,11 @@ export function LegacyVisualPropertyForm(props, ref) {
323
370
  text: value
324
371
  }),
325
372
  onChange: value => {
326
- form.setFieldsValue({
373
+ var changeValue = {
327
374
  [item.name]: value
328
- });
329
- props.onValuesChange(value, value);
375
+ };
376
+ form.setFieldsValue(changeValue);
377
+ props.onValuesChange(changeValue, form.getFieldsValue());
330
378
  }
331
379
  });
332
380
  };
@@ -390,6 +438,9 @@ export function LegacyVisualPropertyForm(props, ref) {
390
438
  maxLines: Infinity
391
439
  });
392
440
  };
441
+ var gorupList = React.useMemo(() => {
442
+ return groupByType(typeList);
443
+ }, [typeList]);
393
444
  return isEmpty(typeList) ? /*#__PURE__*/React.createElement(Empty, {
394
445
  className: styles.empty,
395
446
  description: emptyConfig === null || emptyConfig === void 0 ? void 0 : emptyConfig.description,
@@ -399,20 +450,27 @@ export function LegacyVisualPropertyForm(props, ref) {
399
450
  className: styles.visualPropertyForm,
400
451
  name: "propertyForm",
401
452
  layout: "horizontal",
402
- labelAlign: "right",
453
+ labelAlign: "left",
403
454
  labelCol: {
455
+ span: 8,
404
456
  style: {
405
457
  minWidth: "120px"
406
458
  }
407
459
  },
460
+ wrapperCol: {
461
+ span: 16
462
+ },
463
+ size: "small",
408
464
  form: form,
409
465
  onValuesChange: props.onValuesChange,
410
- initialValues: calculateValue(propertyTypeList, brickProperties, typeList)
466
+ initialValues: calculateValue(propertyTypeList, brickProperties, typeList),
467
+ colon: false
411
468
  }, !hiddenPropsCategory ? /*#__PURE__*/React.createElement(Collapse, {
412
469
  ghost: true,
413
- defaultActiveKey: "0",
414
- className: styles.panelContainer
415
- }, (_groupByType = groupByType(typeList)) === null || _groupByType === void 0 ? void 0 : _groupByType.map((_ref, index) => {
470
+ defaultActiveKey: gorupList.map((_, index) => String(index)),
471
+ className: styles.panelContainer,
472
+ expandIconPosition: "left"
473
+ }, gorupList === null || gorupList === void 0 ? void 0 : gorupList.map((_ref, index) => {
416
474
  var [category, list] = _ref;
417
475
  return /*#__PURE__*/React.createElement(Collapse.Panel, {
418
476
  header: upperFirst(category),
@@ -1 +1 @@
1
- {"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","OTHER_FORM_ITEM_FIELD","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","ButtonTypeEmun","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","form","useForm","typeList","setTypeList","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","newTypeList","newValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","Advanced","Normal","value","includes","type","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","editor","model","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","label","disabled","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","Infinity","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","style","minWidth","panelContainer","category","list","otherPanel","VisualPropertyForm","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport { isNil, pick, upperFirst, isEmpty } from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ListEditor } from \"./components/ListEditor/ListEditor\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n} from \"./processor\";\nimport { OTHER_FORM_ITEM_FIELD, supportMenuType } from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\n};\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n hiddenPropsCategory?: boolean;\n childMountPointList?: string[];\n}\n\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n hiddenPropsCategory,\n menuSettingClick,\n childMountPointList,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n\n let value = selected.value;\n if (nextMode === ItemModeType.Normal) {\n if (supportMenuType.includes(selected.type as string)) {\n value = matchNoramlMenuValue(value);\n }\n } else if (isNil(selected.value)) {\n value = \"\";\n } else {\n value = yamlStringify(selected.value);\n }\n form.setFieldsValue({\n [name]: value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode={item?.editor?.model || \"brick_next_yaml\"}\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Switch />\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n form.setFieldsValue({\n [item.name]: value,\n });\n props.onValuesChange(value, value);\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n const renderOthersItem = (): React.ReactElement => {\n return (\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\" ? \"other params\" : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n );\n };\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"right\"\n labelCol={{\n style: {\n minWidth: \"120px\",\n },\n }}\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n >\n {!hiddenPropsCategory ? (\n <Collapse ghost defaultActiveKey=\"0\" className={styles.panelContainer}>\n {groupByType(typeList)?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n {renderOthersItem()}\n </Collapse.Panel>\n </Collapse>\n ) : (\n <>\n {typeList?.map((item) => {\n return getFormItem(item);\n })}\n <div className={styles.otherPanel}>{renderOthersItem()}</div>\n </>\n )}\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
1
+ {"version":3,"file":"VisualPropertyForm.js","names":["React","useEffect","useImperativeHandle","useState","Form","Input","InputNumber","Select","Tooltip","Collapse","Empty","Switch","AutoComplete","useCurrentTheme","GeneralIcon","update","isNil","pick","upperFirst","isEmpty","isString","styles","CodeEditorFormItem","IconSelectFormItem","ColorEditorItem","MenuEditorItem","ListEditor","ReactComponent","DarkEmpty","mergeProperties","calculateValue","groupByType","yamlStringify","yaml","OTHER_FORM_ITEM_FIELD","supportBasicType","supportMenuType","matchNoramlMenuValue","ItemModeType","Required","ButtonTypeEmun","typeMatched","actualValue","selectedValue","type","LegacyVisualPropertyForm","props","ref","theme","projectId","labelIcon","propertyTypeList","brickProperties","brickInfo","emptyConfig","hiddenPropsCategory","menuSettingClick","childMountPointList","form","useForm","typeList","setTypeList","validateFields","resetPropertyFields","properties","restValue","resetFields","getCurTypeList","map","item","getFieldsValue","newTypeList","newValue","setFieldsValue","handleLabelClick","name","selected","find","index","findIndex","nextMode","mode","Advanced","Normal","value","getFieldValue","modeValueMap","includes","parsedValue","undefined","$splice","renderLabel","hideIcon","description","iconContainer","advanced","normal","renderEditorItem","required","True","jsonSchema","schemaRef","editor","model","span","style","padding","renderStringItem","message","renderBooleanItem","renderInputNumberItem","renderStringListItem","renderIconItem","renderCodeEditorItem","renderColorItem","renderMenuItem","renderGeneralOptipns","renderFormItem","label","disabled","changeValue","onValuesChange","renderCustomColumn","dataIndex","key","title","useChildren","filter","startsWith","endsWith","inputValue","option","children","toUpperCase","indexOf","renderCustomButtons","id","text","tooltip","eventName","buttonType","hide","isDivider","isDropdown","renderEnumItem","enumList","getFormItem","test","enums","emunList","replace","split","renderOthersItem","Infinity","gorupList","useMemo","empty","PRESENTED_IMAGE_SIMPLE","imageStyle","visualPropertyForm","minWidth","_","String","panelContainer","category","list","otherPanel","VisualPropertyForm","forwardRef"],"sources":["../../../src/visual-property-form/VisualPropertyForm.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport {\n Form,\n Input,\n InputNumber,\n Select,\n Tooltip,\n Collapse,\n Empty,\n Switch,\n AutoComplete,\n} from \"antd\";\nimport { EmptyProps } from \"antd/lib/empty\";\nimport { useCurrentTheme } from \"@next-core/brick-kit\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport update from \"immutability-helper\";\nimport _, {\n isNil,\n pick,\n upperFirst,\n isEmpty,\n cloneDeep,\n isString,\n} from \"lodash\";\nimport styles from \"./VisualPropertyForm.module.css\";\nimport { FormProps } from \"antd/lib/form\";\nimport { CodeEditorFormItem } from \"./components/CodeEditor/CodeEditorFormItem\";\nimport { IconSelectFormItem } from \"./components/IconSelect/IconSelectFormItem\";\nimport { ColorEditorItem } from \"./components/ColorEditor/ColorEditorItem\";\nimport { MenuEditorItem } from \"./components/MenuEditor/MenuEditorItem\";\nimport { ListEditor } from \"./components/ListEditor/ListEditor\";\nimport { ReactComponent as DarkEmpty } from \"./images/empty-dark.svg\";\nimport {\n mergeProperties,\n calculateValue,\n groupByType,\n yamlStringify,\n yaml,\n} from \"./processor\";\nimport {\n OTHER_FORM_ITEM_FIELD,\n supportBasicType,\n supportMenuType,\n} from \"./constant\";\nimport { matchNoramlMenuValue } from \"./processor\";\nimport {\n PropertyType,\n BrickProperties,\n visualFormUtils,\n ItemModeType,\n UnionPropertyType,\n Required,\n} from \"../interfaces\";\n\nconst ButtonTypeEmun = [\n \"link\",\n \"default\",\n \"primary\",\n \"ghost\",\n \"dashed\",\n \"icon\",\n \"text\",\n];\n\nexport type CustomColumn = {\n dataIndex: string;\n title: string;\n useChildren?: string;\n [k: string]: any;\n};\n\nexport type GeneralOptionProps = {\n label: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type CustomButtonProps = {\n id: string;\n buttonType: string;\n eventName: string;\n text: string;\n tooltip: string;\n icon: MenuIcon;\n hide: boolean;\n disabled: boolean;\n isDivider: boolean;\n isDropdown: boolean;\n};\nexport interface VisualPropertyFormProps {\n projectId?: string;\n propertyTypeList: PropertyType[];\n labelIcon: {\n normal?: MenuIcon;\n advanced?: MenuIcon;\n };\n brickProperties: BrickProperties;\n onValuesChange?: FormProps[\"onValuesChange\"];\n brickInfo?: {\n type: \"brick\" | \"provider\" | \"template\";\n };\n emptyConfig?: EmptyProps;\n menuSettingClick?: () => void;\n hiddenPropsCategory?: boolean;\n childMountPointList?: string[];\n}\n\nexport function typeMatched(\n actualValue: any,\n selectedValue: UnionPropertyType\n): boolean {\n if (typeof actualValue === (selectedValue.type as string)) {\n return true;\n }\n // TODO: 补充更多的类型检查,例如 enum 等\n return false;\n}\nexport function LegacyVisualPropertyForm(\n props: VisualPropertyFormProps,\n ref: React.Ref<visualFormUtils>\n): React.ReactElement {\n const theme = useCurrentTheme();\n const {\n projectId,\n labelIcon,\n propertyTypeList,\n brickProperties,\n brickInfo,\n emptyConfig,\n hiddenPropsCategory,\n menuSettingClick,\n childMountPointList,\n } = props;\n const [form] = Form.useForm();\n const [typeList, setTypeList] = useState<UnionPropertyType[]>(\n mergeProperties(propertyTypeList, brickProperties)\n );\n\n useImperativeHandle(ref, () => ({\n validateFields: form.validateFields,\n resetPropertyFields: (\n typeList: PropertyType[],\n properties: BrickProperties\n ) => {\n const restValue = mergeProperties(typeList, properties);\n setTypeList(restValue);\n form.resetFields();\n },\n getCurTypeList: (): UnionPropertyType[] => {\n return typeList?.map((item) => pick(item, [\"name\", \"type\", \"mode\"]));\n },\n getFieldsValue: form.getFieldsValue,\n }));\n\n useEffect(() => {\n const newTypeList = mergeProperties(propertyTypeList, brickProperties);\n setTypeList(newTypeList);\n\n const newValue = calculateValue(\n propertyTypeList,\n brickProperties,\n newTypeList\n );\n form.resetFields();\n form.setFieldsValue(newValue);\n }, [propertyTypeList, brickProperties]);\n\n const handleLabelClick = (name: string): void => {\n const selected = typeList.find((item) => item.name === name);\n const index = typeList.findIndex((item) => item.name === name);\n const nextMode =\n selected.mode === ItemModeType.Advanced\n ? ItemModeType.Normal\n : ItemModeType.Advanced;\n selected.value = form.getFieldValue(selected.name);\n // 记录切换前的模式下的值\n selected.modeValueMap = {\n ...selected.modeValueMap,\n ...{ [selected.mode]: selected.value },\n };\n // let value = cloneDeep(selected.value);\n if (!isNil(selected.modeValueMap[nextMode])) {\n // 切换后的模式原本有值时,则用原本的值\n selected.value = selected.modeValueMap[nextMode];\n } else if (nextMode === ItemModeType.Normal) {\n // 切换到普通模式没有值时可以根据高级模式来更新值\n if (supportMenuType.includes(selected.type as string)) {\n selected.value = matchNoramlMenuValue(selected.value);\n } else if (supportBasicType.includes(selected.type as string)) {\n // yaml解析后检查下类型,不符合属性类型就不更新了\n const parsedValue = yaml(selected.value);\n if (typeMatched(parsedValue, selected)) {\n selected.value = parsedValue;\n } else {\n selected.value = undefined;\n }\n }\n } else {\n // 切换到高级模式没有值时可以根据普通模式来更新值\n if (isNil(selected.value)) {\n selected.value = \"\";\n } else if (isString(selected.value)) {\n // do nothing\n } else {\n selected.value = yamlStringify(selected.value);\n }\n }\n selected.modeValueMap[nextMode] = selected.value;\n form.setFieldsValue({\n [name]: selected.value,\n });\n const newTypeList = update(typeList, {\n $splice: [[index, 1, { ...selected, mode: nextMode }]],\n });\n setTypeList(newTypeList);\n };\n\n const renderLabel = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <span>\n <Tooltip title={item.description}>{item.name}</Tooltip>{\" \"}\n {!hideIcon && labelIcon && (\n <span\n className={styles.iconContainer}\n onClick={() => handleLabelClick(item.name)}\n >\n <GeneralIcon\n icon={\n item.mode === ItemModeType.Advanced\n ? labelIcon?.advanced\n : labelIcon.normal\n }\n />\n </span>\n )}\n </span>\n );\n };\n\n const renderEditorItem = (\n item: UnionPropertyType,\n hideIcon?: boolean\n ): React.ReactElement => {\n return (\n <CodeEditorFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, hideIcon) as any}\n required={item.required === Required.True}\n theme={theme === \"dark-v2\" ? \"monokai\" : \"tomorrow\"}\n jsonSchema={item?.jsonSchema}\n schemaRef={item?.schemaRef}\n mode={item?.editor?.model || \"brick_next_yaml\"}\n showLineNumbers={true}\n showGutter={true}\n labelCol={{\n span: 24,\n style: {\n padding: 0,\n },\n }}\n wrapperCol={{\n span: 24,\n }}\n />\n );\n };\n\n const renderStringItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Input />\n </Form.Item>\n );\n };\n\n const renderBooleanItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n valuePropName=\"checked\"\n >\n <Switch defaultChecked={props.brickProperties[item.name]} />\n </Form.Item>\n );\n };\n\n const renderInputNumberItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <InputNumber />\n </Form.Item>\n );\n };\n\n const renderStringListItem = (\n item: UnionPropertyType\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select mode=\"tags\" />\n </Form.Item>\n );\n };\n\n const renderIconItem = (item: UnionPropertyType): React.ReactElement => {\n return (\n <IconSelectFormItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true) as any}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderCodeEditorItem = (item: PropertyType): React.ReactElement => {\n return renderEditorItem(item, true);\n };\n\n const renderColorItem = (item: PropertyType): React.ReactElement => {\n return (\n <ColorEditorItem\n key={item.name}\n name={item.name}\n label={renderLabel(item, true)}\n required={item.required === Required.True}\n />\n );\n };\n\n const renderMenuItem = (item: UnionPropertyType): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <MenuEditorItem\n projectId={projectId}\n key={item.name}\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n menuSettingClick={menuSettingClick}\n />\n );\n };\n\n const renderGeneralOptipns = (\n item: UnionPropertyType\n ): React.ReactElement => {\n const renderFormItem = (item: GeneralOptionProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"label\" label=\"label\">\n <Input defaultValue={item.label} />\n </Form.Item>\n <Form.Item name=\"value\" label=\"value\">\n <Input defaultValue={item.value} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"label\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n label: value,\n value: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomColumn = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomColumn): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"dataIndex\" label=\"dataIndex\">\n <Input defaultValue={item.dataIndex} />\n </Form.Item>\n <Form.Item name=\"key\" label=\"key\">\n <Input defaultValue={item.key} />\n </Form.Item>\n <Form.Item name=\"title\" label=\"title\">\n <Input defaultValue={item.title} />\n </Form.Item>\n <Form.Item\n name=\"useChildren\"\n label=\"useChildren\"\n tooltip=\"useBrick代替用法,数据来源于子插槽名称,并且插槽名称必须使用'[]'包裹\"\n >\n <AutoComplete\n defaultValue={item.useChildren}\n dataSource={(childMountPointList ?? []).filter(\n (item) => item.startsWith(\"[\") && item.endsWith(\"]\")\n )}\n filterOption={(inputValue, option) =>\n option.props.children\n .toUpperCase()\n .indexOf(inputValue.toUpperCase()) !== -1\n }\n />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"title\"\n getDefaultItem={(value: any) => ({\n dataIndex: value,\n title: value,\n key: value,\n })}\n renderFormItem={renderFormItem}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderCustomButtons = (item: UnionPropertyType): React.ReactElement => {\n const renderFormItem = (item: CustomButtonProps): React.ReactElement => {\n return (\n <>\n <Form.Item name=\"id\" label=\"id\">\n <Input defaultValue={item.id} />\n </Form.Item>\n <Form.Item name=\"text\" label=\"text\">\n <Input defaultValue={item.text} />\n </Form.Item>\n <Form.Item name=\"tooltip\" label=\"tooltip\">\n <Input defaultValue={item.tooltip} />\n </Form.Item>\n <Form.Item name=\"eventName\" label=\"eventName\">\n <Input defaultValue={item.eventName} />\n </Form.Item>\n <IconSelectFormItem name=\"icon\" label=\"icon\" />\n <Form.Item name=\"buttonType\" label=\"buttonType\">\n <Select defaultValue={item.buttonType}>\n {ButtonTypeEmun.map((item) => (\n <Select.Option key={item} value={item}>\n {item}\n </Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item name=\"hide\" label=\"hide\">\n <Switch checked={item.hide} />\n </Form.Item>\n <Form.Item name=\"disabled\" label=\"disabled\">\n <Switch checked={item.disabled} />\n </Form.Item>\n <Form.Item name=\"isDivider\" label=\"isDivider\">\n <Switch checked={item.isDivider} />\n </Form.Item>\n <Form.Item name=\"isDropdown\" label=\"isDropdown\">\n <Switch checked={item.isDropdown} />\n </Form.Item>\n </>\n );\n };\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <ListEditor\n name={item.name}\n label={renderLabel(item)}\n required={item.required === Required.True}\n value={brickProperties[item.name]}\n listItemKey=\"text\"\n renderFormItem={renderFormItem}\n getDefaultItem={(value: any) => ({\n text: value,\n })}\n onChange={(value) => {\n const changeValue = {\n [item.name]: value,\n };\n form.setFieldsValue(changeValue);\n props.onValuesChange(changeValue, form.getFieldsValue());\n }}\n />\n );\n };\n\n const renderEnumItem = (\n item: UnionPropertyType,\n enumList: string[]\n ): React.ReactElement => {\n return item.mode === ItemModeType.Advanced ? (\n renderEditorItem(item)\n ) : (\n <Form.Item\n key={item.name}\n label={renderLabel(item)}\n name={item.name}\n rules={[\n {\n required: item.required === Required.True,\n message: `请输入${item.name}`,\n },\n ]}\n >\n <Select\n options={enumList.map((item) => ({ label: item, value: item }))}\n />\n </Form.Item>\n );\n };\n\n const getFormItem = (item: PropertyType): React.ReactElement => {\n // todo(sailor): update unit text\n if (/true|false/.test(item.type as string)) {\n return renderBooleanItem(item);\n }\n if (item.enums) {\n const emunList = (item.enums as string).replace(/\"|'/g, \"\").split(\"|\");\n return renderEnumItem(item, emunList);\n }\n switch (item.type) {\n case \"string\":\n return renderStringItem(item);\n case \"string[]\":\n return renderStringListItem(item);\n case \"number\":\n return renderInputNumberItem(item);\n case \"boolean\":\n return renderBooleanItem(item);\n case \"MenuIcon\":\n return renderIconItem(item);\n case \"Color\":\n return renderColorItem(item);\n case \"Menu\":\n case \"SidebarSubMenu\":\n return renderMenuItem(item);\n // todo(sailor): update unit text\n case \"GeneralOption[]\":\n return renderGeneralOptipns(item);\n case \"CustomColumn[]\":\n return renderCustomColumn(item);\n case \"CustomButton[]\":\n return renderCustomButtons(item);\n default:\n return renderCodeEditorItem(item);\n }\n };\n\n const renderOthersItem = (): React.ReactElement => {\n return (\n <CodeEditorFormItem\n name={OTHER_FORM_ITEM_FIELD}\n label={\n brickInfo?.type === \"template\" ? \"other params\" : \"other properties\"\n }\n mode=\"brick_next_yaml\"\n maxLines={Infinity}\n />\n );\n };\n\n const gorupList = React.useMemo(() => {\n return groupByType(typeList);\n }, [typeList]);\n\n return isEmpty(typeList) ? (\n <Empty\n className={styles.empty}\n description={emptyConfig?.description}\n image={theme === \"dark-v2\" ? <DarkEmpty /> : Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={emptyConfig?.imageStyle}\n />\n ) : (\n <Form\n className={styles.visualPropertyForm}\n name=\"propertyForm\"\n layout=\"horizontal\"\n labelAlign=\"left\"\n labelCol={{\n span: 8,\n style: {\n minWidth: \"120px\",\n },\n }}\n wrapperCol={{ span: 16 }}\n size=\"small\"\n form={form}\n onValuesChange={props.onValuesChange}\n initialValues={calculateValue(\n propertyTypeList,\n brickProperties,\n typeList\n )}\n colon={false}\n >\n {!hiddenPropsCategory ? (\n <Collapse\n ghost\n defaultActiveKey={gorupList.map((_, index) => String(index))}\n className={styles.panelContainer}\n expandIconPosition=\"left\"\n >\n {gorupList?.map(([category, list], index) => {\n return (\n <Collapse.Panel\n header={upperFirst(category)}\n key={index}\n forceRender={true}\n >\n {list.map((item) => getFormItem(item))}\n </Collapse.Panel>\n );\n })}\n\n <Collapse.Panel\n className={styles.otherPanel}\n forceRender={true}\n header={upperFirst(OTHER_FORM_ITEM_FIELD)}\n key={OTHER_FORM_ITEM_FIELD}\n >\n {renderOthersItem()}\n </Collapse.Panel>\n </Collapse>\n ) : (\n <>\n {typeList?.map((item) => {\n return getFormItem(item);\n })}\n <div className={styles.otherPanel}>{renderOthersItem()}</div>\n </>\n )}\n </Form>\n );\n}\n\nexport const VisualPropertyForm = React.forwardRef(LegacyVisualPropertyForm);\n"],"mappings":"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"}
@@ -1,27 +1,38 @@
1
1
  .iconContainer {
2
+ margin-right: -13px;
2
3
  cursor: pointer;
4
+ :global(.anticon) {
5
+ vertical-align: middle;
6
+ }
3
7
  }
4
8
 
5
9
  .visualPropertyForm {
6
10
  :global(.ant-form-item) {
7
11
  margin-bottom: 8px;
12
+ > :global(.ant-form-item-control) {
13
+ text-align: right;
14
+ }
8
15
  }
9
16
  }
10
17
 
11
18
  .panelContainer {
12
19
  > :global(.ant-collapse-item) {
20
+ margin-bottom: 8px;
13
21
  > :global(.ant-collapse-header) {
14
- font-size: 16px;
15
- font-weight: 500;
22
+ background: var(--color-fill-bg-base-2);
23
+ padding: 8px 6px;
24
+ padding-left: 28px;
25
+ border-radius: (--antd-button-border-radius);
16
26
  > :global(.ant-collapse-arrow) {
17
- top: 6px;
27
+ top: 2px;
28
+ left: 8px;
18
29
  color: var(--antd-btn-default-color);
19
30
  }
20
31
  }
21
32
 
22
33
  > :global(.ant-collapse-content) {
23
34
  > :global(.ant-collapse-content-box) {
24
- padding: 0 20px;
35
+ padding: 8px;
25
36
  }
26
37
  }
27
38
  }