@next-libs/visual-builder 1.2.14 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +0 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/brick-visualization.js +0 -3
- package/dist/cjs/interfaces/brick-visualization.js.map +1 -1
- package/dist/cjs/interfaces/index.js +0 -4
- package/dist/cjs/interfaces/index.js.map +1 -1
- package/dist/cjs/utils/deepMatch.js +0 -7
- package/dist/cjs/utils/deepMatch.js.map +1 -1
- package/dist/cjs/utils/index.js +0 -2
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/visual-property-form/VisualPropertyForm.js +2 -48
- package/dist/cjs/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +0 -11
- package/dist/cjs/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
- package/dist/cjs/visual-property-form/components/ColorEditor/ColorEditorItem.js +0 -19
- package/dist/cjs/visual-property-form/components/ColorEditor/ColorEditorItem.js.map +1 -1
- package/dist/cjs/visual-property-form/components/IconSelect/IconSelectFormItem.js +0 -5
- package/dist/cjs/visual-property-form/components/IconSelect/IconSelectFormItem.js.map +1 -1
- package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js +0 -9
- package/dist/cjs/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
- package/dist/cjs/visual-property-form/constant.js.map +1 -1
- package/dist/cjs/visual-property-form/processor.js +9 -45
- package/dist/cjs/visual-property-form/processor.js.map +1 -1
- package/dist/cjs/workbench-mini-action-bar/WorkbenchMiniActionBar.js +0 -11
- package/dist/cjs/workbench-mini-action-bar/WorkbenchMiniActionBar.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/brick-visualization.js +0 -3
- package/dist/esm/interfaces/brick-visualization.js.map +1 -1
- package/dist/esm/interfaces/index.js.map +1 -1
- package/dist/esm/utils/deepMatch.js +0 -5
- package/dist/esm/utils/deepMatch.js.map +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/visual-property-form/VisualPropertyForm.js +0 -25
- package/dist/esm/visual-property-form/VisualPropertyForm.js.map +1 -1
- package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js +4 -9
- package/dist/esm/visual-property-form/components/CodeEditor/CodeEditorFormItem.js.map +1 -1
- package/dist/esm/visual-property-form/components/ColorEditor/ColorEditorItem.js +0 -9
- package/dist/esm/visual-property-form/components/ColorEditor/ColorEditorItem.js.map +1 -1
- package/dist/esm/visual-property-form/components/IconSelect/IconSelectFormItem.js.map +1 -1
- package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js +0 -4
- package/dist/esm/visual-property-form/components/MenuEditor/MenuEditorItem.js.map +1 -1
- package/dist/esm/visual-property-form/constant.js.map +1 -1
- package/dist/esm/visual-property-form/processor.js +1 -27
- package/dist/esm/visual-property-form/processor.js.map +1 -1
- package/dist/esm/workbench-mini-action-bar/WorkbenchMiniActionBar.js +0 -3
- package/dist/esm/workbench-mini-action-bar/WorkbenchMiniActionBar.js.map +1 -1
- package/package.json +5 -5
- package/CHANGELOG.md +0 -137
|
@@ -8,7 +8,6 @@ export function isAdvanceMode(value) {
|
|
|
8
8
|
if (typeof value === "string" && (value.startsWith("<%") || value.includes("${"))) {
|
|
9
9
|
return true;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
return false;
|
|
13
12
|
}
|
|
14
13
|
export function mergeProperties() {
|
|
@@ -38,56 +37,43 @@ export function yaml(value) {
|
|
|
38
37
|
export function matchNoramlMenuValue(value) {
|
|
39
38
|
if (typeof value === "string") {
|
|
40
39
|
var _value$match, _value$match$;
|
|
41
|
-
|
|
42
40
|
var reg = /<% APP\.getMenu\((.*)\) %>/;
|
|
43
41
|
return ((_value$match = value.match(reg)) === null || _value$match === void 0 ? void 0 : (_value$match$ = _value$match[1]) === null || _value$match$ === void 0 ? void 0 : _value$match$.replace(/'|"/g, "")) || value;
|
|
44
42
|
}
|
|
45
|
-
|
|
46
43
|
return value;
|
|
47
44
|
}
|
|
48
|
-
|
|
49
45
|
function calcMenuValue(value) {
|
|
50
46
|
if (typeof value === "string") {
|
|
51
47
|
if (value.startsWith("<%")) {
|
|
52
48
|
return value;
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
return "<% APP.getMenu('".concat(value, "') %>");
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
return value;
|
|
59
53
|
}
|
|
60
|
-
|
|
61
54
|
export function calculateValue() {
|
|
62
55
|
var propertyList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
63
56
|
var brickProperties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
64
57
|
var typeList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
65
58
|
var othersValue = {};
|
|
66
|
-
|
|
67
59
|
var _loop = function (key, value) {
|
|
68
60
|
var find = propertyList.find(item => item.name === key);
|
|
69
|
-
|
|
70
61
|
if (!find) {
|
|
71
62
|
othersValue[key] = value;
|
|
72
63
|
}
|
|
73
64
|
};
|
|
74
|
-
|
|
75
65
|
for (var [key, value] of Object.entries(brickProperties)) {
|
|
76
66
|
_loop(key, value);
|
|
77
67
|
}
|
|
78
|
-
|
|
79
68
|
var processValue = propertyList.reduce((obj, item) => {
|
|
80
69
|
var v = brickProperties[item.name];
|
|
81
70
|
obj[item.name] = v;
|
|
82
|
-
|
|
83
71
|
if (v !== undefined) {
|
|
84
72
|
if (!supportBasicType.concat(supportMenuType).includes(item.type)) {
|
|
85
73
|
obj[item.name] = yamlStringify(v);
|
|
86
74
|
}
|
|
87
|
-
|
|
88
75
|
if (supportMenuType.includes(item.type)) {
|
|
89
76
|
var selected = typeList.find(typeItem => typeItem.name === item.name);
|
|
90
|
-
|
|
91
77
|
if ((selected === null || selected === void 0 ? void 0 : selected.mode) === ItemModeType.Advanced) {
|
|
92
78
|
obj[item.name] = v;
|
|
93
79
|
} else {
|
|
@@ -95,13 +81,13 @@ export function calculateValue() {
|
|
|
95
81
|
}
|
|
96
82
|
}
|
|
97
83
|
}
|
|
98
|
-
|
|
99
84
|
return obj;
|
|
100
85
|
}, {});
|
|
101
86
|
return _objectSpread(_objectSpread({}, processValue), {}, {
|
|
102
87
|
[OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue) ? "" : yamlStringify(othersValue)
|
|
103
88
|
});
|
|
104
89
|
}
|
|
90
|
+
|
|
105
91
|
/**
|
|
106
92
|
* @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理
|
|
107
93
|
* 1. 当前属性的类型不是内置支持的类型
|
|
@@ -116,30 +102,25 @@ export function isUseYamlParse(field, typeList) {
|
|
|
116
102
|
if (typeof field.value !== "string") return false;
|
|
117
103
|
if (field.key === OTHER_FORM_ITEM_FIELD) return true;
|
|
118
104
|
var find = typeList === null || typeList === void 0 ? void 0 : typeList.find(item => item.name === field.key);
|
|
119
|
-
|
|
120
105
|
if (find) {
|
|
121
106
|
if (supportMenuType.includes(find.type) && find.mode !== ItemModeType.Advanced) return false;
|
|
122
107
|
var isBasicType = supportBasicType.includes(find.type);
|
|
123
108
|
if (isBasicType && find.mode === ItemModeType.Advanced) return true;
|
|
124
109
|
if (!isBasicType) return true;
|
|
125
110
|
}
|
|
126
|
-
|
|
127
111
|
return false;
|
|
128
112
|
}
|
|
129
113
|
export function isUseMenuParse(field, typeList) {
|
|
130
114
|
var item = typeList.find(item => item.name === field.key);
|
|
131
|
-
|
|
132
115
|
if (supportMenuType.includes(item === null || item === void 0 ? void 0 : item.type)) {
|
|
133
116
|
return true;
|
|
134
117
|
}
|
|
135
|
-
|
|
136
118
|
return false;
|
|
137
119
|
}
|
|
138
120
|
export function processFormValue() {
|
|
139
121
|
var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
140
122
|
var typeList = arguments.length > 1 ? arguments[1] : undefined;
|
|
141
123
|
var formData = {};
|
|
142
|
-
|
|
143
124
|
for (var [key, value] of Object.entries(values)) {
|
|
144
125
|
if (isUseYamlParse({
|
|
145
126
|
key,
|
|
@@ -155,7 +136,6 @@ export function processFormValue() {
|
|
|
155
136
|
formData[key] = value;
|
|
156
137
|
}
|
|
157
138
|
}
|
|
158
|
-
|
|
159
139
|
return _objectSpread(_objectSpread({}, omit(formData, OTHER_FORM_ITEM_FIELD)), isEmpty(formData[OTHER_FORM_ITEM_FIELD]) ? {} : formData[OTHER_FORM_ITEM_FIELD]);
|
|
160
140
|
}
|
|
161
141
|
export function groupByType() {
|
|
@@ -164,25 +144,19 @@ export function groupByType() {
|
|
|
164
144
|
var others = typeList.filter(item => item.group === "other");
|
|
165
145
|
return Object.entries(groupBy(normals.concat(others), item => {
|
|
166
146
|
var group = item.group || "basic";
|
|
167
|
-
|
|
168
147
|
var groupI18N = _objectSpread(_objectSpread({}, groupI18nMap), item.groupI18N);
|
|
169
|
-
|
|
170
148
|
var i18nData = groupI18N && groupI18N[group];
|
|
171
|
-
|
|
172
149
|
if (i18nData) {
|
|
173
150
|
return i18nText(i18nData);
|
|
174
151
|
}
|
|
175
|
-
|
|
176
152
|
return group;
|
|
177
153
|
}));
|
|
178
154
|
}
|
|
179
155
|
export function extractCommonProps(typeList, sharedPropertyList) {
|
|
180
156
|
if (isEmpty(typeList)) return [];
|
|
181
|
-
|
|
182
157
|
if (sharedPropertyList) {
|
|
183
158
|
return sharedPropertyList.concat(typeList);
|
|
184
159
|
}
|
|
185
|
-
|
|
186
160
|
return defaultCommonProps.concat(typeList);
|
|
187
161
|
}
|
|
188
162
|
//# sourceMappingURL=processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","names":["i18nText","ItemModeType","safeDump","JSON_SCHEMA","safeLoad","omit","isEmpty","groupBy","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","defaultCommonProps","groupI18nMap","isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","Advanced","Normal","yamlStringify","indent","schema","skipInvalid","noRefs","noCompatMode","yaml","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","find","Object","entries","processValue","reduce","obj","v","undefined","concat","type","selected","typeItem","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","groupByType","normals","filter","group","others","groupI18N","i18nData","extractCommonProps","sharedPropertyList"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function mergeProperties(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {}\n): UnionPropertyType[] {\n return propertyList?.map((item) => ({\n ...item,\n value: brickProperties?.[item.name],\n mode: isAdvanceMode(brickProperties?.[item.name])\n ? ItemModeType.Advanced\n : ItemModeType.Normal,\n }));\n}\n\nexport function yamlStringify(value: unknown, indent = 2): string {\n return safeDump(value, {\n indent,\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n });\n}\n\nexport function yaml(value: string): any {\n return safeLoad(value, { schema: JSON_SCHEMA, json: true });\n}\n\nexport function matchNoramlMenuValue(value: unknown): unknown {\n if (typeof value === \"string\") {\n const reg = /<% APP\\.getMenu\\((.*)\\) %>/;\n return value.match(reg)?.[1]?.replace(/'|\"/g, \"\") || value;\n }\n return value;\n}\n\nfunction calcMenuValue(value: string): string {\n if (typeof value === \"string\") {\n if (value.startsWith(\"<%\")) {\n return value;\n }\n return `<% APP.getMenu('${value}') %>`;\n }\n return value;\n}\n\nexport function calculateValue(\n propertyList: PropertyType[] = [],\n brickProperties: BrickProperties = {},\n typeList: UnionPropertyType[] = []\n): Record<string, any> {\n const othersValue: Record<string, any> = {};\n for (const [key, value] of Object.entries(brickProperties)) {\n const find = propertyList.find((item) => item.name === key);\n if (!find) {\n othersValue[key] = value;\n }\n }\n\n const processValue = propertyList.reduce((obj: any, item) => {\n const v = brickProperties[item.name];\n obj[item.name] = v;\n if (v !== undefined) {\n if (\n !supportBasicType.concat(supportMenuType).includes(item.type as string)\n ) {\n obj[item.name] = yamlStringify(v);\n }\n\n if (supportMenuType.includes(item.type as string)) {\n const selected = typeList.find(\n (typeItem) => typeItem.name === item.name\n );\n if (selected?.mode === ItemModeType.Advanced) {\n obj[item.name] = v;\n } else {\n obj[item.name] = matchNoramlMenuValue(v);\n }\n }\n }\n return obj;\n }, {});\n\n return {\n ...processValue,\n [OTHER_FORM_ITEM_FIELD]: isEmpty(othersValue)\n ? \"\"\n : yamlStringify(othersValue),\n };\n}\n\n/**\n * @description 判断是否用使用 yaml 把用户输入解析成 JSON 的模式,当前只有以下情况下会进行解析,其他情况不对数据进行处理\n * 1. 当前属性的类型不是内置支持的类型\n * 2. 当前属性虽然是支持的类型,但是当前切换到高级模式编辑\n * 3. 不是构件本身申明的属性,为 html 共有的通用属性,目前统一放在 others 的编辑器中\n * @param field 字段值\n * @param typeList 属性列表包含每个属性的类型和当前编辑模式\n * @return boolean\n */\n\nexport function isUseYamlParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n if (typeof field.value !== \"string\") return false;\n\n if (field.key === OTHER_FORM_ITEM_FIELD) return true;\n\n const find = typeList?.find((item) => item.name === field.key);\n\n if (find) {\n if (\n supportMenuType.includes(find.type as string) &&\n find.mode !== ItemModeType.Advanced\n )\n return false;\n\n const isBasicType = supportBasicType.includes(find.type as string);\n\n if (isBasicType && find.mode === ItemModeType.Advanced) return true;\n\n if (!isBasicType) return true;\n }\n\n return false;\n}\n\nexport function isUseMenuParse(\n field: { key: string; value: any },\n typeList: UnionPropertyType[]\n): boolean {\n const item = typeList.find((item) => item.name === field.key);\n if (supportMenuType.includes(item?.type as string)) {\n return true;\n }\n return false;\n}\n\nexport function processFormValue(\n values = {},\n typeList: UnionPropertyType[]\n): Record<string, any> {\n const formData: Record<string, any> = {};\n for (const [key, value] of Object.entries(values)) {\n if (isUseYamlParse({ key, value }, typeList)) {\n formData[key] = yaml(value as any);\n } else if (isUseMenuParse({ key, value }, typeList)) {\n formData[key] = calcMenuValue(value as string);\n } else {\n formData[key] = value;\n }\n }\n\n return {\n ...omit(formData, OTHER_FORM_ITEM_FIELD),\n ...(isEmpty(formData[OTHER_FORM_ITEM_FIELD])\n ? {}\n : formData[OTHER_FORM_ITEM_FIELD]),\n };\n}\n\nexport function groupByType(\n typeList: UnionPropertyType[] = []\n): Array<[string, UnionPropertyType[]]> {\n const normals = typeList.filter((item) => item.group !== \"other\");\n const others = typeList.filter((item) => item.group === \"other\");\n\n return Object.entries(\n groupBy(normals.concat(others), (item) => {\n const group = item.group || \"basic\";\n const groupI18N: Record<string, any> = {\n ...groupI18nMap,\n ...item.groupI18N,\n };\n const i18nData = groupI18N && groupI18N[group];\n if (i18nData) {\n return i18nText(i18nData);\n }\n\n return group;\n })\n );\n}\n\nexport function extractCommonProps(\n typeList: PropertyType[],\n sharedPropertyList?: PropertyType[]\n): PropertyType[] {\n if (isEmpty(typeList)) return [];\n\n if (sharedPropertyList) {\n return sharedPropertyList.concat(typeList);\n }\n\n return defaultCommonProps.concat(typeList);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor.js","names":["i18nText","ItemModeType","safeDump","JSON_SCHEMA","safeLoad","omit","isEmpty","groupBy","supportBasicType","supportMenuType","OTHER_FORM_ITEM_FIELD","defaultCommonProps","groupI18nMap","isAdvanceMode","value","startsWith","includes","mergeProperties","propertyList","brickProperties","map","item","name","mode","Advanced","Normal","yamlStringify","indent","schema","skipInvalid","noRefs","noCompatMode","yaml","json","matchNoramlMenuValue","reg","match","replace","calcMenuValue","calculateValue","typeList","othersValue","key","find","Object","entries","processValue","reduce","obj","v","undefined","concat","type","selected","typeItem","isUseYamlParse","field","isBasicType","isUseMenuParse","processFormValue","values","formData","groupByType","normals","filter","group","others","groupI18N","i18nData","extractCommonProps","sharedPropertyList"],"sources":["../../../src/visual-property-form/processor.ts"],"sourcesContent":["import { i18nText } from \"@next-core/brick-kit\";\nimport {\n PropertyType,\n UnionPropertyType,\n BrickProperties,\n ItemModeType,\n} from \"../interfaces\";\nimport { safeDump, JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { omit, isEmpty, groupBy } from \"lodash\";\nimport {\n supportBasicType,\n supportMenuType,\n OTHER_FORM_ITEM_FIELD,\n defaultCommonProps,\n groupI18nMap,\n} from \"./constant\";\n\nexport function isAdvanceMode(value: unknown): boolean {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"<%\") || value.includes(\"${\"))\n ) {\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":";AAAA,SAASA,QAAQ,QAAQ,sBAAsB;AAC/C,SAIEC,YAAY,QACP,eAAe;AACtB,SAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,SAAS;AACzD,SAASC,IAAI,EAAEC,OAAO,EAAEC,OAAO,QAAQ,QAAQ;AAC/C,SACEC,gBAAgB,EAChBC,eAAe,EACfC,qBAAqB,EACrBC,kBAAkB,EAClBC,YAAY,QACP,YAAY;AAEnB,OAAO,SAASC,aAAa,CAACC,KAAc,EAAW;EACrD,IACE,OAAOA,KAAK,KAAK,QAAQ,KACxBA,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC,IAAID,KAAK,CAACE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAChD;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,eAAe,GAGR;EAAA,IAFrBC,YAA4B,uEAAG,EAAE;EAAA,IACjCC,eAAgC,uEAAG,CAAC,CAAC;EAErC,OAAOD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,GAAG,CAAEC,IAAI,oCACzBA,IAAI;IACPP,KAAK,EAAEK,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGE,IAAI,CAACC,IAAI,CAAC;IACnCC,IAAI,EAAEV,aAAa,CAACM,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAGE,IAAI,CAACC,IAAI,CAAC,CAAC,GAC7CrB,YAAY,CAACuB,QAAQ,GACrBvB,YAAY,CAACwB;EAAM,EACvB,CAAC;AACL;AAEA,OAAO,SAASC,aAAa,CAACZ,KAAc,EAAsB;EAAA,IAApBa,MAAM,uEAAG,CAAC;EACtD,OAAOzB,QAAQ,CAACY,KAAK,EAAE;IACrBa,MAAM;IACNC,MAAM,EAAEzB,WAAW;IACnB0B,WAAW,EAAE,IAAI;IACjBC,MAAM,EAAE,IAAI;IACZC,YAAY,EAAE;EAChB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,IAAI,CAAClB,KAAa,EAAO;EACvC,OAAOV,QAAQ,CAACU,KAAK,EAAE;IAAEc,MAAM,EAAEzB,WAAW;IAAE8B,IAAI,EAAE;EAAK,CAAC,CAAC;AAC7D;AAEA,OAAO,SAASC,oBAAoB,CAACpB,KAAc,EAAW;EAC5D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAAA;IAC7B,IAAMqB,GAAG,GAAG,4BAA4B;IACxC,OAAO,iBAAArB,KAAK,CAACsB,KAAK,CAACD,GAAG,CAAC,kEAAhB,aAAmB,CAAC,CAAC,kDAArB,cAAuBE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAIvB,KAAK;EAC5D;EACA,OAAOA,KAAK;AACd;AAEA,SAASwB,aAAa,CAACxB,KAAa,EAAU;EAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,IAAIA,KAAK,CAACC,UAAU,CAAC,IAAI,CAAC,EAAE;MAC1B,OAAOD,KAAK;IACd;IACA,iCAA0BA,KAAK;EACjC;EACA,OAAOA,KAAK;AACd;AAEA,OAAO,SAASyB,cAAc,GAIP;EAAA,IAHrBrB,YAA4B,uEAAG,EAAE;EAAA,IACjCC,eAAgC,uEAAG,CAAC,CAAC;EAAA,IACrCqB,QAA6B,uEAAG,EAAE;EAElC,IAAMC,WAAgC,GAAG,CAAC,CAAC;EAAC,sBAChCC,GAAG,EAAE5B,KAAK;IACpB,IAAM6B,IAAI,GAAGzB,YAAY,CAACyB,IAAI,CAAEtB,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKoB,GAAG,CAAC;IAC3D,IAAI,CAACC,IAAI,EAAE;MACTF,WAAW,CAACC,GAAG,CAAC,GAAG5B,KAAK;IAC1B;EAAC;EAJH,KAAK,IAAM,CAAC4B,GAAG,EAAE5B,KAAK,CAAC,IAAI8B,MAAM,CAACC,OAAO,CAAC1B,eAAe,CAAC,EAAE;IAAA,MAAhDuB,GAAG,EAAE5B,KAAK;EAKtB;EAEA,IAAMgC,YAAY,GAAG5B,YAAY,CAAC6B,MAAM,CAAC,CAACC,GAAQ,EAAE3B,IAAI,KAAK;IAC3D,IAAM4B,CAAC,GAAG9B,eAAe,CAACE,IAAI,CAACC,IAAI,CAAC;IACpC0B,GAAG,CAAC3B,IAAI,CAACC,IAAI,CAAC,GAAG2B,CAAC;IAClB,IAAIA,CAAC,KAAKC,SAAS,EAAE;MACnB,IACE,CAAC1C,gBAAgB,CAAC2C,MAAM,CAAC1C,eAAe,CAAC,CAACO,QAAQ,CAACK,IAAI,CAAC+B,IAAI,CAAW,EACvE;QACAJ,GAAG,CAAC3B,IAAI,CAACC,IAAI,CAAC,GAAGI,aAAa,CAACuB,CAAC,CAAC;MACnC;MAEA,IAAIxC,eAAe,CAACO,QAAQ,CAACK,IAAI,CAAC+B,IAAI,CAAW,EAAE;QACjD,IAAMC,QAAQ,GAAGb,QAAQ,CAACG,IAAI,CAC3BW,QAAQ,IAAKA,QAAQ,CAAChC,IAAI,KAAKD,IAAI,CAACC,IAAI,CAC1C;QACD,IAAI,CAAA+B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9B,IAAI,MAAKtB,YAAY,CAACuB,QAAQ,EAAE;UAC5CwB,GAAG,CAAC3B,IAAI,CAACC,IAAI,CAAC,GAAG2B,CAAC;QACpB,CAAC,MAAM;UACLD,GAAG,CAAC3B,IAAI,CAACC,IAAI,CAAC,GAAGY,oBAAoB,CAACe,CAAC,CAAC;QAC1C;MACF;IACF;IACA,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,uCACKF,YAAY;IACf,CAACpC,qBAAqB,GAAGJ,OAAO,CAACmC,WAAW,CAAC,GACzC,EAAE,GACFf,aAAa,CAACe,WAAW;EAAC;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASc,cAAc,CAC5BC,KAAkC,EAClChB,QAA6B,EACpB;EACT,IAAI,OAAOgB,KAAK,CAAC1C,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK;EAEjD,IAAI0C,KAAK,CAACd,GAAG,KAAKhC,qBAAqB,EAAE,OAAO,IAAI;EAEpD,IAAMiC,IAAI,GAAGH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,IAAI,CAAEtB,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKkC,KAAK,CAACd,GAAG,CAAC;EAE9D,IAAIC,IAAI,EAAE;IACR,IACElC,eAAe,CAACO,QAAQ,CAAC2B,IAAI,CAACS,IAAI,CAAW,IAC7CT,IAAI,CAACpB,IAAI,KAAKtB,YAAY,CAACuB,QAAQ,EAEnC,OAAO,KAAK;IAEd,IAAMiC,WAAW,GAAGjD,gBAAgB,CAACQ,QAAQ,CAAC2B,IAAI,CAACS,IAAI,CAAW;IAElE,IAAIK,WAAW,IAAId,IAAI,CAACpB,IAAI,KAAKtB,YAAY,CAACuB,QAAQ,EAAE,OAAO,IAAI;IAEnE,IAAI,CAACiC,WAAW,EAAE,OAAO,IAAI;EAC/B;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,cAAc,CAC5BF,KAAkC,EAClChB,QAA6B,EACpB;EACT,IAAMnB,IAAI,GAAGmB,QAAQ,CAACG,IAAI,CAAEtB,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKkC,KAAK,CAACd,GAAG,CAAC;EAC7D,IAAIjC,eAAe,CAACO,QAAQ,CAACK,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+B,IAAI,CAAW,EAAE;IAClD,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd;AAEA,OAAO,SAASO,gBAAgB,GAGT;EAAA,IAFrBC,MAAM,uEAAG,CAAC,CAAC;EAAA,IACXpB,QAA6B;EAE7B,IAAMqB,QAA6B,GAAG,CAAC,CAAC;EACxC,KAAK,IAAM,CAACnB,GAAG,EAAE5B,KAAK,CAAC,IAAI8B,MAAM,CAACC,OAAO,CAACe,MAAM,CAAC,EAAE;IACjD,IAAIL,cAAc,CAAC;MAAEb,GAAG;MAAE5B;IAAM,CAAC,EAAE0B,QAAQ,CAAC,EAAE;MAC5CqB,QAAQ,CAACnB,GAAG,CAAC,GAAGV,IAAI,CAAClB,KAAK,CAAQ;IACpC,CAAC,MAAM,IAAI4C,cAAc,CAAC;MAAEhB,GAAG;MAAE5B;IAAM,CAAC,EAAE0B,QAAQ,CAAC,EAAE;MACnDqB,QAAQ,CAACnB,GAAG,CAAC,GAAGJ,aAAa,CAACxB,KAAK,CAAW;IAChD,CAAC,MAAM;MACL+C,QAAQ,CAACnB,GAAG,CAAC,GAAG5B,KAAK;IACvB;EACF;EAEA,uCACKT,IAAI,CAACwD,QAAQ,EAAEnD,qBAAqB,CAAC,GACpCJ,OAAO,CAACuD,QAAQ,CAACnD,qBAAqB,CAAC,CAAC,GACxC,CAAC,CAAC,GACFmD,QAAQ,CAACnD,qBAAqB,CAAC;AAEvC;AAEA,OAAO,SAASoD,WAAW,GAEa;EAAA,IADtCtB,QAA6B,uEAAG,EAAE;EAElC,IAAMuB,OAAO,GAAGvB,QAAQ,CAACwB,MAAM,CAAE3C,IAAI,IAAKA,IAAI,CAAC4C,KAAK,KAAK,OAAO,CAAC;EACjE,IAAMC,MAAM,GAAG1B,QAAQ,CAACwB,MAAM,CAAE3C,IAAI,IAAKA,IAAI,CAAC4C,KAAK,KAAK,OAAO,CAAC;EAEhE,OAAOrB,MAAM,CAACC,OAAO,CACnBtC,OAAO,CAACwD,OAAO,CAACZ,MAAM,CAACe,MAAM,CAAC,EAAG7C,IAAI,IAAK;IACxC,IAAM4C,KAAK,GAAG5C,IAAI,CAAC4C,KAAK,IAAI,OAAO;IACnC,IAAME,SAA8B,mCAC/BvD,YAAY,GACZS,IAAI,CAAC8C,SAAS,CAClB;IACD,IAAMC,QAAQ,GAAGD,SAAS,IAAIA,SAAS,CAACF,KAAK,CAAC;IAC9C,IAAIG,QAAQ,EAAE;MACZ,OAAOpE,QAAQ,CAACoE,QAAQ,CAAC;IAC3B;IAEA,OAAOH,KAAK;EACd,CAAC,CAAC,CACH;AACH;AAEA,OAAO,SAASI,kBAAkB,CAChC7B,QAAwB,EACxB8B,kBAAmC,EACnB;EAChB,IAAIhE,OAAO,CAACkC,QAAQ,CAAC,EAAE,OAAO,EAAE;EAEhC,IAAI8B,kBAAkB,EAAE;IACtB,OAAOA,kBAAkB,CAACnB,MAAM,CAACX,QAAQ,CAAC;EAC5C;EAEA,OAAO7B,kBAAkB,CAACwC,MAAM,CAACX,QAAQ,CAAC;AAC5C"}
|
|
@@ -15,11 +15,9 @@ export function WorkbenchMiniActionBar(_ref) {
|
|
|
15
15
|
onActionClick
|
|
16
16
|
} = _ref;
|
|
17
17
|
var enabledActions = useMemo(() => actions === null || actions === void 0 ? void 0 : actions.filter(item => looseCheckIfByTransform(item, data)), [actions, data]);
|
|
18
|
-
|
|
19
18
|
if (actionsHidden || !(enabledActions !== null && enabledActions !== void 0 && enabledActions.length)) {
|
|
20
19
|
return null;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
return /*#__PURE__*/React.createElement("div", {
|
|
24
22
|
className: classNames(styles.actionsBar, className),
|
|
25
23
|
style: {
|
|
@@ -34,7 +32,6 @@ export function WorkbenchMiniActionBar(_ref) {
|
|
|
34
32
|
onActionClick: onActionClick
|
|
35
33
|
})));
|
|
36
34
|
}
|
|
37
|
-
|
|
38
35
|
function WorkbenchSubAction(_ref2) {
|
|
39
36
|
var {
|
|
40
37
|
action,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbenchMiniActionBar.js","names":["React","useCallback","useMemo","classNames","looseCheckIfByTransform","GeneralIcon","styles","WorkbenchMiniActionBar","data","className","gap","isFirst","isLast","actions","actionsHidden","onActionClick","enabledActions","filter","item","length","actionsBar","map","action","WorkbenchSubAction","disabled","handleActionClick","event","preventDefault","stopPropagation","preventMouseEvent","title","icon"],"sources":["../../../src/workbench-mini-action-bar/WorkbenchMiniActionBar.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { looseCheckIfByTransform } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { WorkbenchTreeAction, ActionClickDetail } from \"../interfaces\";\n\nimport styles from \"./WorkbenchMiniActionBar.module.css\";\n\nexport interface WorkbenchSubActionBarProps {\n data?: unknown;\n className?: string;\n gap?: number;\n isFirst?: boolean;\n isLast?: boolean;\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport function WorkbenchMiniActionBar({\n data,\n className,\n gap,\n isFirst,\n isLast,\n actions,\n actionsHidden,\n onActionClick,\n}: WorkbenchSubActionBarProps): React.ReactElement {\n const enabledActions = useMemo(\n () => actions?.filter((item) => looseCheckIfByTransform(item, data)),\n [actions, data]\n );\n\n if (actionsHidden || !enabledActions?.length) {\n return null;\n }\n\n return (\n <div className={classNames(styles.actionsBar, className)} style={{ gap }}>\n {enabledActions.map((item) => (\n <WorkbenchSubAction\n key={item.action}\n action={item}\n data={data}\n isFirst={isFirst}\n isLast={isLast}\n onActionClick={onActionClick}\n />\n ))}\n </div>\n );\n}\n\ninterface WorkbenchSubActionProps {\n action: WorkbenchTreeAction;\n data?: unknown;\n isFirst?: boolean;\n isLast?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nfunction WorkbenchSubAction({\n action,\n data,\n isFirst,\n isLast,\n onActionClick,\n}: WorkbenchSubActionProps): React.ReactElement {\n const disabled =\n (isFirst && action.action === \"move-up\") ||\n (isLast && action.action === \"move-down\");\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n disabled ||\n onActionClick?.({\n action: action.action,\n data: data,\n });\n },\n [action.action, data, disabled, onActionClick]\n );\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <a\n className={classNames(styles.action, { [styles.disabled]: disabled })}\n title={action.title}\n role=\"button\"\n onClick={handleActionClick}\n onContextMenu={preventMouseEvent}\n onMouseDown={preventMouseEvent}\n >\n <GeneralIcon icon={action.icon} />\n </a>\n );\n}\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"WorkbenchMiniActionBar.js","names":["React","useCallback","useMemo","classNames","looseCheckIfByTransform","GeneralIcon","styles","WorkbenchMiniActionBar","data","className","gap","isFirst","isLast","actions","actionsHidden","onActionClick","enabledActions","filter","item","length","actionsBar","map","action","WorkbenchSubAction","disabled","handleActionClick","event","preventDefault","stopPropagation","preventMouseEvent","title","icon"],"sources":["../../../src/workbench-mini-action-bar/WorkbenchMiniActionBar.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { looseCheckIfByTransform } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { WorkbenchTreeAction, ActionClickDetail } from \"../interfaces\";\n\nimport styles from \"./WorkbenchMiniActionBar.module.css\";\n\nexport interface WorkbenchSubActionBarProps {\n data?: unknown;\n className?: string;\n gap?: number;\n isFirst?: boolean;\n isLast?: boolean;\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport function WorkbenchMiniActionBar({\n data,\n className,\n gap,\n isFirst,\n isLast,\n actions,\n actionsHidden,\n onActionClick,\n}: WorkbenchSubActionBarProps): React.ReactElement {\n const enabledActions = useMemo(\n () => actions?.filter((item) => looseCheckIfByTransform(item, data)),\n [actions, data]\n );\n\n if (actionsHidden || !enabledActions?.length) {\n return null;\n }\n\n return (\n <div className={classNames(styles.actionsBar, className)} style={{ gap }}>\n {enabledActions.map((item) => (\n <WorkbenchSubAction\n key={item.action}\n action={item}\n data={data}\n isFirst={isFirst}\n isLast={isLast}\n onActionClick={onActionClick}\n />\n ))}\n </div>\n );\n}\n\ninterface WorkbenchSubActionProps {\n action: WorkbenchTreeAction;\n data?: unknown;\n isFirst?: boolean;\n isLast?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nfunction WorkbenchSubAction({\n action,\n data,\n isFirst,\n isLast,\n onActionClick,\n}: WorkbenchSubActionProps): React.ReactElement {\n const disabled =\n (isFirst && action.action === \"move-up\") ||\n (isLast && action.action === \"move-down\");\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n disabled ||\n onActionClick?.({\n action: action.action,\n data: data,\n });\n },\n [action.action, data, disabled, onActionClick]\n );\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <a\n className={classNames(styles.action, { [styles.disabled]: disabled })}\n title={action.title}\n role=\"button\"\n onClick={handleActionClick}\n onContextMenu={preventMouseEvent}\n onMouseDown={preventMouseEvent}\n >\n <GeneralIcon icon={action.icon} />\n </a>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,uBAAuB,QAAQ,sBAAsB;AAC9D,SAASC,WAAW,QAAQ,6BAA6B;AAGzD,OAAOC,MAAM,MAAM,qCAAqC;AAaxD,OAAO,SAASC,sBAAsB,OASa;EAAA,IATZ;IACrCC,IAAI;IACJC,SAAS;IACTC,GAAG;IACHC,OAAO;IACPC,MAAM;IACNC,OAAO;IACPC,aAAa;IACbC;EAC0B,CAAC;EAC3B,IAAMC,cAAc,GAAGd,OAAO,CAC5B,MAAMW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,MAAM,CAAEC,IAAI,IAAKd,uBAAuB,CAACc,IAAI,EAAEV,IAAI,CAAC,CAAC,EACpE,CAACK,OAAO,EAAEL,IAAI,CAAC,CAChB;EAED,IAAIM,aAAa,IAAI,EAACE,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEG,MAAM,GAAE;IAC5C,OAAO,IAAI;EACb;EAEA,oBACE;IAAK,SAAS,EAAEhB,UAAU,CAACG,MAAM,CAACc,UAAU,EAAEX,SAAS,CAAE;IAAC,KAAK,EAAE;MAAEC;IAAI;EAAE,GACtEM,cAAc,CAACK,GAAG,CAAEH,IAAI,iBACvB,oBAAC,kBAAkB;IACjB,GAAG,EAAEA,IAAI,CAACI,MAAO;IACjB,MAAM,EAAEJ,IAAK;IACb,IAAI,EAAEV,IAAK;IACX,OAAO,EAAEG,OAAQ;IACjB,MAAM,EAAEC,MAAO;IACf,aAAa,EAAEG;EAAc,EAEhC,CAAC,CACE;AAEV;AAUA,SAASQ,kBAAkB,QAMqB;EAAA,IANpB;IAC1BD,MAAM;IACNd,IAAI;IACJG,OAAO;IACPC,MAAM;IACNG;EACuB,CAAC;EACxB,IAAMS,QAAQ,GACXb,OAAO,IAAIW,MAAM,CAACA,MAAM,KAAK,SAAS,IACtCV,MAAM,IAAIU,MAAM,CAACA,MAAM,KAAK,WAAY;EAE3C,IAAMG,iBAAiB,GAAGxB,WAAW,CAClCyB,KAAuB,IAAK;IAC3BA,KAAK,CAACC,cAAc,EAAE;IACtBD,KAAK,CAACE,eAAe,EAAE;IACvBJ,QAAQ,KACNT,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAG;MACdO,MAAM,EAAEA,MAAM,CAACA,MAAM;MACrBd,IAAI,EAAEA;IACR,CAAC,CAAC;EACN,CAAC,EACD,CAACc,MAAM,CAACA,MAAM,EAAEd,IAAI,EAAEgB,QAAQ,EAAET,aAAa,CAAC,CAC/C;EAED,IAAMc,iBAAiB,GAAG5B,WAAW,CAAEyB,KAAuB,IAAK;IACjEA,KAAK,CAACC,cAAc,EAAE;IACtBD,KAAK,CAACE,eAAe,EAAE;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE;IACE,SAAS,EAAEzB,UAAU,CAACG,MAAM,CAACgB,MAAM,EAAE;MAAE,CAAChB,MAAM,CAACkB,QAAQ,GAAGA;IAAS,CAAC,CAAE;IACtE,KAAK,EAAEF,MAAM,CAACQ,KAAM;IACpB,IAAI,EAAC,QAAQ;IACb,OAAO,EAAEL,iBAAkB;IAC3B,aAAa,EAAEI,iBAAkB;IACjC,WAAW,EAAEA;EAAkB,gBAE/B,oBAAC,WAAW;IAAC,IAAI,EAAEP,MAAM,CAACS;EAAK,EAAG,CAChC;AAER"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/visual-builder",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.16",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/visual-builder",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"@next-dll/ace": "*"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@next-libs/basic-components": "^4.0.
|
|
33
|
-
"@next-libs/code-editor-components": "^4.7.
|
|
34
|
-
"@next-libs/forms": "^3.3.
|
|
32
|
+
"@next-libs/basic-components": "^4.0.2",
|
|
33
|
+
"@next-libs/code-editor-components": "^4.7.2",
|
|
34
|
+
"@next-libs/forms": "^3.3.1",
|
|
35
35
|
"@types/react-color": "^3.0.6",
|
|
36
36
|
"react-color": "^2.19.3"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "f3f8cce5385621fb7c98d2eed98cae915dfae3f4"
|
|
39
39
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [1.2.14](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.13...@next-libs/visual-builder@1.2.14) (2022-11-03)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [1.2.13](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.12...@next-libs/visual-builder@1.2.13) (2022-11-03)
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## [1.2.12](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.11...@next-libs/visual-builder@1.2.12) (2022-10-31)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## [1.2.11](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.10...@next-libs/visual-builder@1.2.11) (2022-10-28)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## [1.2.10](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.9...@next-libs/visual-builder@1.2.10) (2022-10-26)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## [1.2.9](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.8...@next-libs/visual-builder@1.2.9) (2022-10-25)
|
|
47
|
-
|
|
48
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
## [1.2.8](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.7...@next-libs/visual-builder@1.2.8) (2022-10-24)
|
|
55
|
-
|
|
56
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## [1.2.7](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.6...@next-libs/visual-builder@1.2.7) (2022-10-20)
|
|
63
|
-
|
|
64
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## [1.2.6](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.5...@next-libs/visual-builder@1.2.6) (2022-10-19)
|
|
71
|
-
|
|
72
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
## [1.2.5](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.4...@next-libs/visual-builder@1.2.5) (2022-10-18)
|
|
79
|
-
|
|
80
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
## [1.2.4](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.3...@next-libs/visual-builder@1.2.4) (2022-10-17)
|
|
87
|
-
|
|
88
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
## [1.2.3](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.2...@next-libs/visual-builder@1.2.3) (2022-10-13)
|
|
95
|
-
|
|
96
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
## [1.2.2](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.1...@next-libs/visual-builder@1.2.2) (2022-09-29)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### Bug Fixes
|
|
106
|
-
|
|
107
|
-
* support hiddenPropsCategory ([#432](https://github.com/easyops-cn/next-libs/issues/432)) ([3d0778e](https://github.com/easyops-cn/next-libs/commit/3d0778eac32f532b031cb0ad67ba1daac441370c))
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
## [1.2.1](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.2.0...@next-libs/visual-builder@1.2.1) (2022-09-23)
|
|
114
|
-
|
|
115
|
-
**Note:** Version bump only for package @next-libs/visual-builder
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
# [1.2.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/visual-builder@1.1.0...@next-libs/visual-builder@1.2.0) (2022-09-21)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
### Features
|
|
125
|
-
|
|
126
|
-
* migrate shared component to libs ([a75be30](https://github.com/easyops-cn/next-libs/commit/a75be3028288fc5f73fef0a02105fb605ad0feeb))
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
# 1.1.0 (2022-09-20)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
### Features
|
|
136
|
-
|
|
137
|
-
* **visual-builder:** 迁移【visual-property-form】至libs ([bb31a88](https://github.com/easyops-cn/next-libs/commit/bb31a883378a208ae271f2e8c792b049821b6596))
|